DSP还没学到这里,先体验一把
IIR数字滤波器
IIR数字滤波器差分方程
%IIR数字滤波器差分方程%
clear;clc;
B=[1,-3,11,-27,18];
A=[16,12,2,-4,-1];
[SOS,G]=tf2sos(B,A)
IIR数字滤波器的级联型转换为直接型
%IIR数字滤波器的级联型转换为直接型%
clear;clc;
SOS=[1,-3,2,1,-0.25,0.125;1,0,9,1,1,0.5];
G=0.0625;
[B,A]=sos2tf(SOS,G)
IIR直接型与级联型比较
%IIR直接型与级联型比较%
clear;clc;
SOS=[1,-3,2,1,-0.25,0.125;1,0,9,1,1,0.5];
G=0.0625;
[B,A]=sos2tf(SOS,G);
n=0:19;x=ones(1,20);
SOS=[G,-3*G,2*G,1,-0.25,0.125;1,0,9,1,1,0.5];
y1=filter(B,A,x);
y2=sosfilt(SOS,x);
subplot(2,1,1)
stem(n,y1,'LineWidth',2);
xlabel('n');ylabel('y1(n)');grid on;
title('函数fliter求出的阶跃响应');axis([-1 21 -2 1.5]);
subplot(2,1,2)
stem(n,y2,"LineWidth",2);
xlabel('n');ylabel('y2(n)');grid on;
title('函数sosfilt求出的阶跃响应');axis([-1 21 -2 1.5]);
set(gcf,'color','w');
FIR数字滤波器
FIR数字滤波器的级联型实现
%FIR数字滤波器的级联型实现%
clear;clc;
B=[1,0,0,0,16.0625,0,0,0,1];
[SOS,G]=tf2sos(B,1)