脉冲响应不变法将模拟滤波器转换成为数字滤波器的套路

本文介绍了如何使用脉冲响应不变法将模拟滤波器转换成数字滤波器,详细阐述了该过程的三个步骤,并提供了MATLAB代码示例。通过拉普拉斯逆变换、脉冲响应采样和Z变换,实现与内置函数impinvar相同的效果。同时,展示了低通、高通、带通滤波器设计以及不同类型的滤波器(巴特沃斯、切比雪夫I型、切比雪夫II型、椭圆型)的MATLAB实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

已知一个模拟滤波器系统,要将此模拟滤波器系统转换成为数字滤波器,方法会有很多种,在Matlab中也有专门的函数(impinvar)来实现此功能,如果我们要自己编写算法来做这个过程的话可以考虑使用脉冲响应不变法来实现跟impinvar函数相同的效果。

1】对模拟滤波器进行拉普拉斯逆变换

理论依据是:对传输系统的单位冲击响应求拉普拉斯变换得到的结果就是传输系统的传输函数,因此对传输函数进行拉普拉斯逆变换就是传输系统的单位冲击响应。

2】对单位冲击响应进行采样*时间间隔T,得到等价的脉冲响应序列

理论依据&目的:使用 数字滤波器的响应序列 模仿 模拟滤波器的脉冲响应

3】对得到的数字滤波器脉冲响应序列进行Z变换,得到数字滤波器

理论依据:Z变换就是离散时间信号的拉普拉斯变换,相应目的见第一条

参考网络上脉冲时不变响应法设计IIR滤波器的matlab程序如下:

clear all; clc; close all;
 
bs=[1,1];as=[1,5,6];            % 系统分子分母系数向量
Fs=10; T=1/Fs;                  % 采样频率和采样间隔
[Ra,pa,ha]=residue(bs, as);        % 将模拟滤波器系数向量变为模拟极点和留数
pd=exp(pa*T);                    % 将模拟极点变为数字(z平面)极点pd
[bd,ad]=residuez(T*Ra, pd, ha);    % 用原留数Ra和数字极点pd求得数字滤波器系数
t=0:0.1:3;                      % 时间序列
ha=impulse(bs,as,t);            % 计算模拟系统的脉冲响应
hd=impz(bd,ad,31);              % 数字系统的脉冲响应
% 调用impinvar函数计算数字滤波器系数
[Bd,Ad]=impinvar(bs,as,Fs);
fprintf('bd=%5.4f   %5.4f   ad=%5.4f   %5.4f   %5.4f\n\n',bd,ad);
fprintf('Bd=%5.4f   %5.4f   Ad=%5.4f   %5.4f   %5.4f\n',Bd,Ad);
% 作图
plot(t,ha*T,'r','linewidth',3); hold on; grid on

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值