数字信号处理翻转课堂笔记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实现脉冲响应不变法: