数字信号处理翻转课堂笔记13——用双线性变换法将模拟滤波器转换为数字滤波器

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

The Flipped Classroom13 of DSP

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

一、要点

(1)双线性变换法将模拟滤波器转换为数字滤波器的基本原理;
(2)双线性变换法中模拟频率和数字频率的映射关系(难点,重点);
(3)双线性变换法的特点及其适用的滤波器类型;
(4)双线性变换法的设计方法和步骤(重点);
(5)基于MATLAB用双线性变换法设计IIR数字滤波器。

二、问题与解答

1、简述双线性变换法的基本原理。分析双线性变换法是否满足模拟滤波器转换为数字滤波器的约束条件?
2、双线性变换法的模拟频率与数字频率之间具有何种对应关系?与脉冲响应不变法相比,这种对应关系有何区别?双线性变换法具有哪些突出的优点和缺点?双线性变换法适用于设计何种类型的数字滤波器?
3、举一个模拟低通滤波器的例子(H(s)一定),分别用脉冲响应不变法和双线性变换法(两种方法用相同的T,注意T选取的合理性)将其转换为数字滤波器,用MATLAB画出模拟滤波器、双线性变换法转换的数字滤波器、脉冲响应不变法转换的数字滤波器的幅频和相频响应特性曲线,比较频率特性的区别,总结脉冲响应不变法与双线性变换法各自的特点。如果改变T的大小,对所设计数字滤波器的特性会产生何种影响?
4、给定一个低通数字滤波器的技术指标(自定),利用MATLAB,选取两种不同的T值,基于双线性变换法设计数字滤波器(模拟原型滤波器采用巴特沃斯滤波器),分别画出模拟和数字滤波器的幅频特性曲线,总结双线性变换法设计数字滤波器的基本步骤,比较不同T值所设计得到的模拟滤波器和数字滤波器的区别,并分析其原因。
5、给定一个高通数字滤波器的技术指标(自定),利用MATLAB,分别采用不同的模拟原型滤波器(巴特沃斯、切比雪夫、椭圆),用双线性变换法设计数字滤波器,分别画出各模拟和数字滤波器的幅频特性曲线,比较设计结果的差异。

1、双线性变换法原理

简述双线性变换法的基本原理。分析双线性变换法是否满足模拟滤波器转换为数字滤波器的约束条件?


在这里插入图片描述
在这里插入图片描述
约束条件:①因果稳定的模拟滤波器转换成数字滤波器仍是因果稳定的。②数字滤波器的频率响应模仿模拟滤波器的频响特性。

2、双线性变换法的特点

双线性变换法的模拟频率与数字频率之间具有何种对应关系?与脉冲响应不变法相比,这种对应关系有何区别?双线性变换法具有哪些突出的优点和缺点?双线性变换法适用于设计何种类型的数字滤波器?


在这里插入图片描述
与脉冲响应不变法相比,这种对应关系是非线性的。
优点:模拟滤波器到数字滤波器的变换不会产生频域混叠。
缺点:频率轴的非线性映射可能导致变换后的频率特性失真。
适用范围:双线性变换法适合于设计具有分段恒定频率特性的滤波器(如传统的低通、高通、带通和带阻滤波器)

3、用不同方法将模拟滤波器转换成数字滤波器

举一个模拟低通滤波器的例子(H(s)一定),分别用脉冲响应不变法和双线性变换法(两种方法用相同的T,注意T选取的合理性)将其转换为数字滤波器,用MATLAB画出模拟滤波器、双线性变换法转换的数字滤波器、脉冲响应不变法转换的数字滤波器的幅频和相频响应特性曲线,比较频率特性的区别,总结脉冲响应不变法与双线性变换法各自的特点。如果改变T的大小,对所设计数字滤波器的特性会产生何种影响?


代码:

%%      T=0.0005s
T=0.0005;                           %T值为0.0005s
Fs=1/T;                             %采样频率为2000Hz
wp=2*pi*200;                        %技术指标
ws=2*pi*800;
Rp=2;
As=20;
%%      模拟滤波器
[N,wc]=buttord(wp,ws,Rp,As,'s')     %巴特沃斯模拟滤波器
[B,A]=butter(N,wc,'s')
k=0:511;                            %k是为了采样,把一段曲线化成几段折线表示
fk=0:1000/512:1000;                 %模拟频率分析范围[01000Hz],Fs=2000Hz
wk=2*pi*fk;                         %模拟角频率分析范围[02000πrad/s]
Hk=freqs(B,A,wk);                   %求解滤波器的频率响应
%%      数字滤波器
%%      双线性变换法
[Bz1,Az1]=bilinear(B,A,Fs);
Hz=freqz(Bz1,Az1,wk/Fs);
wz=fk*2*pi/Fs;                       %数字频率分析范围[0,π]

figure(1)
plot(wz/pi,abs(Hz));                 %wz除以π的意义是归一化数字频率
title('数字滤波器的幅频响应(双线性变换法T=0.0005s)');
axis([0 1 0 1.1]);
figure(2)
plot(wz/pi,angle(Hz));
title('数字滤波器的相频响应(双线性变换法T=0.0005s)');
axis([0 1 -3.5 0]);
%%      脉冲响应不变法
[Bz2,Az2]=impinvar(B,A,Fs);
Hz=freqz(Bz2,Az2,wk/Fs);
wz=fk*2*pi/Fs;                       %数字频率分析范围[0,π]

figure(3)
plot(wz/pi,abs(Hz));                 %wz除以π的意义是归一化数字频率
title('数字滤波器的幅频响应(脉冲响应不变法T=0.0005s)');
axis([0 1 0 1.1]);
figure(4)
plot(wz/pi,angle(Hz));
title('数字滤波器的相频响应(脉冲响应不变法T=0.0005s)');
axis([0 1 -3.5 0]);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%      T=0.00025s
T=0.00025;                         %T=0.00025s
Fs=1/T;                            %采样频率
wp=2*pi*200;                       %技术指标
ws=2*pi*800;
Rp=2;
As=20;
%%      模拟滤波器
[N,wc]=buttord(wp,ws,Rp,As,'s')   %巴特沃斯模拟滤波器
[B,A]=butter(N,wc,'s')
k=0:511;                            %k是为了采样,把一段曲线化成几段折线表示
fk=0:2000/512:2000;                 %模拟频率分析范围[02000Hz],Fs=4000Hz
wk=2*pi*fk;                         %模拟角频率分析范围[02000πrad/s]
Hk=freqs(B,A,wk);                   %求解滤波器的频率响应
%%      数字滤波器
%%      双线性变换法
[Bz1,Az1]=bilinear(B,A,Fs);
Hz=freqz(Bz1,Az1,wk/Fs);
wz=fk*2*pi/Fs;                       %数字频率分析范围[0,π]

figure(5)
plot(wz/pi,abs(Hz));                 %wz除以π的意义是归一化数字频率
title('数字滤波器的幅频响应(双线性变换法T=0.00025s)');
axis([0 1 0 1.1]);
figure(6)
plot(wz/pi,angle(Hz));
title('数字滤波器的相频响应(双线性变换法T=0.00025s)');
axis([0 1 -3.5 0]);
%%      脉冲响应不变法
[Bz2,Az2]=impinvar(B,A,Fs);
Hz=freqz(Bz2,Az2,wk/Fs);
wz=fk*2*pi/Fs;                       %数字频率分析范围[0,π]

figure(7)
plot(wz/pi,abs(Hz));                 %wz除以π的意义是归一化数字频率
title('数字滤波器的幅频响应(脉冲响应不变法T=0.00025s)');
axis([0 1 0 1.1]);
figure(8)
plot(wz/pi,angle(Hz));
title('数字滤波器的相频响应(脉冲响应不变法T=0.00025s)');
axis([0 1 -3.5 0]);

运行结果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
双线性变换法与脉冲响应不变法的区别:
幅频响应:对比图1图3,图5图7;脉冲响应不变法低频处到不了1,而双线性变换法可以;高频处比双线性变换法高。原因为脉冲响应不变法有频谱混叠。
相频响应:对比图2图4,图6图8,无明显区别。
不同T值(采样间隔)的区别:
幅频响应:对比图1图5,图3图7;采样间隔小的(采样频率高的)过渡带窄。可见提高采样率有利于改善滤波器特性。
相频响应:对比图2图6,图4图8;采样间隔小的(采样频率高的)相位在低频处下降得快。

4、双线性变换法的设计方法步骤

给定一个低通数字滤波器的技术指标(自定),利用MATLAB,选取两种不同的T值,基于双线性变换法设计数字滤波器(模拟原型滤波器采用巴特沃斯滤波器),分别画出模拟和数字滤波器的幅频特性曲线,总结双线性变换法设计数字滤波器的基本步骤,比较不同T值所设计得到的模拟滤波器和数字滤波器的区别,并分析其原因。


代码:

figure(1)
T=1;
Fs=1/T;
wpz=0.2;
wsz=0.3;
wp=2/T*tan(wpz*pi/2);
ws=2/T*tan(wsz*pi/2);
rp=1;
rs=15;
[N,wc]=buttord(wp,ws,rp,rs,'s');
[B,A]=butter(N,wc,'s');
[Bz,Az]=bilinear(B,A,Fs);
[Hk,w1]=freqs(B,A);
[Hz,w2]=freqz(Bz,Az);

subplot(1,2,1)
plot(w1,abs(Hk));
axis([0 2 0 1]);
grid on
title('模拟滤波器')

subplot(1,2,2)
plot(w2,abs(Hz));
axis([0 2 0 1]);
grid on
title('数字滤波器')

figure(2)
T=2;
Fs=1/T;
wpz=0.2;
wsz=0.3;
wp=2/T*tan(wpz*pi/2);
ws=2/T*tan(wsz*pi/2);
rp=1;
rs=15;
[N,wc]=buttord(wp,ws,rp,rs,'s');
[B,A]=butter(N,wc,'s');
[Bz,Az]=bilinear(B,A,Fs);
[Hk,w1]=freqs(B,A);
[Hz,w2]=freqz(Bz,Az);

subplot(1,2,1)
plot(w1,abs(Hk));
axis([0 2 0 1]);
grid on
title('模拟滤波器')

subplot(1,2,2)
plot(w2,abs(Hz));
axis([0 2 0 1]);
grid on
title('数字滤波器')

运行结果:
T=1时
在这里插入图片描述
T=2时
在这里插入图片描述
在这里插入图片描述
不同T值所得的数字滤波器的幅频响应相同。
不同T值所得的模拟滤波器的幅频响应不同,T越大,模拟滤波器的通带边界频率越低。

5、不同模拟原型滤波器用双线性变换法设计的差异

给定一个高通数字滤波器的技术指标(自定),利用MATLAB,分别采用不同的模拟原型滤波器(巴特沃斯、切比雪夫、椭圆),用双线性变换法设计数字滤波器,分别画出各模拟和数字滤波器的幅频特性曲线,比较设计结果的差异。


代码:

%%      技术指标
wpz=0.8*pi;     %通带截止频率(数字频率)
wsz=0.44*pi;    %阻带截止频率(数字频率)
rp=3;           %通带最大衰减
rs=15;          %阻带最小衰减

wp=tan(1/2*wpz);    %取T=2,将数字频率转换成模拟频率
ws=tan(1/2*wsz);


%%      巴特沃斯模拟
[N1,wc1]=buttord(wp,ws,rp,rs,'s');
[B0,A0]=butter(N1,wc1,'high','s');

figure(1)
fk=0:1/512:1;
wk=2*pi*fk;
Hk0=freqs(B0,A0,wk);
plot(fk,20*log10(abs(Hk0)));
grid on;
xlabel('频率(Hz)');
ylabel('幅度(dB)');
title('模拟巴特沃斯高通滤波器滤波器损耗函数曲线');
axis([0,1,-100,10]);

%%      巴特沃斯数字
[N2,wc2]=buttord(wpz/pi,wsz/pi,rp,rs);
[Bz0,Az0]=butter(N2,wc2,'high');

figure(2)
wk=0:pi/512:pi;
Hz0=freqz(Bz0,Az0,wk);
plot(wk/pi,20*log10(abs(Hz0)));
grid on;
xlabel('\omega/\pi');
ylabel('幅度(dB)');
title('数字巴特沃斯高通滤波器滤波器损耗函数曲线');
axis([0,1,-100,10]);

%%      切比雪夫模拟
[N3,wc3]=cheb1ord(wp,ws,rp,rs,'s');
[B1,A1]=cheby1(N3,rp,wp,'high','s');

figure(3)
fk=0:1/512:1;
wk=2*pi*fk;
Hk1=freqs(B1,A1,wk);
plot(fk,20*log10(abs(Hk1)));
grid on;
xlabel('频率(Hz)');
ylabel('幅度(dB)');
title('模拟切比雪夫高通滤波器滤波器损耗函数曲线');
axis([0,1,-100,10]);


%%      切比雪夫数字
[N4,wc4]=cheb1ord(wpz/pi,wsz/pi,rp,rs);
[Bz1,Az1]=cheby1(N4,rp,wpz/pi,'high');

figure(4)
wk=0:pi/512:pi;
Hz1=freqz(Bz1,Az1,wk);
plot(wk/pi,20*log10(abs(Hz1)));
grid on;
xlabel('\omega/\pi');
ylabel('幅度(dB)');
title('数字切比雪夫高通滤波器滤波器损耗函数曲线');
axis([0,1,-100,10]);


%%      椭圆模拟
[N5,wpo]=ellipord(wp,ws,rp,rs,'s');
[B2,A2]=ellip(N5,rp,rs,wpo,'high','s');

figure(5)
fk=0:1/512:1;
wk=2*pi*fk;
Hk2=freqs(B2,A2,wk);
plot(fk,20*log10(abs(Hk2)));
grid on;
xlabel('频率(Hz)');
ylabel('幅度(dB)');
title('模拟椭圆高通滤波器滤波器损耗函数曲线');
axis([0,1,-100,10]);


%%      椭圆数字
[N6,wpo1]=ellipord(wpz/pi,wsz/pi,rp,rs);
[Bz2,Az2]=ellip(N6,rp,rs,wpo1,'high');

figure(6)
wk=0:pi/512:pi;
Hz2=freqz(Bz2,Az2,wk);
plot(wk/pi,20*log10(abs(Hz2)));
grid on;
xlabel('\omega/\pi');
ylabel('幅度(dB)');
title('数字椭圆高通滤波器滤波器损耗函数曲线');
axis([0,1,-100,10]);

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
分析:
模拟滤波器普遍更“平坦”,数字滤波器普遍“不平坦”
巴特沃斯滤波器单调上升,但是通带有较大富余量,是一种“浪费”。
切比雪夫I型滤波器在通带处有等波纹特性。
椭圆滤波器在通带和阻带处均有等波纹特性。

三、反思总结

第三题分析T的影响时,相频响应处分析不到位
第五题分析不到位

  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

暗然而日章

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

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

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

打赏作者

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

抵扣说明:

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

余额充值