www.gusucode.com > MATLAB仿真技术与应用__的配套例题和习题的matlab源代码 > 第四章/example11.m

    %MATLAB program 4-11
% Typical digital filter design
clear all;
clc;
%把数字滤波器的频率特征转换成模拟滤波器的频率特征
Fs=1.0e+4;  Fc=1.0e+3; Fst=1.5e+3;Rp=1; Rs=15; 
Wp=2*pi*Fc;
Ws=2*pi* Fst ;
%选择滤波器的阶数
[N,Wn]=cheb1ord(Wp,Ws,Rp,Rs,’s’);
%创建Chebyshev I低通滤波器原型
[z,p,k]=cheb1ap(N);
%从零极点形式转换成状态方程形式
[A,B,C,D]=zp2ss(z,p,k);
%实现低通到高通滤波器类型的转换
[At,Bt,Ct,Dt]=lp2lp(A,B,C,D,Wn);
%采用双线性变换法实现从模拟低通到数字高通滤波器的转换
[b,a]=ss2tf(At,Bt,Ct,Dt);
[b1,a1]=impinvar(b,a,Fs);
%绘出频率响应曲线
figure;
[h,w]=freqz(b1,a1);
plot(w*Fs/(2*pi),abs(h));
grid;
xlabel('频率(Hz)');
ylabel('幅值');
title('Highpass digital filter');
figure;
plot(w*Fs/(2*pi),20*log10(abs(h)));
grid;
xlabel('频率(Hz)');
ylabel('幅值(dB)');
title('Highpass digital filter');