📄 bpbutt.m
字号:
%--------------------------------------------------------------------------
% 6.3 (2) to design a Butterworth Bandpass digital filter.
% -------------------------------------------------------------------------
clear all;
fp=[300 400];fs=[200 500];
rp=3;rs=40;
Fs=2000;
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'! 猜想是向量或矩阵形式 ???
[z,p,k]=buttap(n);
[bp,ap]=zp2tf(z,p,k) % bp 应该是分子向量 ap分母向量 zp2tf ???
%
bw=wap(2)-wap(1) % wap(1)应该是向量中的第一个向量wap1 同理wap2 bw频宽 ???
w0=sqrt(wap(1)*wap(2)) % center frequency Wo and bandwidth Bw ???
[bs,as]=lp2bp(bp,ap,w0,bw) % 低通转换为带通的G(p) 频率转换 低通的 bs应该是分子向量 as分母向量 --(lp)p-->(ap)s
% 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)));
ylabel('Bandpass AF and DF')
xlabel(' Hz');
ylabel('幅频响应');
grid;
%
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 + -