中国科技论文在线
http://www.paper.edu.cn
基于 MATLAB 的机械噪声分析与处理
华中师范大学教育信息技术工程研究中心,武汉(430079)
E-mail: liuzhi38865999@163.com
刘智
摘 要:工业中的机械噪声对人的身心伤害是多方面的,笔者录制了一段工业中的机械噪声,
在 MATLAB 平台上分析其时域,频域的特性,以及通过语谱图来观察该信号的特征,然后
编程,用窗函数法设计 FIR 滤波器处理该噪声信号,观察滤波后的噪声时频特性图,进一步
分析比较滤波前后噪声的变化情况。
关键词:机械噪声信号;MATLAB;窗函数;FIR 滤波器
中图分类号:TN912.3
1. 引言
随着工程机械行业的迅速发展,人们对于工程机械的舒适性和振动噪声控制的要
求越来越严格。噪声的控制,不仅关系到乘坐舒适性,而且还关系到环境保护。机械
噪声是由于机械设备运转时,部件间的摩擦力、撞击力或非平衡力,使机械部件和壳
体产生振动而辐射噪声。这种噪声对人体健康的影响是多方面的。噪音作用于人的中
枢神经系统,使人们大脑皮层的兴奋与抑制平衡失调,导致条件反射异常,使脑血管
张力遭到损害,从而引起了环境噪声污染等社会问题。
声 音 信 号 采 集 与 分 析 始 终 与 当 时 信 息 科 学 中 最 活 跃 的 前 沿 学 科 保 持 密 切 的 联
系.并且一起发展。信号采集与分析是以语音语言学和数字信号处理为基础而形成的
一门涉及面很广的综合性学科,与心理、生理学、计算机科学、通信与信息科学以及
模式识别和人工智能等学科都有着非常密切的关系。对语音信号采集与分析的研究一
直是数字信号处理技术发展的重要推动力量。因为许多处理的新方法的提出,首先是
在语音信号处理中获得成功,然后再推广到其他领域。
本 文 将 以 语 音 信 号 分 析 与 处 理 的 基 本 原 理 来 分 析 机 械 噪 声 信 号 的 特 点 , 以
MATLAB 为平台编写程序来设计滤波器去除噪声中对人伤害极大的那部分频段,从
而使噪声频率的波动变得平缓,使噪声污染减小到最低限度。
2. MATLAB 简介
MATLAB 是美国 MathWorks 公司出品的商业数学软件,用于算法开发、数据可视
化、数据分析以及数值计算的高级技术计算机语言和交互式环境,主要包括 MATLAB
和 Simulink 这两大部分 【1】。
MATLAB 是矩阵实验室(Matrix Laboratory)的简称,和 Mathematica、Maple 并
称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB
可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言
的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、
金融建模设计与分析等领域。MATLAB 对许多专门的领域都开发了功能强大的模块集
和工具箱。一般来说,它们都是由特定领域的专家开发的,用户可以直接使用工具箱
学习、应用和评估不同的方法而不需要自己编写代码。目前,MATLAB 已经把工具箱
延伸到了科学研究和工程应用的诸多领域,诸如数据采集、数据库接口、概率统计、
样条拟合、优化算法、偏微分方程求解、神经网络、小波分析、信号处理、图像处理、
-1-
http://www.paper.edu.cn
中国科技论文在线
系统辨识、控制系统设计、LMI 控制、鲁棒控制、模型预测、模糊逻辑、金融分析、
地图工具、非线性控制设计、实时快速原型及半物理仿真、嵌入式系统开发、定点仿
真、DSP 与通讯、电力系统仿真等,都在工具箱(Toolbox)家族中有了自己的一席之
地。
3. 机械噪声信号的分析与处理
噪声是评价机械产品质量的重要指标之一。它反映产品的设计和制造水平,影响
产品的经济价值,机械噪声往往频率不稳定,有高频也有低频成分,下面就来简要的
分析这段在工厂中录制的机械噪声,首先通过对这段信号的时域,频域分析观察它的能
量主要集中在哪个频段,然后将时频分析结合在一起也就是用语谱图来分析该信号频
谱随时间变化的情况,最后通过观察其频谱知道信号能量集中的频段,设计 FIR 滤波
器滤除这一频段的信号,使噪声减到最低限度。噪声信号的分析与处理的总流程图如
下:
语 谱 图 分
析
噪
声
信
号
FFT
处理
取|FFT|,分析
其幅频特性
滤波
分析比较噪声
滤波前后变化
时域分析
根 据 能 量 集 中 的 频
率,设计 FIR 滤波器
图 3.1 噪声分析与处理的流程图
Figure3.1 flow chart of Noise analysis and processing
3.1 噪声的时域与频域分析
噪声的时域分析就是分析和提取语音信号的时域参数。进行分析时,最先接触到并且也
是最直观的是它的时域波形。噪声信号本身就是时域信号,时域分析通常用于最基本的参数
分析及应用。这种分析方法的特点是:①表示语音信号比较直观、物理意义明确。②实现起
来比较简单、运算且少。③可以得到语音的一些重要的参数。④只使用示波器等通用设备,
频域分析就是分析语音信号的频域持征。从广义上讲,语音信号的频域分析包括语音信
号的频谱、功率谱、倒频谱、频谱包络分析等,而常用的频域分析方法有带通滤波器组法、
傅里叶变换法、线件预测法等几种【2】。本文介绍的是语音信号的傅里叶分析法。使用较为
简单等。以下是 MATLAB 中编写的程序来得到噪声信号的时域,频域图:
close all;
[x,Fs,nbits]=wavread('F:\论文\机械噪声.wav'); %读入噪声文件
figure(1),
y1=fft(x); %对噪声信号作 FFT 处理
plot(abs(y1),'r'); %得到|FFT|的幅频特性图
-2-
中国科技论文在线
http://www.paper.edu.cn
title('noise signal');
[xt1,Fs]=wavread('F:\论文\机械噪声.wav');
N=max(size(xt1));
Ts=1/Fs;t=[0:Ts:(N-1)*Ts];
F=fft(xt1,8192)/N;
Xf1=2*abs(F);
SS=Xf1.*conj(Xf1)/8192; %经过 8192 点 FFT 后的频域信号
Freq=Fs*(0:4096)/8192;
figure(2),subplot(211),
plot(Freq,xt1(1:4097),'b'), %时域信号波形图
title('Time Domain signal','color','b')
subplot(212),plot(Freq,abs((SS(1:4097))),'b'); %频域信号频谱图
axis([0 8000 0 1.4e-10]);
title('Frequency Domain signal','color','k')
title('Frequency Domain','color','k')
ylabel('sound Frequency Domain','color','k');
xlabel('Frequency/Hz','color','k');
grid on;zoom on;
图 3.1.1 噪声经 FFT 后的频谱
Figure3.1.1 Noise frequency spectrum after FFT
-3-
中国科技论文在线
http://www.paper.edu.cn
图 3.1.2 噪声信号时域与频域特性图
Figure3.1.2 Noise signal time domain and frequency range characteristic chart
从图 3.1.2 中我们发现信号时域波形到了后半段时,信号强度明显变大,信号波动很大,
呈现出非稳态随机性,而从频谱图中可以观察到信号最强部分主要集中在 0-300HZ 以及
4000HZ 以上的频段,因此这为设计 FIR 滤波器提供了依据。
3.2 噪声信号的语谱图分析
语音的时域分析和频域分析是语音分析的两种重要方法。显然这两种单独分析的方法均
有局限性:时域分析对语音信号的频率特性没有直观的了解;而频域分析出的特征中又没有
语音信号随时间的变化关系:语音信号是时变信号,所以其频谱也是随时间变化的。但是由
于语音信号随时间变化是很缓慢的,因而在一段短时间内(如 10~30ms 之间,即所谓的一帧
之内)可以认为其频谱是固定不变的,这种频谱又称为短时谱。短时谱只能反映语音信号的
静态频率特性,不能反映语音信号的动态频率特性。因此,人们致力于研究语音的时频分析
特性。
把和时序相关的傅里叶分析的显示图形称为语谱图(Sonogram,或者 Spectrogram)。语
诺图是一种三维频谱,它是表示语音频谱随时间变化的图形,其纵轴为频率,横轴为时间,
任一给定频率成分在给定时刻的强弱用相应点的灰度或色调的浓谈来表示。用语谱图分析语
音又称为语谱分析。语谱图中显示了大量的与语音的语句特性有关的信息,它综合了频谱图
和时域波形的特点,明显地显示出语音频谱随时间的变化情况,或者说是一种动态的频谱。
在 MALTAB 命令窗中编写相应的程序:
[x,fs,nbits]=wavread('F:\论文\汽车鸣笛噪声');
specgram(x,1024,fs);
xlabel('Time(s)');
ylabel('Frequency(Hz)');
title('The spectgram of speech signal');
colormap(jet)% 画语谱图
-4-
中国科技论文在线
http://www.paper.edu.cn
图 3.2.1 噪声信号的语谱图
Figure3.2.1 Noise signal language spectrogram chart
图 3.2.1 是用 MATLAB 绘制的一个宽带语谱图,其中横抽坐标为时间,纵轴坐标为频
率,语谱图中的花纹有横扛(Bar)、乱纹和竖直条等。横杠是与时间轴平行的几条深黑色带纹,
它们相应于短时谱中的几个凸出点,也就是共振峰。从横扛对应的频率和宽度可以确定相应
的共振峰频率和带宽。在一个语音段的语谱图中,有没有横扛出现是判断它是否是浊音的重
要标志 。竖直条(又叫冲直条)是语谱图中出现与时间轴垂直的一条窄黑条。每个竖直条相
当于一个基音,条纹的起点相当于声门脉冲的起点,条纹之间的距离表示基音周期。条纹越
密表示越音频率越高。
通过观察图 3.2.1,发现有很多条横杠,说明该噪声信号有多个共振峰,再次说明机械
噪声信号是一个非稳定的信号,时间 3-6s 内,频率在 6000-8000HZ 内颜色很浓,说明该区
域信号强度很大,信号频率波动较大,所以必须抑制其中的噪声较大的频段,使信号频率波
范围为减小。
3.3 设计 FIR 滤波器处理噪声
FIR 滤波器即有限冲激响应(Finite Impulse Response)滤波器,FIR 滤波器在保证幅度特
性满足技术要求的同时,很容易做到严格的线性相位特性。设 FIR 滤波器的单位脉冲响应
nh 长度为 N,其系统函数
zH
N
1
n
0
znh
n
(1 )
zH 是 1z 的 N-1 次多项式,它在 Z 平面上有(N-1)个零点,原点 z=0 是(N-1)阶重极
点,因此, zH 永远稳定,稳定和线性相位是 FIR 滤波器突出的优点【4】。设计 FIR 滤波器
主要有三种方法:窗函数法,频率采样法和切比雪夫等波纹逼近法。本文主要用窗函数法;
来设计 FIR 滤波器,设希望设计的滤波器传输函数为
冲相应,因此
是与其对应的单位脉
nh
)(
d
eH
(
),
jw
d
eH
d
jw
n
enh
)(
d
jwn
(2 )
-5-
中国科技论文在线
http://www.paper.edu.cn
nh
)(
d
1
2
eH
(
d
jw
)
e
jwn
d
(3)
jw
求出
如果能够由已知的
d eH
况下
d eH
序列。
jw
逐段稳定,在边界频率出有不连续点,因此
)(nhd ,经过 Z 变换后可得到滤波器的系统函数。但一般情
)(nhd 是无限时宽的,且是非因果
经过观察图 3.1.2 发现频率集中的频段在 0-300HZ 以及 4000HZ 以上,所以我们要设计
一个 FIR 的带通滤波器,使 300-4000HZ 的信号通过,衰减其它频段的信号,下面就来编写
MATLAB 程序,以窗函数法来设计 FIR 滤波器处理噪声信号。
c=85; %定义滤波器阶数 85 阶
w1=2*pi*300/Fs;
w2=2*pi*4000/Fs; %参数转换,将模拟滤波器的指标转换为数字滤波器的
指标
window=hamming(c+1); %使用 hamming 窗函数
b=fir1(c,[w1/pi w2/pi],window); %使用标准响应的加窗设计函数 fir1
%freqz(h,1,512); 数字滤波器频率响应
%fhz1=[0,400,400,3300,3300,11025];
%m=[0,0,1,1,0,0];
%fhz0=fhz1./(Fs/2);
%b=fir2(100,fhz0,m,bartlett(101));
tool=[0:11025];
tool2=freqz(b,1,tool,Fs);
figure(2),plot(tool,abs(tool2),'b')
xt2=filter(b,1,xt1); %将信号 xt1 进行滤波
F1=fft(xt2,8192)/N; %将噪声信号进行 8192 点 FFT 处理
Xf2=2*abs(F1);
SS2=Xf2.*conj(Xf2)/8192;
soundsc(xt2,Fs); %播放滤波后的噪声
figure(3),
subplot(211),plot(Freq,xt2(1:4097),'b');
axis([0 11000 -0.3 0.3]);
title('Time Domain signal','color','k')
subplot(212),plot(Freq,abs((SS2(1:4097))),'b');
axis([0 8000,0 6.54e-11]);
title('Frequency Domain signal','color','k')
title('Frequency Domain signal','color','k')
ylabel('sound Frequency Domain','color','k');
xlabel('Frequency/Hz','color','k');
wavwrite(xt2,Fs,'new signal.wav'); %将滤波后噪声写入文件保存
grid on;
zoom on;
-6-
中国科技论文在线
程序运行如下图:
http://www.paper.edu.cn
图 3.3.1 FIR 滤波器幅频特性
Figure3.3.1 FIR filter amplitude-frequency characteristic
图 3.3.2 经过滤波后的信号时频特性图
Figure 3.3.2 signal frequency characteristic chart after filting
从图 3.3.1 观察到,窗函数设计法在 300HZ 与 4000HZ 的截止频率处具有陡峭特性,通
带外的信号将被大大衰减,图 3.3.2 显示,滤波结果到达了预期的效果,从时域图中看到信
号强度减弱,信号波动变小,从频谱图中可以看到噪声信号 300-4000HZ 以外的信号被衰减,:
10 ,滤波设计到达了理想效果。
相比滤波前的信号幅度,经滤波后幅度的数量级已经到了 11
4. 结束语
机械噪声对社会环境造成的污染已经影响到人们的正常生活,而对噪声信号的处理是目
前信息学领域研究的热点和难点,其任务是研究如何利用数字信号处理技术来研究语言信
号。机械噪声信号首先就要对其各种特性进行分析,只有通过分析得到各种参数才能做进一
-7-
http://www.paper.edu.cn
中国科技论文在线
步的研究,本文通过对搜集来的噪声信号做了时域和频域的各种分析,判断噪声信号强度的
主要集中点,设计相应的 FIR 滤波器来滤除该频段的噪声信号使噪声平缓。最后滤波效果达
到了滤波技术指标要求。
参考文献
[1]张威.MATLAB 基础与编程入门【M】.西安电子科技大学出版社,2006.
[2]胡航.语音信号处理【M】.哈尔滨:哈尔滨工业大学出版社,2002.
[3]樊昌信.通信原理【M】北京:国防工业出版社,2005.
[4]丁玉美.高西全.数字信号处理【M】.西安电子科技大学出版社,2006.
[5]周渊,王炳和,刘斌胜.基于 MATLAB 的噪声信号采集和分析系统的设计【J】.噪声控制.2004(7):
52-54.
Mechanical Noise Analysis And Processing Based On
MATLAB
Engineering & Research Center for Information Technology On Education, HuaZhong Normal
University, Wuhan (430079)
In the industry, mechanical noise to human's body and mind injury is various, the author
transcribedines a section of industry mechanical noise, analyzes its time domain in the MATLAB
platform, the frequency range characteristic, as well as observes this signal through the language
spectrogram the characteristic, then programs, designs the FIR filter with the window function method
to process this noise signal, after observes the filter when the noise the frequency characteristic chart,
further analyzes and compare change situation.of the noise before and after filting.
Keywords: Mechanical noise signal; MATLAB; window’s function; FIR filter
作者简介:刘智,男,1986 年出生,硕士研究生,主要研究方向:数字信号处理,数字图像
处理,数字媒体技术
Liu Zhi
(430079)
Abstract
-8-