IIR滤波器的完全设计函数---肖伟

IIR滤波器的完全设计函数---肖伟

ID:37922901

大小:89.50 KB

页数:10页

时间:2019-06-02

IIR滤波器的完全设计函数---肖伟_第1页
IIR滤波器的完全设计函数---肖伟_第2页
IIR滤波器的完全设计函数---肖伟_第3页
IIR滤波器的完全设计函数---肖伟_第4页
IIR滤波器的完全设计函数---肖伟_第5页
资源描述:

《IIR滤波器的完全设计函数---肖伟》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、2、IIR滤波器的完全设计函数以上介绍了IIR滤波器设计原理和基本方法步骤,并给出了一些例子说明如何用MATLAB编程分步实现这些步骤。由这些步骤可知我们必须多次调用MATLAB信号处理工具箱中的基本工具函数。实际上,MATLAB信号处理工具箱还提供了IIR滤波器设计的完全工具函数,用户只要调用这些工具函数即可一次性完成设计,而不需要调用那些基本工具函数分步实现。IIR滤波器设计的完全工具函数有butter,cheby1,cheby2,ellip。这些工具函数既可用于设计模拟滤波器,也可用于设计数字

2、滤波器。这里介绍这些函数在IIR数字滤波器中的应用。在这两类滤波器设计中,这些工具函数调用格式基本相同,只是在频率处理上有所不同。在MATLAB滤波器设计工具箱中,数字滤波器采用归一化频率,取值为0~1之间,归一化频率1对应的数字角频率为,对应的真实频率为采样频率的一半。在应用MATLAB工具函数设计数字滤波器时应注意这一点。数字IIR滤波器的完全设计函数有:[b,a]=butter(n,wn[,'ftype'])[z,p,k]=butter(n,wn[,'ftype'])[b,a]=cheby1(

3、n,Rp,wn[,'ftype'])[z,p,k]=cheby1(n,Rp,wn[,'ftype'])[b,a]=cheby2(n,Rs,wn[,'ftype'])[z,p,k]=cheby2(n,Rs,wn[,'ftype'])[b,a]=ellip(n,Rp,Rs,wn[,'ftype'])[z,p,k]=ellip(n,Rp,Rs,wn[,'ftype'])在上面的调用方式中,n为滤波器的阶数,wn为滤波器的截止频率,取值为0~1。需根据采样频率Fs来定,如滤波器的截止频率为Fc(Hz),则w

4、n的计算公式为:(1)这样就转换为0~1的归一化频率。其中wp,ws等边界频率都要根据此公式进行转换。'ftype'滤波器的类型为:‘high’为高通滤波器,截止频率为wn.‘stop’为带阻滤波器,截止频率为wn=[w1,w2](w

5、法和频率的预畸变处理将模拟滤波器离散化为数字滤波器,同时保证模拟滤波器和数字滤波器在wn(或w1,w2)处具有相同的幅频响应。设计时应注意真实频率和MATLAB归一化数字频率之间的转换,即6-20式的应用。在进行IIR数字滤波器设计之前,请大家注意在模拟滤波器中我们用求取最小阶数和截止频率的函数如buttord,cheb1ord,cheb2ord,ellipord,这些函数完全可以用于IIR数字滤波器设计中,只不过在模拟滤波器设计中需加可选项's',在数字滤波器中则不加该项。另外,输出的截止频率也是

6、归一化频率(归一化为0~1)。【例4】设计一个Butterworth高通数字滤波器,通带边界频率为300Hz,阻带边界频率为200Hz,通带波纹小于1dB,阻带衰减大于20dB,采样频率为1000Hz。假设一个信号,其中f1=10Hz,f2=400Hz。试将原信号与通过该滤波器的输出信号进行比较。%Samp6_8Fs=1000;%采样频率wp=300*2/Fs;ws=200*2/Fs;%根据采样频率将滤波器边界频率进行转换Rp=1;Rs=20;%通带波纹和阻带衰减Nn=128;%显示滤波器频率特性的

7、数据长度[N,Wn]=buttord(wp,ws,Rp,Rs);%求得数字滤波器的最小阶数和截止频率(归一化频率)[b,a]=butter(N,Wn,'high');%设计Butterworth高通数字滤波器figure(1)[H,f]=freqz(b,a,Nn,Fs);%用Nn点绘出频率特性subplot(2,1,1),plot(f,20*log10(abs(H)));xlabel('频率/Hz');ylabel('振幅/dB');gridon;subplot(2,1,2),plot(f,180/

8、pi*unwrap(angle(H)))xlabel('频率/Hz');ylabel('相位/^o');gridon;n=0:127;dt=1/Fs;t=n*dt;%时间序列f1=10;f2=400;%输入信号频率x=sin(2*pi*f1*t)+0.5*cos(2*pi*f2*t);%输入信号figure(2)subplot(2,1,1),plot(t,x);title('输入信号')%绘制输入信号y=filter(b,a,x);%对输入信号进行滤波subplot(

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。