filtic函数详解(附3个实例)
filtic函数
目的是为了求得初始条件
Z = filtic( B, A, Y, X )
其中输入X、输出Y
B和A分别是x和y系统的系数
Z = filtic( B, A, Y )
表示在过去X=0
举3个例子
例1
求y(n) + 1.12y(n-1) = 0.1x(n) + 0.2x(n-1)的零输入响应,初始条件y(-1)=1
clc;clear all;close all;B = [0.1, 0.2]; % Numerator CoefficientsA = [1, 1.12]; % Denominator CoefficientsY = [1]; % Initial conditions for outputxic = filtic(B,A,Y) % Finding initial conditions for the systemyzi = filter(B,A,zeros(1,20),xic) % Zero Input responsestem(yzi)
例2
求y(n)=0.6y(n-1)-0.08y(n-2) + x(n)的单位脉冲响应unit impulse response和单位阶跃响应,初始条件y(-2)=y(-1)=0
这是高西全数字信号处理第三版的P19题目,原题错误地没有给初始条件
clc;clear all;close all;A=[1,-0.6,0.08];B=[1];Y=[0,0];xic=filtic(B,A,Y);yni=filter(B,A,[1,zeros(1,19)],xic);n1=0:length(yni)-1;subplot(2,1,1);stem(n1,yni,'.');title('unit impulse response');xlabel('n1');ylabel('yni');yns=filter(B,A,ones(1,20),xic);n2=0:length(yns)-1;subplot(2,1,2);stem(n2,yns,'.');title('unit step response');xlabel('n2');ylabel('yns');
例3
求y(n)=0.7y(n-1)-0.1y(n-2) + 2x(n) - x(n-2)的单位脉冲响应和单位阶跃响应,初始条件y(-2)=y(-1)=0
同样是高西全数字信号处理第三版的P19题目,也没有给初始条件
clc;clear all;close all;A=[1,-0.7,0.1];B=[2,0,-1];Y=[0,0];xic=filtic(B,A,Y);yni=filter(B,A,[1,zeros(1,19)],xic);n1=0:length(yni)-1;subplot(2,1,1);stem(n1,yni,'.');title('unit impulse response');xlabel('n1');ylabel('yni');yns=filter(B,A,ones(1,20),xic);n2=0:length(yns)-1;subplot(2,1,2);stem(n2,yns,'.');title('unit step response');xlabel('n2');ylabel('yns');