exe060302_1.m
来自「Matlab程序为清华大学胡广书版信号处理的上机习题答案」· M 代码 · 共 40 行
M
40 行
%-----------------------------------------------------
% exa060302_1
% to design a Butterworth Bandpass digital filter.
% ----------------------------------------------------
clear all;
f1=300;f3=400;
fsl=200;fsh=500;
rp=3;rs=40;
Fs=2000;
%
wp1=2*pi*f1/Fs;
wp3=2*pi*f3/Fs;
wsl=2*pi*fsl/Fs;
wsh=2*pi*fsh/Fs;
wp=[wp1 wp3];ws=[wsl wsh];
%
% Firstly to finish frequency prewarping;
wap=2*Fs*tan(wp./2);
was=2*Fs*tan(ws./2);
[n,wn]=buttord(wap,was,rp,rs,'s');
% Note: 's'!
[z,p,k]=buttap(n);
[bp,ap]=zp2tf(z,p,k)
%
bw=wap(2)-wap(1)
w0=sqrt(wap(1)*wap(2))
[bs,as]=lp2bp(bp,ap,w0,bw)
% Note: z=(2/Ts)(z-1)/(z+1);
[bz1,az1]=bilinear(bs,as,Fs)
[h,w]=freqz(bz1,az1,256,Fs);
plot(w,20*log10(abs(h)));grid on;
xlabel(' Hz')
hp=unwrap(angle(h));
figure;
plot(w,hp);grid on;
ylabel('Phase of TranFunction')
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?