脉冲响应不变法c语言程序设计,基于脉冲响应不变法的dsp设计专业文件.doc

实验五 利用脉冲响应不变法设计IIR数字滤波器

实验目的

1.掌握利用脉冲响应不变法设计IIR数字滤波器的原理及具体方法。

2.加深理解数字滤波器和模拟滤波器之间的技术指标转化。

3.掌握脉冲响应不变法设计IIR数字滤波器的优缺点及适用范围。

实验设备与环境

计算机、MATLAB软件环境。

实验基础理论

1.基本原理

从时域响应出发,使数字滤波器的单位脉冲响应模仿模拟滤波器的单位冲击响应等于的取样值。

2.变换方法

(1)将 进行部分分式展开

(2)对进行拉式反变换

(3)对时域采样得到

(4)对进行Z变换

3.设计步骤

确定数字滤波器性能指标

将数字滤波器频率指标转换成相应的模拟滤波器频率指标

根据指标设计模拟滤波器将展成部分分式形式

把模拟极点转换成数字极点,得到数字滤波器

可见至间的变换关系为

在MATLAB中有两种方法可以实现上述变换。

方法1:利用residue函数和residuez函数实现脉冲响应不变法,这两个函数的使用方法如下:

[r,p,k]=residue(b,a)

[b,a]=residue(r,p,k)

实现多项式形式

和部分分式形式

之间的转换。

[r,p,k]=residuez(b,a)

[b,a]=residuez(r,p,k)

实现多项式形式

和部分分式形式

之间的转换。

方法2:MATLAB提供了impinvar函数采用脉冲响应不变法实现模拟滤波器到数字滤波器的变换,其使用方法如下:

[bz,az]=impinvar(b,a,fs)采用脉冲响应不变法将模拟滤波器系统函数的系数向量b和a转换成为数字滤波器系统函数的系统向量bz和az,fs为采样率。

[bz,az]=impinvar(b,a)采样频率默认为1的情况向下,采用脉冲响应不变法将模拟滤波器变换为数字滤波器。

实验内容

1.设采样频率,采用脉冲响应不变法设计一个三阶巴特沃斯数字低通滤波器,其3dB截止频率。

实验代码与实验结果:

N=3;

fs=4000;

fc=1000;

Wc=0.25*pi;

[b,a]=butter(N,Wc,'s');

[bz,az]=impinvar(b,a);

w=[0:500]*pi/500;

[H,w]=freqz(bz,az);

subplot 221;

plot(w/pi,abs(H));

xlabel('\omega(\pi)');

ylabel('|H(e^j^\omega)|(dB)');

grid on;

subplot 222;

plot(w/pi,20*log10(abs(H)));

xlabel('\omega(\pi)');

ylabel('|H(e^j^\omega)|(dB)');

grid on;

subplot 223;

plot(w/pi,angle(H)/pi);

xlabel('\omega(\pi)');

ylabel('|H(e^j^\omega)|');

grid on;

subplot 224;

grd=grpdelay(bz,az,w);

plot(w/pi,grd);

xlabel('\omega(\pi)');

ylabel('|H(e^j^\omega)|');

grid on;

2.设采样频率,设计数字低通滤波器,满足如下指标

通带截止频率:,通带波动:

阻带截止频率:,阻带衰减:

要求分别采用巴特沃斯、切比雪夫I型、切比雪夫II型和椭圆模拟原型滤波器及脉冲响应不变法进行设计。结合实验结果,分别讨论采用上述方法设计的数字滤波器是否都能满足给定指标要求,分析脉冲响应不变法设计IIR数字滤波器的优缺点及适用范围。

实验代码与实验结果:

(1)巴特沃斯

fs=10000;

fp=1000;

fst=1500;

Wp=0.1*pi;

Ws=0.15*pi;

Rp=1;

As=15;

N=ceil((log10((10^(Rp/10)-1)/(10^(As/10)-1)))/(2*log10(Wp/Ws)));

Wc=Wp/((10^(Rp/10)-1)^(1/(2*N)));

[b,a]=butter(N,Wc,'s');

[bz,az]=impinvar(b,a);

w=[0:500]*pi/500;

[H,w]=freqz(bz,az);

subplot 221;

plot(w/pi,abs(H));

xlabel('\omega(\pi)');

ylabel('|H(e^j^\omega)|(dB)');

grid on;

subplot 222;

plot(w/pi,20*log10(abs(H)));

xlabel('\omega(\pi)');

ylabel('|H(e

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值