iirbandpass.m

来自「matlab的滤波器」· M 代码 · 共 25 行

M
25
字号
fp=[1200,3000];fst=[1000,3200];fs=8000;
rp=1;rs=100;
wp=fp.*2*pi/fs;
ws=fst.*2*pi/fs;
wap=2*fs*tan(wp./2);
was=2*fs*tan(ws./2);
[n,wn]=ellipord(wap,was,rp,rs,'s');
[z,p,k]=ellipap(n,rp,rs);
[bp,ap]=zp2tf(z,p,k);
bw=wap(2)-wap(1);
w0=sqrt(wap(1)*wap(2));
[bs,as]=lp2bp(bp,ap,w0,bw);
[bz,az]=bilinear(bs,as,fs);
[x1,fs]=wavread('music');
x2=filter(bz,az,x1);
sound(x2,44100);f=fft(x2,length(x1));
printf(x2,abs(f),abs(length(x1)),bz,az);
[H,W]=freqz(bz,az);
figure(2);
plot(W*fs/(2*pi),abs(H))
grid
xlabel('频率/Hz')
ylabel('频率响应幅度')
title('IIR带通滤波器')

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?