matlab求解差分方程程序
%差分方程为:
%y(n)-2y(n-1)+3y(n-2)=4u(n)-5u(n-1)+6u(n-2)-7u(n-3)
%初始条件:x(-1)=1,x(-2)=-1,y(-1)=-1,y(-2)=1,求系统输出y(n)
clear all;
close all;
clc;
b=[4,-5,6,-7];
a=[1,-2,3];
x0=[1,-1,0];
y0=[-1,1];
xic=filtic(b,a,y0,x0)%filtic函数用于为filter函数选择初始条件
bxplus=1;
axplus=[1,-1];
ayplus=conv(a,axplus)%计算多项式乘积的系数
byplus=conv(b,bxplus)+conv(xic,axplus)
[R,P,K]=residuez(byplus,ayplus)%留数法求解z变换.R为留数,P为极点,K为直接项系数,b-分子,a-分母
Mp=abs(P)
Ap=angle(P)*180/pi
N=100;
n=0:N-1;
xn=ones(1,N);
yn=filter(b,a,xn,xic);
plot(n,yn)
1