📄 iirfilter.m
字号:
function [b,a] = IIRfilter( ap,as,wp,ws ,fs) %定义函数其中返回参数b a为设计后的滤波器的分子分母的系数T=1/fsws=2/T*tan(ws/2);wp=2/T*tan(wp/2);N=ceil(0.5*log10((10.^(as/10)-1)/(10.^(ap/10)-1))/log10(ws/wp)); %求模拟巴特沃思滤波器的阶数Nwc=ws/((10^(as/10)-1)^(1/2*N)); %求模拟滤波器的截止频率for k=1:N; %求模拟滤波器的极点 sk(k)=wc*exp((0.5+(2*k-1)/(2*N))*j*pi);end aa=real(poly(sk)) % 求模拟滤波器的分子 分母系数 bb=wc^NW=0:5:ws;h=freqs(bb,aa,W);[b,a]=bilinear(bb,aa,fs); %进行双线性变换 将模拟的滤波器转换成数字滤波器w=[0:0.1:2];H=freqz(b,a,w);angH=angle(H);H=abs(H);db=20*log10(H);subplot(2,2,1);plot(w/(2*pi)*1000,db)axis([0,350,-25,0]);subplot(2,2,2);plot(w/(2*pi)*1000,angH)subplot(2,1,2);plot(w/(2*pi)*1000,H),hold on,plot(W/(2*pi),abs(h),'r')
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -