matlab部分分式法求z反变换代码
时间: 2023-06-20 19:07:24 浏览: 444
通过长除法计算Z逆变换:通过长除法计算Z逆变换。-matlab开发
5星 · 资源好评率100%
以下是MATLAB中使用部分分式法求Z反变换的代码示例:
```matlab
syms z;
% 传递函数
H = (z^2 + 2*z + 1) / (z^3 - z^2 + 2*z - 2);
% 部分分式分解
[r, p, k] = residue([1 2 1], [1 -1 2 -2]);
% 输出结果
disp('Residues:');
disp(r);
disp('Poles:');
disp(p);
disp('Constant:');
disp(k);
% 求解z反变换
syms n;
x = symsum((r(i) / (z - p(i))) * z^-n, i, 1, length(p)) + k * dirac(n);
pretty(x);
% 绘制z反变换结果
n = 0:30;
y = eval(x);
stem(n, y);
xlabel('n');
ylabel('x[n]');
title('z^{-1} Transform using Partial Fraction Expansion');
```
这段代码根据传递函数 `(z^2 + 2*z + 1) / (z^3 - z^2 + 2*z - 2)`,使用`residue()`函数进行部分分式分解,然后使用求和公式计算Z反变换。最后,使用`eval()`函数计算反变换结果,并使用`stem()`函数绘制图像。
阅读全文