当前位置:首页 > DSP实验5 IIR滤波器的设计与信号滤波
答:用脉冲响应不变法设计IIR数字滤波器 附1
双线性变换法设计对应的数字高通滤波器 附2
脉冲响应不变法不能用于设计数字高通滤波器和带阻滤波器;
附1、用脉冲响应不变法设计IIR数字滤波器
T=2; %设置采样周期为2 fs=1/T; %采样频率为周期倒数 Wp=0.25*pi/T;
Ws=0.35*pi/T; %设置归一化通带和阻带截止频率 Ap=20*log10(1/0.9);
As=20*log10(1/0.18); %设置通带最大和最小衰减
[N,Wc]=buttord(Wp,Ws,Ap,As,'s'); %调用butter函数确定巴特沃斯滤波器阶数 [B,A]=butter(N,Wc,'s'); %调用butter函数设计巴特沃斯滤波器 W=linspace(0,pi,400*pi); %指定一段频率值
hf=freqs(B,A,W); %计算模拟滤波器的幅频响应 subplot(2,1,1);
plot(W/pi,abs(hf)/abs(hf(1))); %绘出巴特沃斯模拟滤波器的幅频特性曲线 grid on;
title('巴特沃斯模拟滤波器');
xlabel('Frequency/Hz'); ylabel('Magnitude');
[D,C]=impinvar(B,A,fs); %调用脉冲响应不变法 Hz=freqz(D,C,W); %返回频率响应 subplot(2,1,2);
plot(W/pi,abs(Hz)/abs(Hz(1))); %绘出巴特沃斯数字低通滤波器的幅频特性曲线 grid on;
title('巴特沃斯数字滤波器'); xlabel('Frequency/Hz'); ylabel('Magnitude');
附2、双线性变换法设计对应的数字高通滤波器
Fs=10000; Ts=1/Fs; %采样频率和采样周期
wp=3000*2*pi;ws=2000*2*pi; %低通、高通数字滤波器截止频率 Rp=3;Rs=14; %通带波纹和阻带衰减
wpl=Fs*2*tan(ws*Ts/2); %按频率转换公式进行转换 wsl=Fs*2*tan(wp*Ts/2);
[N,Wn]=buttord(wpl,wsl,Rp,Rs,'s'); %计算模拟滤波器的最小阶数 [z,p,k]=buttap(N); %设计模拟原型低通滤波器
[b,a]=zp2tf(z,p,k); %变零极点增益形式为系统传递函数形式 [H,w]=freqs(b,a); %求模拟低通滤波器的频率响应 figure;
plot(w,abs(H));grid; %绘制低通频率特性 title('模拟低通原型');
xlabel('w');ylabel('幅度');
[e1,f1]=lp2lp(b,a,2000*2*pi) %原型低通转换为低通模拟滤波器 [h1,w1]=freqs(e1,f1); %求模拟低通滤波器的频率响应 figure;
plot(w1/(2*pi),abs(h1)); %绘制高通频率特性 grid;
title('模拟低通滤波器');
xlabel('频率Hz');ylabel('幅度');
[r1,q1]=bilinear(e1,f1,10000); %模拟低通滤波器转换为数字滤波 器
[s1,w2]=freqz(r1,q1); %求数字低通滤波器的频率响应 figure;
plot(w2/pi, 20*log10(abs(s1)));grid; %绘制数字低通滤波器的频率响应 title('数字低通滤波器');
xlabel('w/pi');ylabel('幅度(dB)'); [e2,f2]=lp2hp(b,a,2000*2*pi)
%原型低通模拟滤波器转换为高通模拟滤波器
[h2,w3]=freqs(e2,f2); %求模拟高通滤波器的频率响应 figure;
plot(w3/(2*pi),abs(h2)); %绘制高通频率特性 grid;
title('模拟高通滤波器');
xlabel('频率Hz');ylabel('幅度');
[r2,q2]=bilinear(e2,f2,10000); %模拟高通滤波器转换为数字滤波器 [s2,w4]=freqz(r2,q2); %求数字高通滤波器的频率响应 figure;
plot(w4/pi, 20*log10(abs(s2)));grid; %绘制数字高通滤波器的频率响应 title('数字高通滤波器');
xlabel('w/pi');ylabel('幅度(dB)');
共分享92篇相关文档