分别讨论了IIR和FIR数字滤波器的设计方法,这两种滤波器各有什么优缺点,在实际中如何选择它们,这里进行一个见的比较。
① 对于幅频特性来说,IIR滤波器可以用较少的阶数获得相同的技术指标,这样所需要的存储单元少,运算次数少,较为经济。
② FIR滤波器可以严格的线性相位,而IIR滤波器则做不到这一点,IIR滤波器的频率选择性越好,则相位的非线性越严重。IIR滤波器加全通网络补偿才能得到线性相位,这样要大大增加滤波器的阶数和复杂性。
③ FIR滤波器不存在内部的反馈,因而系统稳定。FIR滤波器的有限精度误差也较小。IIR滤波器的反馈有时会造成系统的不稳定,为减少运算误差,IIR滤波器对运算的精度要求也比较高。
④ FIR滤波器可以用快速傅里叶变换(FFT)算法减少运算量,IIR滤波器则不可能这样计算。
⑤ 从设计工作上看,IIR滤波器可以借助于原型模拟滤波器的设计方法和计算机程序,其设计工作的工作量不大,但主要用于设计频率特性分为常数的低通、高通、带通、带阻等类型的滤波器。FIR滤波器设计无法借助与原型模拟滤波器的设计方法。
⑥ 无论是FIR滤波器还是IIR滤波器设计均可以采用优化设计的方法,相对而言优化设计要灵活得多,可以设计出多通带滤波器等各种数字网络,适应性较广。
从以上简单的比较可以看出,IIR滤波器和FIR滤波器各有所长,所以应该根据实际应用要求,从多方面考虑加以选择。
4. 进行滤波,比较滤波前后语音信号的波形及频谱
4.1. 用IIR滤波器和FIR滤波器滤波
用自己设计的各滤波器分别对加噪的语音信号进行滤波,在Matlab中,FIR滤波器利用函数fftfilt对信号进行滤波,IIR滤波器利用函数filter对信号进行滤波。
函数fftfilt用的是重叠相加法实现线性卷积的计算。调用:y=fftfilter(h,x,M)。其中,h是系统单位冲击响应向量;x是输入序列向量;y是系统的输出序列向量;M是有用户选择的输入序列的分段长度,缺省时,默认的输入向量的重长度M=512。
函数filter的调用格式:yn=filter(B,A,xn),它是按照直线型结构实现对xn的滤波。其中xn是输入信号向量,yn输出信号向量。
本文中我们用双线性法设计了三个IIR滤波器对带噪声的语音信号进行滤波;同时也用窗函数法设计了三个FIR滤波器对带噪声的语音信号进行滤波 。故我们需要进行751次滤波,然后比较得出哪种滤波器的效果最好。
经过加噪处理后,可在Matlab中用函数sound对声音进行回放。其调用格式:sound(y,Fs),sound(y)和sound(y,Fs,bits)。可以察觉滤波前后的声音有明显的变化。比较后可得;低通效果较好,高通其次,带通最差。对原始语音信号具体程序及运行结果如附录(II) 比较滤波前后语音信号的波形及频谱。
4.2. 各个滤波器滤波得到的语音信号频谱图:
图4-1 双线性变换法低通滤波器
图4-2 双线性变换法带通滤波器
图4-3 双线性变换法高通滤波器
图4-4 窗函数变换法低通滤波器
图4-5 窗函数变换法带通滤波器
图4-6 窗函数变换法高通滤波器5. GUI界面
5.1. GUI简介
MATLAB 中的 GUI 程序为事件驱动的程序。事件包括按下按钮,鼠标单击等。GUI 中的每个控件与用户定义的语句相关。当在界面上执行某项操作时,则开始执行相关的语句。用户图形界面(GUI)是程序的图形化界面。一个好的GUI 能够使程序更加容易的使用。它提供用户一个常见的界面,还提供一些控件,例如,按钮,列表框,滑块,菜单等。用户图形界面应当是易理解且操作是可以预告的,所以当用户进行某一项操作,它知道如何去做。例如,当鼠标在一个按钮上发生了单击事件,用户图形界面初始化它的操作,并在按钮的标签上对这个操作进行描述。创建MATLAB 用户图形界面必须由三个基本元素:
- 上一篇:MATLAB维特比译码算法在不同信道中的性能仿真
- 下一篇:无线传感器网络中数据传输最优路径选择
-
-
-
-
-
-
-
中考体育项目与体育教学合理结合的研究
java+mysql车辆管理系统的设计+源代码
电站锅炉暖风器设计任务书
河岸冲刷和泥沙淤积的监测国内外研究现状
乳业同业并购式全产业链...
大众媒体对公共政策制定的影响
十二层带中心支撑钢结构...
当代大学生慈善意识研究+文献综述
杂拟谷盗体内共生菌沃尔...
酸性水汽提装置总汽提塔设计+CAD图纸