IIR 数字滤波器全极点格型的MATLAB实现

2022-07-20 14:24:31 浏览数 (1)

一、实验目的 1. 掌握IIR 数字滤波器全极点格型的表达方式特点及信号流图。 2. 掌握IIR 数字滤波器全极点格型的基本特点并根据给定的传递函数形式正确选择是否 采用全极点格型。 3. 掌握全极点格型软件实现的编程方法。 二、实验原理 IIR 滤波器的一种格型结构是局限为全极点的系统函数。它可以有FIR 滤波器的格型结 构演变而来。设一全极点系统函数给出为:

 求它的格型结构,并画出它的单位脉冲响应和单位阶跃响应。 参考流程图

 四.实验报告要求: 1.简述实验目的及原理。 2.给出数字滤波器全极点格型的结果。 3.写出实验程序,并能了解掌握格型图。

代码语言:javascript复制
clc;clear all;close all;
b=[2,13/12,5/4,2/3];a=[1];
n=0:63;
figure;
h=impz(b,a,n);
u=dstep(b,a,n);
subplot(2,1,1),stem(n,h,'.'); title('直接型单位冲激响应') subplot(2,1,2),stem(n,u,'.'); title('直接型单位阶跃响应')

figure;
h0=[n==0]; u0=[n>=0];
y=dir2latc(b); h1=latcfilt(y,h0); u1=latcfilt(y,u0);
subplot(2,1,1),stem(n,h1,'.'); title('全极点格型单位冲击响应') subplot(2,1,2),stem(n,u1,'.'); 
title('全极点格型单位阶跃响应')

子函数:
function [K]=dir2latc(b)
% FIR direct form to All-Zero Lattic form Conversation
% [K]=dir2latc(b)
% K=Lattic filter coefficients (reflection coefficients)
% b=FIR direct form coefficients(impulse response)
M=length(b);K=zeros(1,M);b1=b(1); if b1==0
error('b(1) is equal to zero')
end
K(1)=b1;A=b/b1;
for m=M:-1:2
K(m)=A(m);J=fliplr(A);
A=(A-K(m)*J)/(1-K(m)*K(m));A=A(1:m-1);
end

0 人点赞