Main Content

angle

相位角

说明

示例

theta = angle(z) 为复数数组 z 的每个元素返回区间 [-π,π] 中的相位角。theta 中的角度表示为 z = abs(z).*exp(i*theta)

示例

全部折叠

创建一个复数,并计算其幅值和相位。

z = 2*exp(i*0.5)
z = 1.7552 + 0.9589i
r = abs(z)
r = 2
theta = angle(z)
theta = 0.5000

创建一个由频率为 15 Hz 和 40 Hz 的两个正弦波组成的信号。第一个正弦波的相位为 -π/4,第二个正弦波的相位为 π/2。以 100 Hz 的频率对信号进行一秒钟的采样。

fs = 100;
t = 0:1/fs:1-1/fs;
x = cos(2*pi*15*t - pi/4) - sin(2*pi*40*t);

计算信号的傅里叶变换。将变换幅值绘制为频率函数。

y = fft(x);
z = fftshift(y);

ly = length(y);
f = (-ly/2:ly/2-1)/ly*fs;

stem(f,abs(z))
xlabel 'Frequency (Hz)'
ylabel '|y|'
grid

Figure contains an axes object. The axes object with xlabel Frequency (Hz), ylabel |y| contains an object of type stem.

计算变换的相位,删除小幅值变换值。将相位绘制为频率函数。

tol = 1e-6;
z(abs(z) < tol) = 0;

theta = angle(z);

stem(f,theta/pi)
xlabel 'Frequency (Hz)'
ylabel 'Phase / \pi'
grid

Figure contains an axes object. The axes object with xlabel Frequency (Hz), ylabel Phase / blank pi contains an object of type stem.

输入参数

全部折叠

输入数组,指定为标量、向量、矩阵或多维数组。如果 z 的元素是非负实数,则 angle 返回 0。如果 z 的元素是负实数,则 angle 返回 π。

数据类型: double | single
复数支持:

算法

angle 函数采用复数 z = x + iy 并使用 atan2 函数计算 xy 平面上在 x 轴正方向与从原点到点 (x,y) 的射线之间形成的角度。

扩展功能

C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。

GPU 代码生成
使用 GPU Coder™ 为 NVIDIA® GPU 生成 CUDA® 代码。

版本历史记录

在 R2006a 之前推出

另请参阅

| |