matlab设计数字滤波器.doc

上传人:工**** 文档编号:559728807 上传时间:2024-01-04 格式:DOC 页数:15 大小:397.50KB
返回 下载 相关 举报
matlab设计数字滤波器.doc_第1页
第1页 / 共15页
matlab设计数字滤波器.doc_第2页
第2页 / 共15页
matlab设计数字滤波器.doc_第3页
第3页 / 共15页
matlab设计数字滤波器.doc_第4页
第4页 / 共15页
matlab设计数字滤波器.doc_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《matlab设计数字滤波器.doc》由会员分享,可在线阅读,更多相关《matlab设计数字滤波器.doc(15页珍藏版)》请在金锄头文库上搜索。

1、如何能得知FIR的系数呢?假如是一些没有特殊要求的平滑(低通)滤波的场合,可以简单地采用平均值滤波的方法,所谓平均值滤波,即各个系数相等。设平均值滤波器的阶数是N,则可以取bn=1/N。实际使用时,只要每个系数相等即可,不必一定等于1/N。假如面对一些对通频带、截止频率、阶数有特殊要求的场合,有两种方法,一种是根据系数计算步骤(可参考Fundamentals of Digital Signal Processing, Joyce Van de Vegte),二是用Matlab的Fdatool工具进行滤波器设计。选择第二种方法明显的有优越性。关于fdatool的使用,Matlab有提供详细的指导

2、,在Matlab命令行输入help fdatool,再点入doc fdatool即可查看。 help fdatoolFDATOOL Filter Design & Analysis Tool. FDATOOL launches the Filter Design & Analysis Tool (FDATool). FDATool is a Graphical User Interface (GUI) that allows you to design or import, and analyze digital FIR and IIR filters. If the Filter Desig

3、n Toolbox is installed, FDATool seamlessly integrates advanced filter design methods and the ability to quantize filters. See also FVTOOL, SPTOOL. doc fdatoolToolbox下的Filter Design图1 Fdatool设计滤波器 图2 冲激响应 图3 滤波器系数这些系数是按下Design Filter后自动生成的。对于FIR,它只有Numerator,即分子。这些系数表示的就是这个滤波器的系统函数的分子中各项的系数,也就是差分方程里面

4、的b系数。这些系数可以导出成C语言的头文件,这需要按下菜单栏的Targets,选择Generate C header,然后弹出如下窗口,作出相应的选择后按下Generate即可,生成的头文件中的系数可以以常系数数组的方式烧入DSP处理器的Flash中。 图4 生成C 头文件 数字滤波器的Matlab实现 数字滤波器在音频处理领域也显示出相当的作用,最直观的一个例子是数字音频效果器。比如要用数字的方式产生延时效果,其原理框图如下: 图5 延时系统 它的表达式是: yn=G2*xn+G1*cn cn=xn-k+G3*cn-k 用对G1、G2、G3分别赋值0.8、0.8和0.8后,用Matlab的绘

5、图功能画出其幅频和相频响应如下: 图6延时系统额频率响应 其中蓝色部分是幅频响应,绿色部分是相频响应,可见梳状滤波器的特点是幅频响应是一个个尖峰。在时域里,梳状滤波器对音频的作用是产生延时效果,如下图所示。 图7 对音频ding.wav延时处理的结果 在延时器的基础上,可以构建混响器。混响系统是由四个梳状滤波器并联后再串联一个全通滤波器构成的,G1和G2同样是衰减系数。事实上,混响效果系统可以并联更加多的梳状滤波器。梳状滤波器的延时参数设置是比较讲究的,因为如果延时参数太大,回声会太过分散(回声密度太小)从而会听出分立的回声的效果,影响了混响系统的平滑性;延时参数太小的话,梳状滤波器频率响应的

6、尖锋就比较分散(象回声效果的第一个图),会产生一些比较难听的高音。图9 混响系统 所以延时参数的选择最好是在30到40ms左右,具体的值要根据采样频率而定,并且每个梳状滤波器的延时参数必须是不可公约的,因为如果参数可以公约,频率响应的尖峰会相互抵消一部分从而影响混响系统的质量。全通滤波器的幅频响应是恒定值但相频响应不是线性的相位响应。所以信号经过全通滤波器各频率的相对相位会发生一定改变,在时域里产生一种涂抹的效果。下面是实现混响效果的程序片段,由于混响效果的运算量比较大,所以必须用FFT方法才能使运算在比较短的时间里面完成。以下是Matlab实现混响系统的程序片段,大家要注意Matlab用于构

7、建滤波器的函数dfilt、产生单位脉冲响应的函数impz、用于快速傅里叶变换的函数fft和用于快速傅里叶反变换的函数ifft,它们的具体用法可以查看Matlab帮助文档,里面有非常详细的描述。 %Reverb Effect hd_1=dfilt.df1(b1,a1);%four comb filters hd_2=dfilt.df1(b2,a2); hd_3=dfilt.df1(b3,a3); hd_4=dfilt.df1(b4,a4); hd_5=dfilt.allpass(c); hd_comb=dfilt.parallel(hd_1,hd_2,hd_3,hd_4);%hd is the

8、Reverb filter. pay attention that it is parallel hd=dfilt.cascade(hd_comb,hd_5); imp_res=impz(hd,length_input);%impule response of hd imp_res=imp_res; %act fft to the hd and the input, times them and inverse fft fr_hd=fft(decay_wet*imp_res,length_input); if channel=1% mono sound fr_input=fft(decay_d

9、ry*x,length_input); fr_output=fr_hd.*fr_input; z=ifft(fr_output,length_input); elseif channel=2 % stereo sound fr_hd(2,:)=fr_hd; fr_input=fft(decay_dry*x,length_input,2); fr_output=fr_hd.*fr_input; z=ifft(fr_output,length_input,2); end 下面是梳状滤波器延时量100左右的混响系统频率响应: 图10 混响系统频率响应 下面是音频信号混响前和混响后的对比图 图11 对Reverb_effect.wav的混响处理

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号