作业帮 > 综合 > 作业

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

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/07/02 19:46:03
用双线性变换法设计一个数字巴特沃斯型带阻滤波器 用MATLAB编程
要求:当1KHz≤f≤2KHz时,衰减至少为18 dB,当f≤500Hz,f≥3KHz时,波纹在3dB内,采样频率fs为10KHz.要求采用巴特沃斯型模拟滤波器进行设计,画出所设计滤波器的幅度特性曲线,并写出其系统函数H(z)的表达式.f和pi之间怎么转化呢?f≤500Hz,f≥3KHz这在程序中怎么表示?求完整程序
%当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