用MATLAB设计IIR数字滤波器实验七.docx
- 文档编号:9155087
- 上传时间:2023-05-17
- 格式:DOCX
- 页数:10
- 大小:103.79KB
用MATLAB设计IIR数字滤波器实验七.docx
《用MATLAB设计IIR数字滤波器实验七.docx》由会员分享,可在线阅读,更多相关《用MATLAB设计IIR数字滤波器实验七.docx(10页珍藏版)》请在冰点文库上搜索。
用MATLAB设计IIR数字滤波器实验七
用MATLAB设计IIR数字滤波器-实验七
实验七:
用MATLAB设计IIR数字滤波器
1、用双线性变换法设计切比雪夫Ⅱ型数字滤波器,列出传递函数并描绘模拟和数字滤波器的幅频响应曲线。
①设计一个数字低通滤波器,要求:
ωp=0.2П,Rp=1dB;阻带:
ωs=0.35П,As=15dB,
滤波器采样频率Fs=10Hz。
程序清单如下:
wp=0.2*pi;%滤波器的通带截止频率
ws=0.35*pi;%滤波器的阻带截止频率
Rp=1;As=15;%滤波器的通阻带衰减指标
ripple=10^(-Rp/20);%滤波器的通带衰减对应的幅度值
Attn=10^(-As/20);%滤波器的阻带衰减对应的幅度值
%转换为模拟滤波器的技术指标
Fs=10;T=1/Fs;
Omgp=(2/T)*tan(wp/2);%原型通带频率的预修正
Omgs=(2/T)*tan(ws/2);%原型阻带频率的预修正
%模拟原型滤波器计算
[n,Omgc]=cheb2ord(Omgp,Omgs,Rp,As,'s')
[z0,p0,k0]=cheb2ap(n,As);%设计归一化的cheb2型模拟滤波器原型
ba1=k0*real(poly(z0));%求原型滤波器的系数b
aa1=real(poly(p0));
[bb,aa]=lp2lp(ba1,aa1,Omgc);%变换为模拟低通滤波器
%用双线性变换法计算数字滤波器系数
[bd,ad]=bilinear(bb,aa,Fs)
%求数字系统的频率特性
[H,w]=freqz(bd,ad);
dbH=20*log10((abs(H)+eps)/max(abs(H)));
subplot(2,2,1);plot(w/pi,abs(H));
ylabel('|H|');title('幅度响应');axis([0,1,0,1.1]);
set(gca,'XTickMode','manual','XTick',[0,0.2,0.35,1]);
set(gca,'YTickMode','manual','YTick',[0,Attn,ripple,1]);grid
subplot(2,2,2);plot(w/pi,angle(H)/pi);
ylabel('\phi');title('相位响应');axis([0,1,-1,1]);
set(gca,'XTickMode','manual','XTick',[0,0.2,0.35,1]);
set(gca,'YTickMode','manual','YTick',[-1,0,1]);grid
subplot(2,2,3);plot(w/pi,dbH);title('幅度响应(dB)');
ylabel('dB');xlabel('频率(\pi)');axis([0,1,-40,5]);
set(gca,'XTickMode','manual','XTick',[0,0.2,0.35,1]);
set(gca,'YTickMode','manual','YTick',[-50,-15,-1,0]);grid
subplot(2,2,4);zplane(bd,ad);
axis([-1.1,1.1,-1.1,1.1]);title('零极点图');
程序运行结果如下:
n=
3
Omgc=
10.2282
bd=
0.16240.00560.00560.1624
ad=
1.0000-1.40730.9056-0.1623
由频率特性曲线可知,该设计结果再通阻带截止频率处能满足Rp≤1dB、As≥20dB的设计指标要求,系统的极点全部在单位圆内,是一个稳定系统。
由n=3可知,由3阶的模拟低通滤波器原型用双线性变换法设计出来的切比雪夫Ⅱ型数字低通滤波器是一个3阶系统。
其传递函数为:
②设计一个数字高通滤波器,要求:
ωp=0.35П,Rp=1dB;阻带:
ωs=0.2П,As=15dB,
滤波器采样频率Fs=10Hz。
程序清单如下:
wp=0.35*pi;%滤波器的通带截止频率
ws=0.2*pi;%滤波器的阻带截止频率
Rp=1;As=15;%滤波器的通阻带衰减指标
ripple=10^(-Rp/20);%滤波器的通带衰减对应的幅度值
Attn=10^(-As/20);%滤波器的阻带衰减对应的幅度值
%转换为模拟滤波器的技术指标
Fs=10;T=1/Fs;
Omgp=(2/T)*tan(wp/2);%原型通带频率的预修正
Omgs=(2/T)*tan(ws/2);%原型阻带频率的预修正
%模拟原型滤波器计算
[n,Omgc]=cheb2ord(Omgp,Omgs,Rp,As,'s')
[z0,p0,k0]=cheb2ap(n,As);%设计归一化的cheb2型模拟滤波器原型
ba1=k0*real(poly(z0));%求原型滤波器的系数b
aa1=real(poly(p0));
[bb,aa]=lp2hp(ba1,aa1,Omgc);%变换为模拟低通滤波器
%用双线性变换法计算数字滤波器系数
[bd,ad]=bilinear(bb,aa,Fs)
[sos,g]=tf2sos(bd,ad)%转换成级联型
%求数字系统的频率特性
[H,w]=freqz(bd,ad);
dbH=20*log10((abs(H)+eps)/max(abs(H)));
subplot(2,2,1);plot(w/pi,abs(H));
ylabel('|H|');title('幅度响应');axis([0,1,0,1.1]);
set(gca,'XTickMode','manual','XTick',[0,0.2,0.35,1]);
set(gca,'YTickMode','manual','YTick',[0,Attn,ripple,1]);grid
subplot(2,2,2);plot(w/pi,angle(H)/pi);
ylabel('\phi');title('相位响应');axis([0,1,-1,1]);
set(gca,'XTickMode','manual','XTick',[0,0.2,0.35,1]);
set(gca,'YTickMode','manual','YTick',[-1,0,1]);grid
subplot(2,2,3);plot(w/pi,dbH);title('幅度响应(dB)');
ylabel('dB');xlabel('频率(\pi)');axis([0,1,-40,5]);
set(gca,'XTickMode','manual','XTick',[0,0.2,0.35,1]);
set(gca,'YTickMode','manual','YTick',[-50,-15,-1,0]);grid
subplot(2,2,4);zplane(bd,ad);
axis([-1.1,1.1,-1.1,1.1]);title('零极点图');
程序运行结果如下:
n=
3
Omgc=
7.7867
bd=
0.5221-1.35311.3531-0.5221
ad=
1.0000-1.45101.0283-0.2711
由频率特性曲线可知,该设计结果再通阻带截止频率处能满足Rp≤1dB、As≥15dB的设计指标要求,系统的极点全部在单位圆内,是一个稳定系统。
由n=3可知,由3阶的模拟低通滤波器原型用双线性变换法设计出来的切比雪夫Ⅱ型数字高通滤波器是一个3阶系统。
其传递函数为:
2、设计一个切比雪夫Ⅱ型数字带通滤波器,要求:
;阻带
,滤波器采样周期Ts=0.001s。
列出传递函数并作频率响应曲线和零极点分布图。
程序清单如下:
T=0.001;Fs=1/T;
wp1=2*pi*200/Fs;wp2=2*pi*300/Fs;%滤波器的通带截止频率
ws1=2*pi*150/Fs;ws2=2*pi*350/Fs;%滤波器的阻带截止频率
Rp=1;As=20;%滤波器的通阻带衰减指标
%转换为模拟滤波器的技术指标
Omgp1=(2/T)*tan(wp1/2);Omgp2=(2/T)*tan(wp2/2);
Omgp=[Omgp1,Omgp2];
Omgs1=(2/T)*tan(ws1/2);Omgs2=(2/T)*tan(ws2/2);
Omgs=[Omgs1,Omgs2];
bw=Omgs2-Omgs1;w0=sqrt(Omgs1*Omgs2);
ripple=10^(-Rp/20);%滤波器的通带衰减对应的幅度值
Attn=10^(-As/20);%滤波器的阻带衰减对应的幅度值
%模拟原型滤波器计算
[n,Omgn]=cheb2ord(Omgp,Omgs,Rp,As,'s')
[z0,p0,k0]=cheb2ap(n,As);%设计归一化的cheb2型模拟滤波器原型
ba1=k0*real(poly(z0));%求原型滤波器的系数b
aa1=real(poly(p0));%求原型滤波器的系数a
[ba,aa]=lp2bp(ba1,aa1,w0,bw);%变换为模拟带通滤波器
%用双线性变换法计算数字滤波器系数
[bd,ad]=bilinear(ba,aa,Fs)
%求数字系统的频率特性
[H,w]=freqz(bd,ad);
dbH=20*log10((abs(H)+eps)/max(abs(H)));
subplot(2,2,1);plot(w/pi,abs(H));
ylabel('|H|');title('幅度响应');axis([0,1,0,1.1]);
set(gca,'XTickMode','manual','XTick',[0,0.3,0.4,0.6,0.7]);
set(gca,'YTickMode','manual','YTick',[0,Attn,ripple,1]);grid
subplot(2,2,2);plot(w/pi,angle(H)/pi*180);
ylabel('\phi');title('相位响应');axis([0,1,-180,180]);
set(gca,'XTickMode','manual','XTick',[0,0.3,0.4,0.6,0.7]);
set(gca,'YTickMode','manual','YTick',[-180,-90,0,90,180]);grid
subplot(2,2,3);plot(w/pi,dbH);title('幅度响应(dB)');
ylabel('dB');xlabel('频率(\pi)');axis([0,1,-60,5]);
set(gca,'XTickMode','manual','XTick',[0,0.3,0.4,0.6,0.7]);
set(gca,'YTickMode','manual','YTick',[-60,-20,-1,0]);grid
subplot(2,2,4);zplane(bd,ad);
axis([-1.1,1.1,-1.1,1.1]);title('零极点图');
程序运行结果如下:
n=
3
Omgn=
1.0e+003*
1.13323.5299
bd=
0.13970.0000-0.09110.00000.0911-0.0000-0.1397
ad=
1.00000.00001.14540.00000.72750.00000.1205
数字带通滤波器传递函数为:
3、思考题:
⑴什么是双线性变换法?
使用双线性变换法设计数字滤波器有哪些步骤?
答:
双线性变换法是将整个s平面映射到z平面,其映射关系为
或
用双线性变换法设计IIR数字滤波器的步骤如下:
①输入给定的数字滤波器的设计指标;
②根据公式Ω=(2/T)tan(ω/2)进行预修正,将数字滤波器设计指标转换为模拟滤波器设计指标;
③确定模拟滤波器的最小阶数和截止频率;
④计算模拟低通原型滤波器的系统传递函数;
⑤利用模拟域频率变换法求解实际模拟滤波器的系统传递函数;
⑥用双线性变换法将模拟滤波器转换为数字滤波器。
⑵使用双线性变换法时,模拟频率与数字频率有何关系?
会带来什么影响?
如何解决?
答:
使用双线性变换法时,模拟频率与数字频率之间存在非线性关系,这种非线性关系导致数字滤波器频响曲线不能保真地模仿模拟滤波器的频响曲线形状。
解决办法进行预畸変校正,即由
将数字域频率转化为模拟域频率。
4.实验总结:
答:
通过本次实验,我知道了怎样用双线性变换法设计IIR数字滤波器,首先将数字滤波器设计指标转换为模拟滤波器设计指标,在转换时要根据公式Ω=(2/T)tan(ω/2)进行预畸変修正;其次根据模拟滤波器设计指标求出模拟低通原型滤波器的系统传递函数;最后用双线性变换法将模拟滤波器转换为数字滤波器。
另外还知道了切比雪夫滤器分两种类型:
型是指振幅特性在通带內是等波纹的,在阻带内是单调下降的;
型是指振幅特性在通带内是单调下降的,在阻带内是等波纹的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 设计 IIR 数字滤波器 实验
![提示](https://static.bingdoc.com/images/bang_tan.gif)