MATLAB信号处理学习3-IIR滤波器设计

实例:已知模拟滤波器系数为bs=[1,1]和as=[1,5,6],通过求极点和留数,及脉冲响应不变的原理,将其转换成数字滤波器,并与impinvar函数得到的数字滤波器进行比较。

程序:


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;
plot(t,hd,'k');
legend('模拟滤波器脉冲响应','数字滤波器脉冲响应');
xlabel('时间/s'); ylabel('幅值/dB');
title('原模拟滤波器的脉冲响应与数字滤波器的脉冲响应比较')
set(gcf,'color','w')            

结果:

两种方法求出的滤波器系数完全一致。从图中可以看出模拟滤波器的脉冲响应与数字滤波器的脉冲响应重合在一起,这就反映了脉冲不变法的特点,展示了模拟系统和数字系统有相同的脉冲响应。

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值