matlab filtic 函数应用 filter 解差分方程 dft 函数
一、 解差分方程
说明都在代码注释里面了
%这里要利用filtic函数 为滤波器的直接II型实现选择初始条件
%求解查分方程 y(n) - 0.4y(n-1) - 0.45y(n-2) = 0.45x(n) +0.4x(n-1) - x(n-2)
%y(-1) = 0 y(-2) = 1 x(-1) = 1 x(-2) = 2
%x(n) = 0.8 ^u(n) 状态方程H(z) = (0.45 + 0.4z^-1 - z^-2)/(1- 0.4z^-1-0.45z^-2)
% x 为滤波前序列 y 为输出 序列
% 总结一下 首先把num 和den 写出来
num = [ 0.45 0.4 -1];
den = [1 -0.4 -0.45]
% 其次把初始条件写来
x0 = [1 2] ;
y0= [0 1];
N = 50 ;
n = [1 :N-1]';
x = 0.8.^n;
%生成初始条件
Zi = filtic(num, den , y0 , x0);
[y , Zf] = filter(num , den ,x, Zi);
plot(n , x ,'R-', n, y, 'b--');
xlabel('n'); ylabel('(n)--y(n)');
legend('Input x' , 'Output y', 1);
grid;运行结果: