IIR数字滤波器设计---双线性变换法

实验目的

本实验结合理论教材IIR数字滤波器设计中有关模拟滤波器的数字化的教学内容, 学习和学握将IIR模拟滤波器变换成IIR数字滤波器的基本原理和实现步骤, 学习MATLAB中将模拟滤波器数字化设计IIR数字滤波器的相关函数, 掌握使用MATLAB设计IIR数字滤波器的过程与方法。

所使用的主要函数

impinvar:冲激响应变换法函数

bilinear:双线性变换法函数

buttord:数字/模拟巴特沃斯滤波器阶数选择函数

buttap:创巴特沃斯低通模拟滤波器函数

butter:设计N阶巴特沃斯数字滤波器函数

cheblap:N阶I型切比雪夫滤波器

cheb2ap:N阶II型切比雪夫滤波器

ellipap:N阶椭圆滤波器的零点向量

 实验题目

实验代码

clear;clc;close all
fc=1000;
ap=1;as=30;fp=200;fs=400;
wp=2*pi*fp/fc;
ws=2*pi*fs/fc;
 
Wanp=wp*fc;
Wans=ws*fc;
[N,Wanc]=buttord(Wanp,Wans,ap,as,'s');
[b,a]=butter(N,Wanc,'s');
[B1,A1]=impinvar(b,a,fc);
[H1,w]=freqz(B1,A1,'whole');
subplot(2,1,1);
plot(w/pi,20*log10(abs(H1)));grid on;
ylabel('H1幅值dB');xlabel('w/\pi');
title('冲激响应不变法设计的数字低通IIR滤波器');
hold on;
w1=[wp ws];
h1=freqz(B1,A1,w1);
scatter(w1/pi,20*log10(abs(h1)));
 
anp=2*fc*tan(wp/2);
ans=2*fc*tan(ws/2);
[N,anc]=buttord(anp,ans,ap,as,'s');
[b,a]=butter(N,anc,'s');
[B2,A2]=bilinear(b,a,fc);
[H2,w]=freqz(B2,A2,'whole');
subplot(2,1,2);
plot(w/pi,20*log10(abs(H2)));grid on;%f=w*fc/2/pi
ylabel('H1幅值dB');xlabel('w/\pi');
title('双线性变换法设计的数字低通IIR滤波器');
hold on;
w2=[wp ws];
h2=freqz(B2,A2,w2);
scatter(w2/pi,20*log10(abs(h2)));

冲激响应不变法

优点:

1.模拟频率到数字频率的转换是线性的。

2.数字滤波器单位脉冲响应的数字表示近似原型的模拟滤波器单位脉冲响应,因此时域特性逼近好 。

缺点:会产生频谱混叠现象,只适合带限滤波器(比如说低通滤波器和带通滤波器)。

双线性变换法

优点:克服多值映射的关系,可以消除频率的混叠。

缺点:模拟频率到数字频率的转换是非线性的,在高频处有较大的失真。

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值