📄 iir.m
字号:
close all,clear all ,clc;
mp1=2*tan(0.2*pi/2);mp2=2*tan(0.3*pi/2);ms1=2*tan(0.1*pi/2);ms2=2*tan(0.4*pi/2);%预畸变
r=mp2-mp1; %参考频率
rp1=mp1/r;rp2=mp2/r;rs1=ms1/r;rs2=ms2/r; %归一化模拟带通滤波器的边界频率
r0=sqrt(rp1*rp2);
mpL1=(rp1^2-r0^2)/rp1; %归一化模拟低通原型滤波器
mpL2=(rp2^2-r0^2)/rp2;
msL1=(rs1^2-r0^2)/rs1;
msL2=(rs2^2-r0^2)/rs2;
mp=mpL2;
ms=min(abs(msL1),abs(msL2));
ap=1;as=25; %转换成模拟低通滤波器后的参数
[N,mc]=buttord(mp,ms,ap,as,'s') %确定模拟低通原型的阶数和 截止频率
[zl,pl,kl]=buttap(N);
[num,den]=zp2tf(zl,pl,kl);
zplane(zl,pl); %模拟低通滤波器的零极点图
figure;
wo=sqrt(mp1*mp2); %模拟带通的中心频率
[bt,at] = lp2bp(num,den,wo,mp2-mp1+0.1); %将模拟低通滤波器转换为模拟带通滤波器
[zb,pb,kb]=tf2zp(bt,at);
zplane(zb,pb); %模拟带通的零极点图
figure;
fs=1; %双线性变换法求得数字带通
[zd,pd,kd]=bilinear(zb,pb,kb,fs);
[b,a]=zp2tf(zd,pd,kd);
zplane(zd,pd); %数字带通的零极点图
figure;
freqz(b,a);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -