📄 iir_1.m
字号:
wp=0.2*pi;
ws=0.3*pi;
rp=1;
as=15;
r=10^(-rp/20);
a=10^(-as/20);
n=ceil((log10((10^(rp/10)-1)/(10^(as/10)-1)))/(2*log10(wp/ws)));
fprintf('\n***Butterworth Filter Order=%2.0f',n)
omega=wp/((10^(rp/10)-1)^(1/(2*n)));
z=[];
p=exp(i*(pi*(1:2:n-1)/(2*n)+pi/2));
p=[p;conj(p)];
p=p(:);
if rem(n,2)==1
p=[p;-1];
end
k=real(-p);
p=p*omega;
k=k*omega^n;
B=real(poly(z));
b0=k;
b=k*B;
a=real(poly(p));
w1=0:50;
w=w1*pi/50;
H=freqs(b,a,w);
mag=abs(H);
db=20*log10((mag+eps)/max(mag));
pha=angle(H);
[ha,x,t]=impulse(b,a);
subplot(221)
plot(w/pi,db);
title('幅度响应');
ylabel('|H|');
subplot(222)
plot(w/pi,abs(mag));
title('幅度(dB)');
ylabel('分贝数');
subplot(223)
plot(w/pi,pha);
title('相位响应');
ylabel('弧度');
xlabel('以Pi为单位频率');
subplot(224)
plot(t,ha);
title('冲激响应');
ylabel('ha(t)');
xlabel('时间(秒)');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -