用双线性变换法设计一个数字巴特沃斯型带阻滤波器 用MATLAB编程 急!!!

2024-11-17 10:34:05
推荐回答(1个)
回答(1):

%当1KHz≤f≤2KHz时,衰减至少为18 dB,当f≤500Hz,f≥3KHz时,波纹在3dB内,采样频率fs为10KHz。
%要求采用巴特沃斯型模拟滤波器进行设计,画出所设计滤波器的幅度特性曲线,并写出其系统函数H(z)的表达式。 f和pi之间怎么转化呢?f≤500Hz,f≥3KHz这在程序中怎么表示?求完整程序 急!!!
clear all
close all
clc

fs=10*1e+3;
fsl=1*1e+3;
fsh=2*1e+3;
% fpl=500;
fpl=800;
fph=3*1e+3;
alphal=18;
alphah=3;

ws1=fsl/fs;
ws2=fsh/fs;
wp1=fpl/fs;
wp2=fph/fs;
wp=[wp1 wp2];
ws=[ws1 ws2];
[n,Wn] = buttord(wp,ws,alphah,alphal);
[z,p,k] = buttap(n);
b=poly(z);
a=poly(p);
Wo=sqrt(2*pi*fpl*2*pi*fph);
Bw=2*pi*fph-2*pi*fpl;
[bt,at] = lp2bs(b,a,Wo,Bw)
[numd,dend] = bilinear(bt,at,fs)
[H,w]=freqz(numd,dend);
plot(w/pi*fs/2,abs(H))
grid