⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bpbutt.m

📁 巴特沃思滤波器matlab程序
💻 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 + -