APP下载

基于Matlab加噪语音的FIR滤波器设计

2011-01-27陈后金郝晓莉

电气电子教学学报 2011年2期
关键词:阻带阶数滤波器

申 艳,陈后金,薛 健,郝晓莉,周 航

(北京交通大学电子信息工程学院,北京 100044)

基于Matlab加噪语音的FIR滤波器设计

申 艳,陈后金,薛 健,郝晓莉,周 航

(北京交通大学电子信息工程学院,北京 100044)

传统的FIR滤波器设计是根据给定的频率指标,设计出满足指标的系统函数。本文提出一种基于Matlab加噪语音的FIR滤波器设计方法。该方法首先通过Matlab产生单频噪声,加入到语音信号中,并改变单频噪声的频率来调整FIR滤波器设计的难度;然后,根据混入噪声信号的频谱,设计出所需要的滤波频率指标;选择合适的窗函数,设计满足该频率指标的 FIR滤波器;最后,利用FIR滤波器对混入噪声的信号滤波,得到滤波后的语音信号。

有限冲激相应;滤波器;噪声;语音

有限冲激响应FIR数字滤波器在数字信号处理领域应用广泛,是“数字信号处理”课程一个重要的内容[1-3]。传统的FIR滤波器设计的学习,一般是根据给定的频率特性,设计出滤波器的系统函数,并画出频率特性曲线和滤波器的格形结构。学生在学习这一部分内容时感到不易理解。

Matlab软件为FIR滤波器的学习和研究提供了直观便捷的途径[4-7]。结合我校研究型学习项目,本文提出一个结合加入噪声的语音信号作为输入的FIR滤波器设计题目。结果表明这种FIR滤波器设计学习非常有效,有助于学生对FIR滤波器设计知识的掌握。

1 传统的FIR滤波器设计

FIR数字滤波器的设计通常是根据理想滤波器的频率响应 Hd(ejΨ),采用窗函数法、频率取样法或优化设计等方法使所设计滤波器频率响应H(ejΨ)逼近H d(ejΨ),这里仅讨论窗函数法。

窗函数法设计FIR滤波器的基本思想是在时域逼近理想滤波器的单位脉冲响应[1]。首先根据待逼近的理想滤波器的频率响应Hd(ejΨ),加入线性相位因子ej(-0.5MΨ+β),实现因果化处理。其中 ,Ψ表示数字角频率,M表示FIR滤波器的阶数,β是与Ψ无关的常数。对I型和II型线性相位FIR滤波器β=0,对III型和IV型线性相位滤波器,β=π/2。其次,由IDTFT求出理想滤波器的单位脉冲响应h d[k],最后,将无限长的h d[k]加窗截断得到有限长序列h[k],实现一个稳定系统。

按照传统的FIR滤波器设计,给出低通滤波器指标如下:

通带截频 Ψp=0.15π,阻带截频 Ψs=0.2π,通带衰减A p=1dB,阻带衰减A s=44dB。

根据上述指标,可采用Hanning窗、Hamming窗或Blackman窗设计。利用Matlab软件编程,得到的设计结果如图1所示。

图1 三种窗函数设计的FIR滤波器

根据设计指标,这三种窗函数设计的滤波器的阶数分别是:Hanning窗125阶,H amming窗141阶,Blackman窗是229阶。由图1可见,Hanning窗的过渡带最窄,阶数最少,Hamming窗的过渡带和Hanning窗近似,阶数比Hanning窗大,阻带衰减最小;Blackman窗的过渡带最宽,阶数和阻带衰减最大。Hamming窗和 Blackm an的设计都存在裕量。传统的FIR滤波器设计到这里就结束了。

2 采用语音信号进行FIR滤波器设计

通过以上分析可以看出,传统的FIR滤波器仅仅给出了设计的阶数、过渡带和阻带衰减等设计结果,以这些数据来比较它们的优劣,无法从语音或者图像直观地感受到所设计的滤波器的效果。本文据此提出一种基于Matlab语音加噪声作为输入的窗函数FIR滤波器设计方法。

2.1 Matlab产生语音信号

在“数字信号处理”课程的学习中,经常采用一维信号进行举例实验,比如心电图信号和语音信号等。这里利用Matlab生成一维的语音信号,以语音“你好”为例,其时域波型和频域频谱如图2所示。

图2 “你好”语音信号时域和频域图像

图2(a)是“你好”的语音信号时域图像,在时间上持续了0.453秒。图2(b)是其对应的频谱,主要频率范围在0到4400Hz之间。为了叙述方便,这里频谱图的横轴均以模拟频率表示。

接着,将一单频噪声叠加到“你好”语音信号中,我们可以根据加入噪声的位置设计频率特性,通过窗函数法设计的FIR滤波器进行实验,检验其能否有效滤除噪声。

2.2 Matlab产生单频噪声

加入的单频噪声的位置应当高于语音信号“你好”的最高频率4400Hz,噪声频率越高,滤波器设计的指标就越宽松。因为噪声可以很容易被滤除,从听觉上,很明显地感觉到噪声已经滤除,和没有加入噪声的语音信号完全一致。但对学生学习FIR滤波器的设计水平提高度不大,因为实际情况是噪声会很靠近信号。

本文加入单频噪声在4500Hz到6600H z之间,由此就需要谨慎选择滤波器的参数。否则噪声很难滤除干净,我们还是能够听到单频噪声产生的“嗞嗞”声。然而,即使所选择的参数能够将噪声滤除干净,也会导致所选择的阶数太大,而难以实现。因此如何设计单频噪声的频谱位置很重要,它决定了FIR滤波器设计的难易程度。图3给出了Matlab产生的4500Hz和6600H z噪声的时域和频域图像。

图中虚线为4500Hz的噪声,实线为6600Hz噪声。如能在这两个频率之间加入单频噪声,就可以设计难度比较合适的FIR滤波器。

3 实验验证

3.1 参数设计

图3 4500H z和6600Hz单频噪声

FIR滤波器的设计指标是由所选择的窗函数决定的。窗函数选定后,过渡带宽度、通带衰减和阻带衰减等参数就确定了。通带截频和阻带截频是由语音信号和噪声信号的频谱决定的。滤波器的阶数是由过渡带宽度、通带截频和阻带截频决定的。根据频谱特性提出如下滤波指标:通带截频 Ψp=0.15π,阻带截频 Ψs=0.2π,通带衰减 A p=0.5dB,阻带衰减 A s=44dB。若采用Hanning窗,计算得到FIR滤波器的截频和阶数分别为:Ψc=(Ψp+Ψs)/2=0.175π,N ≥6.2π/(Ψs-Ψp)=124。采用I型滤波器,取 N=125。则理想低通滤波器的单位脉冲响应是

用Hanning窗截断 h d[k]使得到满足要求的FIR低通滤波器的单位脉冲响应h[k]=h d[k]·w[k]。加入单频噪声的语音信号和h[k]卷积后,即可得到滤波后的语音信号。

3.2 实验结果

首先,我们加入4500Hz的余弦单频噪声。通过频谱分析和计算,阻带衰减至少应为30dB,因此选择Hanning窗、H amming窗和 Blackm an均可满足设计要求。以Hanning窗为例,将单频的余弦信号叠加到“你好”语音信号中,得到的混噪信号如图4(a)所示。

图4(b)表示通过设计的FIR滤波器滤波后的语音信号。从频谱图中可以看出,噪声已经滤除。听觉上也能够直接感受到滤波后的语音信号,但是需要140阶的FIR滤波器。

在这种FIR滤波器参数指标下,将噪声移动到高于4500H z的频率位置,滤波后的效果将会更好。因为此时噪声频率落在滤波器的高频阻带范围,抑制度更大。为了节省设计成本,从听觉上感受到滤波效果良好的情况下,需要降低滤波器的阶数。

图4 FIR滤波前后语音信号频谱

滤波器阶数的降低可通过选择Kaiser窗函数实现。针对该实验,阻带衰减30dB即可,用Kaiser窗设计的滤波器可以满足该指标。设计得到的阶数是48阶,比Hanning窗减少了92阶。

滤波器阶数的降低还可以通过增大过渡带宽度实现,增大过渡带的宽度包含了降低通带截频和提高阻带截止频率。如果降低通带截止频率,信号有效频率成分会损失,滤波后的语音信号失真,听起来显得低沉;如果提高阻带截止频率,将无法完全滤除单频噪声,滤波后的语音信号依然能够听到噪声。

如果在语音信号中加入6600Hz的单频余弦噪声,那么前述140阶滤波器的指标完全可以满足要求。为了降低阶数,可以更改滤波器的指标,将阻带截频增大到 Ψs=0.3π,这时只需要32阶滤波器就可以实现滤除噪声的良好效果。

4 结语

综上所述,基于Matlab语音的FIR滤波器设计改善了传统的设计方式,能够从听觉上直接感受到FIR滤波器的滤波效果,随时验证滤波器设计是否有效。通过调整加入语音信号的噪声频率,可改变FIR滤波器设计的难易程度。这就需要学生自主设计滤波器指标,并选择合适的窗函数来达到FIR滤波器的设计目的。

通过2010年“数字信号处理”课程研究型学习的检验,说明该方法是成功有效的。在没有采用本文所提出的方法之前,学生通过计算得到FIR滤波器设计的参数,采用Matlab画出滤波器的频率响应,这种方式仅让学生掌握了FIR滤波器设计的计算过程。而采用了本文的方法之后,学生动手录制实际的语音信号,加入噪声,进行FIR滤波器设计,从听觉上直观的感受到滤波器设计的效果,随时修改滤波器参数,以达到满足听觉感受的指标。

语音信号对相位的敏感性不高,该方法也可以应用于IIR滤波器设计。IIR滤波器实现的阶数比FIR滤波器少,可节省成本。在噪声频谱位置的设计方面,和FIR滤波器的设计类似。进一步的工作可以在语音信号中加入多频率噪声,或者带限噪声,并考虑加入噪声的类型和位置。在加入相同的噪声频谱的情况下,比较不同的滤波器方法。与实际通信系统和雷达系统的噪声情况结合起来,增大FIR滤波器的设计难度,让学生能将理论知识更好地运用到实际情况。

[1] 陈后金,薛健,胡健.数字信号处理[M].北京:高等教育出版社,2007

[2] 胡广书.数字信号处理——理论、算法与实现[M].北京:清华大学出版社,2003

[3] 程佩青.数字信号处理教程[M].北京:清华大学出版社,2007

[4] Sanjit K.M itra,Digital Signal Processing[M].M cg raw-Hill companies,2004

[5] 刘兴钊,李力利.对FIR数字滤波器频域实现错误观点的讨论[J].南京:电气电子教学学报.2007:29(2)

[6] 钟国梁.浅谈学习窗函数法设计FIR数字滤波器体会[J].南京:电气电子教学学报.2009:31(3)

[7] 王玉德.“数字信号处理”课程的教与学的探讨[J].南京:电气电子教学学报.2008:30(6)

FIR Filter Design of Noisy Audio Signals Based on Matlab

SHEN Yan,CHEN Hou-jin,XUE Jian,HAO X iao-li,ZHOU Hang

(Schoolo f E lectronic and In formation Eng ineering,Beijing Jiaotong Un iversity,Beij ing 100044,China)

The objectof conventional FIR filter is to design the system function from thegiven design index.An audio signalmethod based on Matlab is presented to improve the convertional design.Firstly,a noise of single frequency is generated and added to the audio signal recorded by the Matlab so ftware.A range of frequency of the noise is designed to adjust the difficulty of the FIR design.Secondly,according to the frequency of the noisy audio signal,frequency parameters satisfying the given design index are com puted.Selecting properw indow function and designing the FIR filter are com plated.A t last,filtering the noisy audio signal,the audio signal isobtained from the output.

FIR;Filter;noise;audio

TN 713+.7

A

1008-0686(2011)02-0041-04

2010-06-23;

2010-09-16

电工电子基础课程国家级教学团队项目(244033529);电工电子国家级实验教学示范中心项目(351003535)

申 艳(1979-),女,博士,讲师,主要从事信号处理的研究,E-mail:sheny@bjtu.edu.cn

猜你喜欢

阻带阶数滤波器
确定有限级数解的阶数上界的一种n阶展开方法
从滤波器理解卷积
开关电源EMI滤波器的应用方法探讨
复变函数中孤立奇点的判别
一种改进的最大信杂比MTD滤波器设计算法
二维周期介质阻带分析与应用研究
基于Canny振荡抑制准则的改进匹配滤波器
基于TMS320C6678的SAR方位向预滤波器的并行实现
一种新的多址信道有效阶数估计算法*
一种基于互补环缝谐振器抑制SSN的新方法