在 Matlab 中绘制系统响应虚部作为 omega(w) 的函数
Plotting a system response imaginary part as a function of omega(w) in Matlab
我正在尝试绘制以下内容:
Im{X (e^jω)} = -a * sin(w) / (1 - 2*a*cos(w) + a^2) ,其中 -1 < a < 0。
我正在尝试将其绘制为 w 的函数。
但出于某种原因,我只得到沿 y 轴的所有点都为 0 的线,没有任何有意义的图形。
使用 Matlab 绘制此函数的最佳方法是什么?
另外,如果我的响应如下所示,如何正确绘制相位响应:
phase (X (ejω)) = tan^-1(-asin(w)/ 1 - acos(w)).
当我使用 angle() 函数时,matlab 会抛出 X 必须与 Y 的长度相同的错误。我想知道我是否必须使用 imag() 和 angle() 之类的函数,或者干脆不使用它.
目前我的代码如下:
a = -0.2;
N = 10;
w = -2*pi:2*pi/N:2*pi;
x_imag = - a.* sin(w)./(1 - 2 * a*cos(w) + a^2);
stem(w, imag(x_imag), 'filled')
x_phase = inv(tan(-a.*sin(w)./(1- a.*cos(w))))
stem(w, angle(x_phase), 'filled')
我哪里出错了?
您不需要在绘图中使用 imag
运算符。 x_imag
是虚部,并不复数。所以imag(x_imag)
returns0.改
stem(w, imag(x_imag), 'filled')
到
stem(w, x_imag, 'filled')
对于要使用 atan
作为反正切的相位。 inv
执行矩阵求逆。所以改变
x_phase = inv(tan(-a.*sin(w)./(1- a.*cos(w))))
到
x_phase = atan(-a.*sin(w)./(1- a.*cos(w))))
自
Im{X (e^jω)} = -a * sin(w) / (1 - 2*a*cos(w) + a^2) , where -1 < a < 0.
是等式的虚部,x_imag = - a.* sin(w)./(1 - 2 * a*cos(w) + a^2);
没有虚部,即等式中没有i
或j
。例如考虑复数:
c = 2 + 2i
% the imaginary part is 2 <- no i
因此,当您尝试绘制 x_imag
的 imag
时,您将得到全零,因为没有虚部。换句话说,只需按原样绘制 x_imag
:
stem(w, x_imag, 'filled')
要获得数字的相位,您需要 tan^-1,在 matlab 中是 atan(inv 是矩阵逆)。因此:
x_phase = atan(-a.*sin(w)./(1- a.*cos(w)))
stem(w, x_phase, 'filled')
我正在尝试绘制以下内容:
Im{X (e^jω)} = -a * sin(w) / (1 - 2*a*cos(w) + a^2) ,其中 -1 < a < 0。
我正在尝试将其绘制为 w 的函数。 但出于某种原因,我只得到沿 y 轴的所有点都为 0 的线,没有任何有意义的图形。
使用 Matlab 绘制此函数的最佳方法是什么?
另外,如果我的响应如下所示,如何正确绘制相位响应:
phase (X (ejω)) = tan^-1(-asin(w)/ 1 - acos(w)).
当我使用 angle() 函数时,matlab 会抛出 X 必须与 Y 的长度相同的错误。我想知道我是否必须使用 imag() 和 angle() 之类的函数,或者干脆不使用它. 目前我的代码如下:
a = -0.2;
N = 10;
w = -2*pi:2*pi/N:2*pi;
x_imag = - a.* sin(w)./(1 - 2 * a*cos(w) + a^2);
stem(w, imag(x_imag), 'filled')
x_phase = inv(tan(-a.*sin(w)./(1- a.*cos(w))))
stem(w, angle(x_phase), 'filled')
我哪里出错了?
您不需要在绘图中使用 imag
运算符。 x_imag
是虚部,并不复数。所以imag(x_imag)
returns0.改
stem(w, imag(x_imag), 'filled')
到
stem(w, x_imag, 'filled')
对于要使用 atan
作为反正切的相位。 inv
执行矩阵求逆。所以改变
x_phase = inv(tan(-a.*sin(w)./(1- a.*cos(w))))
到
x_phase = atan(-a.*sin(w)./(1- a.*cos(w))))
自
Im{X (e^jω)} = -a * sin(w) / (1 - 2*a*cos(w) + a^2) , where -1 < a < 0.
是等式的虚部,x_imag = - a.* sin(w)./(1 - 2 * a*cos(w) + a^2);
没有虚部,即等式中没有i
或j
。例如考虑复数:
c = 2 + 2i
% the imaginary part is 2 <- no i
因此,当您尝试绘制 x_imag
的 imag
时,您将得到全零,因为没有虚部。换句话说,只需按原样绘制 x_imag
:
stem(w, x_imag, 'filled')
要获得数字的相位,您需要 tan^-1,在 matlab 中是 atan(inv 是矩阵逆)。因此:
x_phase = atan(-a.*sin(w)./(1- a.*cos(w)))
stem(w, x_phase, 'filled')