1

我在绘制传递函数的 3D 图时遇到问题。在matlab中我试过这个:

 [T,w] = meshgrid(1:1:32,1:1:100);
sys2=20*log((1-w.*(T./2)./w.*T).*(((2.56.*(w.^2)+1.6.*w+1)./(0.0008.*(w.^6)+0.0124.* (w.^5)+0.173.*(w.^4)+(w.^3)))./1+(((2.56.*(w.^2)+1.6.*w+1)./(0.0008.*(w.^6)+0.0124.*(w.^5)+0.173.*(w.^4)+(w.^3))))));
 surf(T,w,sys2);

但我得到这个错误:

  ??? Error using ==> surf at 78
  X, Y, Z, and C cannot be complex.

请问有什么问题吗?或者谁能​​告诉我如何在 Mathcad 中绘制它?谢谢你。

4

1 回答 1

2

您不能绘制一个复数与两个自变量的关系——您需要四个轴。

你可以做的是:

  1. 使用两个单独的图形(或同一图形中的两个子图)来绘制实部和虚部。在 Matlab 中,

    surf(T,w,real(sys2));
    figure %// create new figure for the other graph
    surf(T,w,imag(sys2));
    
  2. 或者,绘制绝对值和相位:

    surf(T,w,abs(sys2));
    figure %// create new figure for the other graph
    surf(T,w,angle(sys2));
    
  3. 一个更奇特的可能性是在同一张图中使用z轴表示绝对值和颜色表示相位:

    surf(T,w,abs(sys2),angle(sys2)); %// fourth argument of surf specifies colour
    
于 2013-11-27T12:04:18.773 回答