数字信号处置实验matlab版用双线性变换法设计IIR数字滤波器.docx
- 文档编号:1953534
- 上传时间:2022-10-25
- 格式:DOCX
- 页数:20
- 大小:180.26KB
数字信号处置实验matlab版用双线性变换法设计IIR数字滤波器.docx
《数字信号处置实验matlab版用双线性变换法设计IIR数字滤波器.docx》由会员分享,可在线阅读,更多相关《数字信号处置实验matlab版用双线性变换法设计IIR数字滤波器.docx(20页珍藏版)》请在冰豆网上搜索。
数字信号处置实验matlab版用双线性变换法设计IIR数字滤波器
实验21用双线性变换法设计IIR数字滤波器
(完美格式版,本人自己完成,所有语句正确,不排除极个别错误,专门适用于山大,勿用冰点等工具下载,不然下载以后的word格式会让很多部份格式错误,谢谢)
XXXX学号姓名处XXXX
一、实验目的
1.加深对双线性变换法设计IIR数字滤波器大体方式的了解。
2.把握用双线性变换法设计数字低通、高通、带通、带阻滤波器的方式。
3.了解MATLAB有关双线性变换法的子函数。
二、实验内容
1.双线性变换法的大体知识。
2.用双线性变换法设计IIR数字低通滤波器。
3.用双线性变换法设计IIR数字高通滤波器。
4.用双线性变换法设计IIR数字带通滤波器。
5.用双线性变换法设计IIR数字带阻滤波器。
三、实验环境
四、实验原理
1.实验涉及的MATLAB子函数
Bilinear
功能:
双线性变换——将s域(模拟域)映射到z域(数字域)的标准方式,将模拟滤波器变换成离散等效滤波器。
挪用格式:
[numd,dend]=bilinear(num,den,Fs);将模拟域传递函数变换为数字域传递函数,Fs为取样频率。
[numd,dend]=bilinear(num,den,Fs,Fp);将模拟域传递函数变换为数字域传递函数,Fs为取样频率,Fp为通带截止频率。
[zd,pd,kd]=bilinear(z,p,k,Fs);将模拟域零极点增益系数变换到数字域,Fs为取样频率。
[zd,pd,kd]=bilinear(z,p,k,Fs,Fp);将模拟域零极点增益系数变换到数字域,Fs为取样频率,Fp为通带截止频率。
[Ad,Bd,Cd,Dd]=bilinear(A,B,C,D,Fs);将模拟域状态变量系数变换到数字域,Fs为取样频率。
2.双线性变换法的大体知识
双线性变换法是将整个s平面映射到整个z平面,其映射关系为
或
双线性变换法克服了脉冲响应不变法从s平面到z平面的多值映射的缺点,排除频谱混叠现象。
但其在变换进程中产生了非线性的畸变,在设计IIR数字滤波器的进程中需要进行必然的预修正。
用MATLAB双线性变换法进行IIR数字滤波器设计的步骤(参见图19-1)与脉冲响应不变法设计的步骤大体相同:
(1)输入给定的数字滤波器设计指标;
(2)依照公式W=2[]Ttan[JB((]w[]2[JB))]进行预修正,将数字滤波器指标转换成模拟滤波器设计指标;
(3)确信模拟滤波器的最小阶数和截止频率;
(4)计算模拟低通原型滤波器的系统传递函数;
(5)利用模拟域频率变换法,求解实际模拟滤波器的系统传递函数;
(6)用双线性变换法将模拟滤波器转换为数字滤波器。
3.用双线性变换法设计IIR数字低通滤波器
例21-1采纳双线性变换法设计一个巴特沃斯数字低通滤波器,要求:
wp=,Rp=1dB;ws=,As=15dB,滤波器采样频率Fs=100Hz。
解程序如下:
wp=*pi;
ws=*pi;
Rp=1;As=15;
ripple=10^(-Rp/20);Attn=10^(-As/20);
Fs=100;T=1/Fs;
Omgp=(2/T)*tan(wp/2);
Omgs=(2/T)*tan(ws/2);
[n,Omgc]=buttord(Omgp,Omgs,Rp,As,'s');
[z0,p0,k0]=buttap(n);
ba=k0*real(poly(z0));
aa=real(poly(p0));
[ba1,aa1]=lp2lp(ba,aa,Omgc);
%注意,以上4行求滤波器系数ba一、aa1的程序,可由下一条程序替代
%[ba1,aa1]=butter(n,Omgc,'s');
[bd,ad]=bilinear(ba1,aa1,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,]);
set(gca,'XTickMode','manual','XTick',[0,,,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,,,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,,,1]);
set(gca,'YTickMode','manual','YTick',[-50,-15,-1,0]);grid
subplot(2,2,4),zplane(bd,ad);
axis([,,,]);title('零极图');
程序运行结果如下:
n=5
Omgc=
bd=
ad=---
sos=0-0
-
-
g=
频率特性如图21-1所示。
图21-1用双线性变换法设计的巴特沃斯数字低通滤波器特性
由频率特性曲线可知,该设计结果在通阻带截止频率处能知足Rp≤1dB、As≥15dB的设计指标要求,系统的极点全数在单位圆内,是一个稳固的系统。
由n=5可知,设计的巴特沃斯数字低通滤波器是一个5阶的系统,原型Ha(s)在s=-∞处有5个零点,映射到z=-1处。
那个巴特沃斯数字低通滤波器的级联型传递函数应为
4.用双线性变换法设计IIR数字高通滤波器
例21-2采纳双线性变换法设计一个椭圆数字高通滤波器,要求通带fp=250Hz,Rp=1dB;阻带fs=150Hz,As=20dB,滤波器采样频率Fs=1000Hz。
解程序如下:
fs=150;fp=250;Fs=1000;T=1/Fs;
wp=fp/Fs*2*pi;
ws=fs/Fs*2*pi;
Rp=1;As=20;
ripple=10^(-Rp/20);
Attn=10^(-As/20);
Omgp=(2/T)*tan(wp/2);
Omgs=(2/T)*tan(ws/2);
[n,Omgc]=ellipord(Omgp,Omgs,Rp,As,'s')
[z0,p0,k0]=ellipap(n,Rp,As);
ba=k0*real(poly(z0));
aa=real(poly(p0));
[ba1,aa1]=lp2hp(ba,aa,Omgc);
[bd,ad]=bilinear(ba1,aa1,Fs)
[H,w]=freqz(bd,ad);
dbH=20*log10((abs(H)+eps)/max(abs(H)));
subplot(2,2,1),plot(w/2/pi*Fs,abs(H),'k');
ylabel('|H|');title('幅度响应');axis([0,Fs/2,0,]);
set(gca,'XTickMode','manual','XTick',[0,fs,fp,Fs/2]);
set(gca,'YTickMode','manual','YTick',[0,Attn,ripple,1]);grid
subplot(2,2,2),plot(w/2/pi*Fs,angle(H)/pi*180,'k');
ylabel('\phi');title('相位响应');axis([0,Fs/2,-180,180]);
set(gca,'XTickMode','manual','XTick',[0,fs,fp,Fs/2]);
set(gca,'YTickMode','manual','YTick',[-180,0,180]);grid
subplot(2,2,3),plot(w/2/pi*Fs,dbH);
title('幅度响应(dB)');axis([0,Fs/2,-40,5]);
ylabel('dB');xlabel('频率(\pi)');
set(gca,'XTickMode','manual','XTick',[0,fs,fp,Fs/2]);
set(gca,'YTickMode','manual','YTick',[-50,-20,-1,0]);grid
subplot(2,2,4),zplane(bd,ad);
axis([,,,]);title('零极图');
运行结果如下:
n=3
Omgc=+003
bd=
ad=
频率特性如图21-2所示。
图21-2用双线性变换法设计椭圆高通数字滤波器
由频率特性曲线可知,该设计结果在通阻带截止频率处能知足Rp≤1dB、As≥20dB的设计指标要求。
由n=3可知,设计的椭圆数字高通滤波器是一个3阶的系统,极点全数在Z平面的单位圆内,是一个稳固的系统。
那个高通滤波器的传递函数应为
5.用双线性变换法设计IIR数字带通滤波器
例21-3采纳双线性变换法设计一个切比雪夫Ⅰ型数字带通滤波器,要求:
通带wp1=,wp2=,Rp=1dB;阻带ws1=,ws2=,As=20dB,滤波器采样周期Ts=。
解程序如下:
wp1=*pi;wp2=*pi;
ws1=*pi;ws2=*pi;
Rp=1;As=20;
T=;Fs=1/T;
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=Omgp2-Omgp1;w0=sqrt(Omgp1*Omgp2);
[n,Omgn]=cheb1ord(Omgp,Omgs,Rp,As,'s')
[z0,p0,k0]=cheb1ap(n,Rp);
ba1=k0*real(poly(z0));
aa1=real(poly(p0));
[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/2/pi*Fs,abs(H),'k');
ylabel('|H|');title('幅度响应');axis([0,Fs/2,0,]);
set(gca,'XTickMode','manual','XTick',[0,fs,fp,Fs/2]);
set(gca,'YTickMode','manual','YTick',[0,Attn,ripple,1]);grid
subplot(2,2,2),plot(w/2/pi*Fs,angle(H)/pi*180,'k');
ylabel('\phi');titl
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字信号 处置 实验 matlab 双线 变换 设计 IIR 数字滤波器
![提示](https://static.bdocx.com/images/bang_tan.gif)