Документация Engee

angle

Фазовый угол.

Библиотека

EngeeDSP

Синтаксис

Вызов функции

  • theta = angle(z) — возвращает фазовый угол в интервале [−π, π] для каждого элемента комплексного массива z. Углы в theta таковы, что z = abs(z).*exp(i*theta).

Аргументы

Входные аргументы

# z — входные данные
скаляр | вектор | матрица | многомерный массив

Details

Входные данные, заданные как скаляр, вектор, матрица или многомерный массив. Если элементы z — неотрицательные вещественные числа, то angle возвращает 0. Если элементы z — отрицательные вещественные числа, то angle возвращает π.

Типы данных

Float32, Float64

Поддержка комплексных чисел

Да

Выходные аргументы

# theta — выходные фазовые углы
скаляр | вектор | матрица | многомерный массив

Details

Выходные углы, возвращаемые в виде скаляра, вектора, матрицы или многомерного массива. Углы в theta таковы, что z = abs(z).*exp(i*theta).

Примеры

Модуль и фаза комплексного числа

Details

Создадим комплексное число z и вычислим его модуль r и фазу theta.

import EngeeDSP.Functions: angle
import EngeeDSP.Functions: abs

z = 2 * exp(im * 0.5)
r = abs(z)
theta = angle(z)

println("z=",z)
println("r=",r)
println("theta=",theta)
z=1.7551651237807455 + 0.958851077208406im
r=2.0
theta=0.5

Фаза БПФ

Details

Создадим сигнал, состоящий из двух синусоид с частотами 15 Гц и 40 Гц. Первая синусоида имеет фазу −π/4, а вторая — π/2. Дискретизируем сигнал с частотой 100 Гц в течение одной секунды.

import EngeeDSP.Functions: angle, fft, fftshift
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;

plot(f, abs(z), xlabel="Frequency (Hz)", ylabel="|y|")

angle 1

Вычислим фазу преобразования Фурье, удалив значения преобразования малой амплитуды. Построим график зависимости фазы от частоты.

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

theta = angle(z)
plot(f, theta/pi, xlabel="Frequency (Hz)", ylabel="Phase / pi")

angle 2

Алгоритмы

Функция angle принимает комплексное число и использует функцию atan2 для вычисления угла между положительной осью и лучом, проведенным из начала координат в точку в плоскости .