数字信号处理翻转课堂笔记12——用脉冲响应不变法将模拟滤波器转换为数字滤波器

数字信号处理翻转课堂笔记12

The Flipped Classroom12 of DSP

对应教材:《数字信号处理(第五版)》西安电子科技大学出版社,丁玉美、高西全著

一、要点

(1)模拟滤波器变换为数字滤波器的基本约束;
(2)脉冲响应不变法的基本原理;
(3)脉冲响应不变法中模拟频率和数字频率的映射关系(难点);
(4)脉冲响应不变法的主要特点及其适用的滤波器类型;
(5)脉冲响应不变法的设计方法和步骤(重点);
(6)基于MATLAB用脉冲响应不变法设计IIR数字滤波器。

二、问题与解答

1、模拟滤波器转换为数字滤波器需要满足哪些约束条件?脉冲响应不变法是否满足这些约束条件?

2、脉冲响应不变法的基本原理。

3、利用MATLAB,设计一个模拟低通巴特沃斯滤波器(模拟滤波器设计指标参数自定),分别用3种以上不同的T将其转换为数字滤波器,画出模拟滤波器和不同T对应数字滤波器的幅频特性,比较其差异并分析其原因,据此总结脉冲响应不变法的模拟频率、数字频率映射关系。

4、用脉冲响应不变法将模拟低通滤波器转换为数字滤波器,转换前后滤波器的幅频响应能否完全相同?为什么?如果模拟低通滤波器在通带具有理想的线性相位特性,转换得到的数字滤波器是否也一定具有理想的线性相位?

5、自选一数字低通滤波器设计指标参数,用两种不同的T将其转换为模拟滤波器的指标,然后用MATLAB分别设计模拟滤波器并用相应的T转换为数字滤波器,比较两种T所设计的模拟滤波器和数字滤波器的幅频响应。

6、为什么脉冲响应不变法设计数字滤波器会发生频域混叠?利用MATLAB,设计一个模拟高通滤波器(滤波器类型、技术指标自选),然后用脉冲响应不变法将其转换为数字滤波器,分析该数字滤波器的幅频响应,它是否为高通滤波器?为什么?据此讨论脉冲响应不变法适用的数字滤波器类型。(此时对h(t)的采样,是否满足采样定理?)

1、

模拟滤波器转换为数字滤波器需要满足哪些约束条件?脉冲响应不变法是否满足这些约束条件?


约束条件:
在这里插入图片描述
脉冲响应不变法满足这些约束条件:
在这里插入图片描述

2、脉冲响应不变法的基本原理

脉冲响应不变法的基本原理。
在这里插入图片描述

3、用matlab展现不同T情况下的数字滤波器幅频特性

利用MATLAB,设计一个模拟低通巴特沃斯滤波器(模拟滤波器设计指标参数自定),分别用3种以上不同的T将其转换为数字滤波器,画出模拟滤波器和不同T对应数字滤波器的幅频特性,比较其差异并分析其原因,据此总结脉冲响应不变法的模拟频率、数字频率映射关系。
代码:

%%      代码:
clear all
wp=0.1*pi;       %模拟滤波器指标
ws=0.2*pi;
rp=1;
rs=10;

[N,wc]=buttord(wp,ws,rp,rs,'s');    %计算相应的模拟滤波器阶数和3dB截止频率wc
[B,A]=butter(N,wc,'s');             %计算相应的模拟滤波器系统函数
[Bz,Az]=impinvar(B,A);              %产生数字滤波器系统函数

k=0:511;
fk=0:14000/512:14000;

wk=2*pi*fk;
[Hk,w]=freqs(B,A);                  %模拟
wz=0:pi/512:pi;
Hz=freqz(Bz,Az,wz);                 %数字

subplot(2,2,1)                      %画出模拟滤波器幅频响应
plot(w/pi,20*log10(abs(Hk)));
grid on
title('模拟滤波器')

subplot(2,2,2)                      %画出数字滤波器幅频响应
plot(wz/pi,20*log10(abs(Hz)));
grid on
title('数字滤波器T=ls')
axis([0 1.5 -100 0])

[Bz,Az]=impinvar(B,A,1/0.5);        %将T值改成0.5
Hz=freqz(Bz,Az,wz);
subplot (2,2,3)
plot(wz/pi,20*log10(abs(Hz)));
grid on
title('数字滤波器T=0.5s')
axis([0 1.5 -100 0])

[Bz,Az]=impinvar(B,A,1/1.5)         %将T值改成1.5
Hz=freqz(Bz,Az,wz);
subplot (2,2,4)
plot(wz/pi,20*log10(abs(Hz)));
grid on
title('数字滤波器T=1.5s')
axis([0 1.5 -100 0])

运行结果:
在这里插入图片描述
分析:
由图可知:几个图像的差异为频率轴伸缩,图像发生变化。
脉冲响应不变法的模拟频率、数字频率映射关系为:W=ΩT

4、模拟滤波器和数字滤波器的特性映射

用脉冲响应不变法将模拟低通滤波器转换为数字滤波器,转换前后滤波器的幅频响应能否完全相同?为什么?如果模拟低通滤波器在通带具有理想的线性相位特性,转换得到的数字滤波器是否也一定具有理想的线性相位?


如果不存在频谱混叠现象,转换前后基本完全相同。因为这是低通滤波器,对高频信号的增益很小,几乎滤除了高频信号,所以采样间隔T的取值对频谱混叠程度影响很小。
如果模拟低通滤波器在通带具有理想的线性相位特性,转换得到的数字滤波器也一定具有理想的线性相位。

5、不同T下的模拟/数字滤波器的幅频响应

自选一数字低通滤波器设计指标参数,用两种不同的T将其转换为模拟滤波器的指标,然后用MATLAB分别设计模拟滤波器并用相应的T转换为数字滤波器,比较两种T所设计的模拟滤波器和数字滤波器的幅频响应。


代码:

%%      代码:
T1=1;
T2=0.1;
fs1=1/T1;
fs2=1/T2;
wp=0.1*pi;
ws=0.2*pi;
%数字频率
wp1=0.1*pi/T1;
wp2=0.1*pi/T2;
ws1=0.2*pi/T1;
ws2=0.2*pi/T2;
rp=1;
rs=10;
[N1,wc1]=buttord(wp1,ws1,rp,rs,'s');
[N2,wc2]=buttord (wp2,ws2,rp,rs,'s');
[B1,A1]=butter (N1,wc1,'s');
[B2,A2]=butter (N2,wc2,'s');
fk1=0:fs1/2/512:fs1/2;
wk1=2*pi*fk1;
hf1=freqs(B1,A1,wk1);
fk2=0:fs2/2/512:fs2/2;
wk2=2*pi*fk2;
hf2=freqs(B2,A2,wk2);
[Bz1,Az1]=impinvar(B1,A1,1/T1);
[Bz2,Az2]=impinvar (B2,A2,1/T2);
Hz1=freqz(Bz1,Az1,wk1/fs1);
Hz2=freqz(Bz2,Az2,wk2/fs2);

figure(1)
subplot(2,1,1)
plot(fk1,abs(hf1)/abs (hf1(1)));
title ('模拟T=1')
axis([0 2 0 1]);
subplot(2,1,2)
plot(wk1*T1/pi,abs (Hz1)/abs (Hz1(1)));
title ('数字T=1');

figure(2)
subplot(2,1,1)
plot(fk2,abs(hf2)/abs (hf2(1)));
title('模拟T=0.1');
axis([0 2 0 1]);
subplot(2,1,2)
plot(wk2*T2/pi,abs(Hz2)/abs(Hz1(1)));
title('数字T=0.1');

运行结果:
在这里插入图片描述
在这里插入图片描述
分析:
相同T时,数字滤波器的pi(对应模拟fs/2)附近的衰减明显小于模拟频率附近fs/2附近的衰减;
不同T时对应数字滤波器的幅频响应图像相同,模拟滤波器的幅频响应图像大不相同,频率轴拉伸了T的倍数。

6、脉冲响应不变法适用的范围

为什么脉冲响应不变法设计数字滤波器会发生频域混叠?利用MATLAB,设计一个模拟高通滤波器(滤波器类型、技术指标自选),然后用脉冲响应不变法将其转换为数字滤波器,分析该数字滤波器的幅频响应,它是否为高通滤波器?为什么?据此讨论脉冲响应不变法适用的数字滤波器类型。(此时对h(t)的采样,是否满足采样定理?)
在这里插入图片描述
代码:

%%      代码:
clear
T=1;
wp=1;                               %设置滤波器指标参数
ws=4;
Rp=0.1;
As=40;             

[N,wc]=buttord(wp,ws,Rp,As,'s');    %滤波器Q(p)阶数N和3dB                        
[B,A]=butter(N,wc,'s');             %计算低通滤波器Q(p)系统函数分子分母多项式系数
wph=2*pi*4000;                      %高通模拟滤波器通带边界频率
[BH,AH]=lp2hp(B,A,wph);             %低通到高通转换
 
[Bz1,Az1]=impinvar(B,A,1/T);
[Bz2,Az2]=impinvar(BH,AH,1/T);
 
subplot(2,1,1)
[H,w]=freqz(Bz1,Az1);
plot(w/pi,abs(H));
subplot(2,1,2)
[H,w]=freqz(Bz2,Az2);
plot(w/pi,abs(H));

运行结果:
在这里插入图片描述
分析:
不是高通滤波器,因为频率响应混乱了,什么也不是
只能用于带限的频响特性,比如低通或带通滤波器。

三、反思总结

用matlab实现脉冲响应不变法:
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

暗然而日章

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值