2026a

# angle


相位角

# 语法

theta = angle(z)

# 说明

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

# 示例

复数的幅值和相位

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

z = 2*exp(im*0.5)
z = 1.7551651237807455 + 0.958851077208406im
r = abs(z)
r = 2.0
theta = angle(z)
theta = 0.5
FFT 相位

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

using TyMath
using TyPlot
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 = collect((-ly/2:ly/2-1)/ly*fs)

stem(f, abs.(z))
xlabel("Frequency (Hz)")
ylabel("|y|")
grid("on")

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

tol = 1e-6
z[abs.(z) .< tol] .= 0

theta = angle.(z)

stem(f, theta/pi)
xlabel("Frequency (Hz)")
ylabel("Phase / π")
grid("on")
复数的模
y = angle(3 + 4im)
y = 0.9272952180016122

# 输入参数

z - 输入数组
标量 | 向量 | 矩阵 | 多维数组

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

数据类型: Int64 | Int32 | Int16 | Int128 | Float16 | Float32 | Float64 | UInt8 | UInt16 | UInt32 | UInt64

复数支持:

# 另请参阅

abs | abs2 | sign | complex