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

Magnitude-Angle to Complex

Преобразование модуля и/или фазового угла сигнала в комплексный сигнал.

magnitude angle to complex

Описание

Поддерживаемые операции

Блок Magnitude-Angle to Complex преобразует входные сигналы модуля и фазового угла в комплексное выходное значение. Угол на входе должен быть задан в радианах.

При наличии двух входных портов блок поддерживает любые комбинации размерностей, которые удовлетворяют возможностям бродкаста.

Если на входе блока массив, то на выходе будет массив комплексных сигналов. Элементы входного вектора модулей соответствуют модулям комплексных выходных элементов. Аналогично, элементы входного вектора углов соответствуют углам комплексных выходных элементов. Если один из входных сигналов является скаляром, то он соответствует компоненте (модулю или углу) всех комплексных выходных сигналов.

Влияние выхода за пределы диапазона на аппроксимацию CORDIC

Если используется метод аппроксимации CORDIC [1], то на вход блока для фазового угла накладываются следующие ограничения:

  • Входной угол должен лежать в диапазоне .

Порты

Вход

# |u| — модуль
скаляр | вектор | матрица | N-мерный массив

Details

Модуль в виде вещественного скаляра, вектора, матрицы или N-мерного массива.

Зависимости

Чтобы использовать этот порт, установите для параметра Input значение Magnitude and angle или Magnitude.

Ограничения

Если один из входов имеет тип данных с плавающей точкой, другой вход должен использовать тот же тип данных.

Типы данных

Float32, Float64

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

Нет

# ∠u — фазовый угол
скаляр | вектор | матрица | N-мерный массив

Details

Фазовый угол в радианах, заданный в виде вещественного скаляра, вектора, матрицы или N-мерного массива. Если для вычислений используется метод аппроксимации CORDIC, то входной угол должен лежать в диапазоне .

Зависимости

Чтобы использовать этот порт, установите для параметра Input значение Magnitude and angle или Angle.

Ограничения

Если один из входов имеет тип данных с плавающей точкой, другой вход должен использовать тот же тип данных.

Типы данных

Float32, Float64

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

Нет

Выход

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

Details

Комплексный сигнал, сформированный из заданных значений модуля и фазового угла.

Если вход блока — массив, то выход — массив комплексных сигналов. Элементы входного вектора модулей соответствуют модулям комплексных выходных элементов. Аналогично, элементы входного вектора угла соответствуют углам комплексных выходных элементов. Если один из входных сигналов является скаляром, то он соответствует компоненте (модулю или углу) всех комплексных выходных сигналов.

Типы данных

Float32, Float64

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

Да

Параметры

Main

# Input — тип входного порта
Magnitude | Angle | Magnitude and angle

Details

Укажите, какие входные данные используются:

  • Magnitude — модуль.

  • Angle — угол.

  • Magnitude and angle — модуль и угол.

Значение по умолчанию

Magnitude and angle

Имя для программного использования

Input

Настраиваемый

Нет

# Approximation method — метод аппроксимации
None | CORDIC

Details

Укажите метод аппроксимации для вычисления выходных данных.

Метод аппроксимации Когда использовать этот метод

None (по умолчанию)

Если используется алгоритм ряда Тейлора (по умолчанию).

CORDIC

Если нужен быстрый и приблизительный расчет.

Значение по умолчанию

None

Имя для программного использования

ApproximationMethod

Настраиваемый

Нет

# Magnitude — модуль выходного сигнала

Details

Постоянный модуль выходного сигнала, заданный в виде вещественного скаляра, вектора, матрицы или N-мерного массива.

Зависимости

Чтобы использовать этот параметр, установите для параметра Input значение Angle.

Значение по умолчанию

0

Имя для программного использования

ConstantPartMagnitude

Настраиваемый

Нет

# Angle — фазовый угол входного сигнала

Details

Фазовый угол в радианах, заданный в виде вещественного скаляра, вектора, матрицы или N-мерного массива. Если для вычислений используется метод аппроксимации CORDIC, то входной угол должен лежать в диапазоне .

Зависимости

Чтобы использовать этот параметр, установите для параметра Input значение Magnitude.

Значение по умолчанию

0

Имя для программного использования

ConstantPartAngle

Настраиваемый

Нет

# Number of iterations — число итераций для CORDIC алгоритма

Details

Число итераций для выполнения алгоритма CORDIC в виде целого положительного числа.

Зависимости

Чтобы использовать этот параметр, установите для параметра Approximation method значение CORDIC.

Значение по умолчанию

11

Имя для программного использования

NumberOfIterations

Настраиваемый

Нет

# Scale output by reciprocal of gain factor — опция масштабирования действительных и мнимых частей комплексного вывода

Details

Установите этот флажок, чтобы масштабировать действительную и мнимую части комплексного выходного сигнала на коэффициент . Это значение зависит от количества заданных итераций. При увеличении числа итераций значение приближается к 1.647.

Этот флажок установлен по умолчанию, что приводит к более точному в числовом отношении результату для комплексного вывода . Однако масштабирование вывода добавляет две дополнительные операции умножения, одну для и одну для .

Зависимости

Чтобы использовать этот параметр, установите для параметра Approximation method значение CORDIC.

Значение по умолчанию

true (включено)

Имя для программного использования

ScaleReciprocalGainFactor

Настраиваемый

Нет

Подробнее

CORDIC

CORDIC — это аббревиатура от COordinate Rotation DIgital Computer. Алгоритм CORDIC, основанный на повороте Гивенса, является одним из наиболее аппаратно эффективных алгоритмов, поскольку он требует только итеративных операций сдвига-добавления (см. Ссылки). Алгоритм CORDIC устраняет необходимость в явных множителях. С помощью CORDIC можно вычислять различные функции, такие как синус, косинус, арксинус, арккосинус, арктангенс и модуль вектора. Также этот алгоритм можно использовать для деления, квадратного корня, гиперболических и логарифмических функций.

Ссылки

  1. Volder, Jack E., “The CORDIC Trigonometric Computing Technique.” IRE Transactions on Electronic Computers EC-8 (1959); 330–334.

  2. Andraka, Ray “A Survey of CORDIC Algorithm for FPGA Based Computers.” Proceedings of the 1998 ACM/SIGDA Sixth International Symposium on Field Programmable Gate Arrays. Feb. 22–24 (1998): 191–200.

  3. Walther, J.S., “A Unified Algorithm for Elementary Functions,” Proceedings of the Spring Joint Computer Conference, May 18-20, 1971: 379–386.

  4. Schelin, Charles W., “Calculator Function Approximation,” The American Mathematical Monthly 90, no. 5 (1983): 317–325.