Matlab 绘制实根和虚根
Matlab Plotting Real and Imaginary Roots
使用 plot_pz([poles],[zeros])
的代码
function plot_pz(b,a)
b_roots = roots(b);
a_roots = roots(a);
plot(b_roots,'x black');
plot(a_roots,'o blue');
axis equal;
我可以让我的 b_roots 正确绘图,但我的 a_roots 不断地在 1+0i 轴(或 x=1)上绘图。例如,Z 变换 H(z) = [[1 2 2],[0 1 .8]] 给出以下极点和零点(根据 matlab):
poles =
-1.0000 + 1.0000i
-1.0000 - 1.0000i
zeros =
-0.8000
应该是这样的
但我得到的是
我的零点在 -1+1i 和 -1-1i,我的极点似乎在 1-.8i,但应该在 -.8+0i
我确定我缺少的是一些简单的东西,但我无法弄清楚。我认为只有当我有一个极点或一个零时才会发生这种情况。
plot(X) 是否总是默认绘制 1+xi?
通过使用 real() 和 imag() 更清晰来修复
plot(real(b_roots),imag(b_roots),'o blue');
plot(real(a_roots),imag(a_roots),'x red');
使用 plot_pz([poles],[zeros])
的代码function plot_pz(b,a)
b_roots = roots(b);
a_roots = roots(a);
plot(b_roots,'x black');
plot(a_roots,'o blue');
axis equal;
我可以让我的 b_roots 正确绘图,但我的 a_roots 不断地在 1+0i 轴(或 x=1)上绘图。例如,Z 变换 H(z) = [[1 2 2],[0 1 .8]] 给出以下极点和零点(根据 matlab):
poles =
-1.0000 + 1.0000i
-1.0000 - 1.0000i
zeros =
-0.8000
应该是这样的
但我得到的是
我的零点在 -1+1i 和 -1-1i,我的极点似乎在 1-.8i,但应该在 -.8+0i
我确定我缺少的是一些简单的东西,但我无法弄清楚。我认为只有当我有一个极点或一个零时才会发生这种情况。
plot(X) 是否总是默认绘制 1+xi?
通过使用 real() 和 imag() 更清晰来修复
plot(real(b_roots),imag(b_roots),'o blue');
plot(real(a_roots),imag(a_roots),'x red');