标题 | 基于窗函数法的数字滤波器语音信号处理 |
范文 | 余会娟 摘要:有限长冲激响应(FIR)数字滤波器具有描述方便、系统稳定、易于实现线性相位等特点,获得了广泛的应用。该文采用FIR数字滤波器的窗函数法设计滤波器,针对语音信号中出现的加性噪声进行消除,并在matlab软件中进行实现。 关键词:FIR数字滤波器;窗函数法;matlab;语音信号处理 中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2018)03-0183-03 数字滤波器是数字信号处理的一个重要技术分支,利用它可以在形形色色的信号中提取所需信号,抑制不需要的信号(干扰、噪声等)。有限长脉冲响应FIR滤波器在保证幅度特性满足技术要求的同时,很容易做到有严格的线性相位特性,因此在高保真的信号处理领域得到了广泛应用。滤波器的设计过程分三步完成:①技术要求,在设计之前,根据具体用途确定技术指标;②近似,用选用的设计方法表述滤波器,它可以是一个差分方程的形式,或者是一个系统函数H(Z)的形式,或者是一个脉冲响应h(n)的形式,这种表述逼近于所给定的技术指标;③实现,依据上一步的滤波器表述,在计算机上通过MATLAB软件实现这个滤波器。本文旨在用FIR数字滤波器的窗函数法设计滤波器,针对语音信号中出现的加性噪声进行消除。并在matlab软件中实现。 1 FIR数字滤波器设计原理 FIR数字滤波器的单位脉冲响应是有限长的,使得它在以下方面具有明显的优势: (1) 有限长序列的Z变换在整个Z平面上收敛,因此,不存在稳定性问题; (2) 只要经过一定的时延,任何非因果的有限长序列都可以变成因果的有限长序列,都可以用因果系统来实现; (3) 由于单位脉冲响应是有限长的,可以用快速傅立叶变换算法实现信号的滤波,使运算效率大大提高。 因此,FIR数字滤波器日益引起人们的注意,在各个领域广泛应用。 如果FIR数字滤波器的单位脉冲响应h(n)为实数,且满足以下任何一个条件: 偶对称:h(n)=h(N-1-n); 奇对称:h(n)=-h(N-1-n) 其对称中心在(N-1)/2处,则滤波器就具有准确的线性相位。 将频率响应表示成,其中是幅度函数,是相位函数。 2 基于窗函数法的 FIR数字滤波器设计 理想的數字滤波器的频率响应可以用傅立叶级数展开为: 其中傅立叶系数为 : 显然,就是理想滤波器的单位脉冲响应。 但是直接用(2)式设计FIR滤波器是不可能的,因为是一个无限长非因果序列。根据线性相位FIR数字滤波器理论,单位脉冲响应应该是有限长的因果序列。因此,设计FIR滤波器就是解决向逼近的问题。可以直接用截断的方法逼近,使n取有限项,那么,(1)式就变为: 截取后,我们要保证截取的一段对(N-1)/2对称,这样就构成一个长度为N的线性相位滤波器。 但是,用直接截断的方法会使得频率响应的间断会出现吉布斯(Gibbs)效应,该效应会引起通带内和阻带内的波动性,尤其使阻带内的衰减减小,从而满足不了技术上的要求。这种吉布斯(Gibbs)效应是由于将直接截断引起的,也常称为截断效应。 2.1 设计原理 获得FIR数字滤波器的一个有效的方法就是利用有限的“加权”序列w(n),也就是所谓的“窗函数”来修正(1)和(2)式。这种方法称为“窗函数法”。通常,是将h(n)看作理想单位脉冲响应hd(n)与窗函数w(n)的乘积。即 利用复卷积定理可得: 上式表明,是理想频率响应与窗函数频率响应的循环卷积。因此,对的逼近程度完全决于窗函数的频率特性。 加窗函数后,对滤波器的理想特性影响有以下几点: (1) Hd(w)在截止频率的间断点变成了连续的曲线,使得Hd(w)出现了一个过渡带,它的宽度等于窗函数的主瓣宽度,由此可知,如果窗函数的主瓣越宽,过渡带就越宽。 (2) 由于窗函数旁瓣的影响,使得滤波器的幅度频率特性出现了波动,波动的幅度取决于旁瓣的相对幅度。旁瓣范围的面积越大,通带波动和阻带的波动就越大,也就是说阻带的衰减减小。而波动的多少,取决于旁瓣的多少。 (3) 增加窗函数的长度,只能减少窗函数的幅度频率特性W(w)的主瓣宽度,而不能减少主瓣和旁瓣的相对值,该值取决于窗函数的形状,即增加截取函数的长度N只能相应的减小过渡带,而不能改变滤波器的波动。 因此,通过改变窗函数的形状来改善滤波器的幅度频率特性。窗函数的选择原则是: (1) 具有较低的旁瓣幅度,尤其是第一旁瓣的幅度。 (2) 旁瓣的幅度下降的速率要快,以利于增加阻带的衰减。 (3) 主瓣的宽度要窄,这样可以得到比较窄的过渡带。 通常上述的几点难以同时满足,实际上选用的窗函数往往是它们的折中。 窗函数的种类繁多,而且还可以根据需要自己设计窗函数,在设计FIR数字滤波器时,选择窗函数的原则是在保证阻带衰减满足要求的情况下,尽量选择主瓣窄的窗函数。 2.2 设计步骤 FIR数字滤波器的窗函数法设计步骤: (1) 依据给定的技术指标得出理想的频率响应; (2) 选择窗函数,根据其过渡带宽△W,估计h(n)的长度N; (3) 根据理想频率响应计算理想单位脉冲响应; (4) 用选择的窗函数对进行加窗得出,; (5) 计算数字滤波器的频率响应。 2.3 设计与MATLAB实现 对采样频率为220v、50HZ的语音信号人工引入高频5KHZ余弦噪声后,对信号在频域进行滤波。滤波后显示的语音信号的波形与原始语音信号波形基本相同。 2.3.1 信号采集程序 fs=22050; x1=wavread('C:\Documents and Settings\laurence\桌面\新建文件夹\数字.wav'); sound(x1,22050); y1=fft(x1,1024); f=fs*(0:511)/1024; figure(1) plot(x1) title('原始語音信号'); xlabel('time n'); ylabel('fuzhi n'); figure(2) freqz(x1) title('频率响应图') figure(3) subplot(2,1,1); plot(abs(y1(1:512))) title('原始语音信号FFT频谱') subplot(2,1,2); plot(f,abs(y1(1:512))); title('原始语音信号频谱') xlabel('Hz'); ylabel('fuzhi'); 2.3.2 加上5kHz高频余弦噪声后的信号采集程序 fs=22050; x1=wavread('C:\Documents and Settings\laurence\桌面\新建文件夹\数字.wav'); f=fs*(0:511)/1024; t=0:1/22050:(size(x1)-1)/22050; Au=0.03; d=[Au*cos(2*pi*5000*t)]'; x2=x1+d; sound(x2,22050); y2=fft(x2,1024); figure(1) plot(t,x2) title('加噪后的信号'); xlabel('time n'); ylabel('fuzhi n'); figure(2) subplot(2,1,1); plot(f,abs(y1(1:512))); title('原始语音信号频谱'); xlabel('Hz'); ylabel('fuzhi'); subplot(2,1,2); plot(f,abs(y2(1:512))); title('加噪后的信号频谱'); xlabel('Hz'); ylabel('fuzhi'); 2.3.4 窗函数法设计滤波器程序 fs=22050; x1=wavread('C:\Documents and Settings\laurence\桌面\新建文件夹\数字.wav'); t=0:1/22050:(size(x1)-1)/22050; Au=0.03; d=[Au*cos(2*pi*5000*t)]'; x2=x1+d; wp=0.25*pi; ws=0.3*pi; wdelta=ws-wp; N=ceil(6.6*pi/wdelta); wn=(0.2+0.3)*pi/2; b=fir1(N,wn/pi,hamming(N+1)); figure(1) freqz(b,1,512) f2=filter(bz,az,x2) figure(2) subplot(2,1,1) plot(t,x2) title('滤波前的时域波形'); subplot(2,1,2) plot(t,f2); title('滤波后的时域波形'); sound(f2,22050); F0=fft(f2,1024); f=fs*(0:511)/1024; figure(3) y2=fft(x2,1024); subplot(2,1,1); plot(f,abs(y2(1:512))); title('滤波前的频谱') xlabel('Hz'); ylabel('fuzhi'); subplot(2,1,2) F2=plot(f,abs(F0(1:512))); title('滤波后的频谱') xlabel('Hz'); ylabel('fuzhi'); 3 结束语 语音信号是最能体现信号非线性的一个领域。本文运用MATLAB软件,设计出符合技术要求的数字滤波器,对加入单一频率语音信号进行消噪处理,结果显示还是非常有效的。FIR滤波器对语音信号滤波能够取得较好的效果。对于高斯噪声引入及消噪的方法需要用到现代滤波器的设计方法,传统滤波器只能削弱而不能消除噪声的影响。当然,对语音信号进行处理技术还有很多方面,如语音压缩和语音编码,语音识别等。结合语音语义理论的研究, 循环平稳信号分析、多谱分析和时频尺度理论,关键特征的捕捉等多层次的语音信号研究,有很重要的应用前景。 参考文献: [1] 陈明军,毛樟梅.改进窗函数在FIR数字滤波器设计中的应用[J].继电器,2007,35(13):64-68. [2] 孙强.运用MATLAB实现数字滤波器的设计[J].电脑学习,2005(2):32-34. [3] 苏玉萍,郑琼琼,余冬菊.基于MATLAB的FIR滤波器设计[J].中国科技信息,2008(8):44-46. [4] 周辉,董正宏.数字信号处理基础及MATLAB实现[M].北京:北京希望出版社,2006:230-260. [5] 丁玉美,高西全.数字信号处理[M].2版.西安:西安电子科技大学出版社,2000:195-222. |
随便看 |
|
科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。