📄 hpbutt.m
字号:
%--------------------------------------------------------------------------
% 6.3 (2) to design a Butterworth Bandpass digital filter.
% -------------------------------------------------------------------------
clear all;
fp=400;fs=300;
rp=3;rs=35;
Fs=1000;
wp=fp*2*pi/Fs;
ws=fs*2*pi/Fs;
%
% 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'! % Note: 's'! af with s;df without s ???
[z,p,k]=buttap(n);
[bp,ap]=zp2tf(z,p,k) % bp 应该是分子向量 ap分母向量 zp2tf ???
%
[bs,as]=lp2hp(bp,ap,wap) % 低通转换为带通的G(p) 频率转换 低通的 bs应该是分子向量 as分母向量 --(lp)p-->(ap)s
%
[h1,w1]=freqs(bp,ap); % h1是相频响应 w1自动生成的 参考help freqs(bp,ap,n)!!!
%
% Note: z=(2/Ts)(z-1)/(z+1);
[bz,az]=bilinear(bs,as,Fs) % ------------------------------------------------- 模拟转换为数字滤波器s-->z
[h,w]=freqz(bz,az,1000,Fs); % freqs(bz,az,w,Fs)=h2 数字底通滤波器的幅频响应(曲线图)
figure(1);
plot(w,20*log10(abs(h)));grid on;
xlabel('Hz');
ylabel('幅频响应');
figure(2);
hphase=angle(h);
hphase=unwrap(hphase);
plot(w,hphase);
xlabel(' Hz');
ylabel('相频响应');
grid on;
%
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -