exponenta event banner

Величина - угол к комплексу

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

  • Библиотека:
  • Операции с симуляцией/математикой

    Кодер HDL/Операции с плавающей точкой HDL

  • Magnitude-Angle to Complex block

Описание

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

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

Блок поддерживает следующие комбинации входных размеров при наличии двух входов блока:

  • Два входа одинаковых размеров

  • Один скалярный вход, а другой - n-мерный массив

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

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

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

  • Для знаковых типов с фиксированной точкой входной угол должен находиться в диапазоне [-2δ, 2λ) рад.

  • Для неподписанных типов с фиксированной точкой входной угол должен находиться в диапазоне [0, 2δ) рад.

В следующей таблице приводится сводная информация о том, что происходит для входа вне диапазона:

Использование блоковЭффект входа вне диапазона
Режимы моделированияПоявится сообщение об ошибке.
Сгенерированный кодВозникает неопределенное поведение.

Убедитесь, что при использовании аппроксимации CORDIC для блока «Величина-угол к комплексу» используется входной сигнал в диапазоне. Избегайте использования неопределенного поведения для созданных режимов кода или ускорителя.

Порты

Вход

развернуть все

Величина, заданная как действительный скаляр, вектор или матрица.

Зависимости

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

Ограничения

  • Если один вход имеет тип данных с плавающей запятой, другой вход должен использовать тот же тип данных. Например, оба сигнала должны быть double или single.

  • Типы данных с фиксированной точкой поддерживаются только при установке для метода аппроксимации значения CORDIC. Когда один вход имеет тип данных с фиксированной точкой, другой вход также должен иметь тип данных с фиксированной точкой.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point

Радианский фазовый угол, заданный как действительный скаляр, вектор или матрица. Для вычисления аппроксимации CORDIC входной угол должен быть между:

  • [-2δ, 2δ) рад, для знаковых типов с фиксированной точкой

  • [0, 2δ) рад, для неподписанных типов с фиксированной точкой

Дополнительные сведения см. в разделе Влияние входа вне диапазона на приближения CORDIC.

Зависимости

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

Ограничения

  • Если один вход имеет тип данных с плавающей запятой, другой вход должен использовать тот же тип данных. Например, оба сигнала должны быть double или single.

  • Типы данных с фиксированной точкой поддерживаются только при установке для метода аппроксимации значения CORDIC. Если один вход имеет тип данных с фиксированной точкой, другой вход также должен иметь тип данных с фиксированной точкой.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point

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

  • При установке для параметра «Ввод» значения Magnitude, вы указываете величину на входном порте и угол в диалоговом окне.

  • При установке для параметра «Ввод» значения Angle, вы указываете угол на входном порте и величину в диалоговом окне.

Зависимости

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

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point

Продукция

развернуть все

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

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

Типы данных: single | double | fixed point

Параметры

развернуть все

Укажите тип ввода: ввод величины, ввод угла или и то, и другое.

Программное использование

Параметр блока: Input
Текст: символьный вектор
Значения: 'Magnitude' | 'Angle' | 'Magnitude and angle'
По умолчанию: 'Magnitude and angle'

Постоянный фазовый угол выходного сигнала, в ред. Для вычисления аппроксимации CORDIC входной угол должен быть между:

  • [-2δ, 2δ) рад, для знаковых типов с фиксированной точкой

  • [0, 2δ) рад, для неподписанных типов с фиксированной точкой

Дополнительные сведения см. в разделе Влияние входа вне диапазона на приближения CORDIC.

Зависимости

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

Программное использование

Параметр блока: ConstantPart
Текст: символьный вектор
Значения: скаляр констант
По умолчанию: '0'

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

Зависимости

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

Программное использование

Параметр блока: ConstantPart
Текст: символьный вектор
Значения: действительный скаляр, вектор или матрица
По умолчанию: '0'

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

Метод аппроксимацииПоддерживаемые типы данныхКогда использовать этот метод
None (по умолчанию)

Плавающая точка

Вы хотите использовать алгоритм серии Тейлора по умолчанию.

CORDIC

Плавающая и фиксированная точки

Вы хотите быстрый, приблизительный расчет.

При использовании аппроксимации CORDIC выполните следующие инструкции для угла ввода:

  • Для знаковых типов с фиксированной точкой входной угол должен находиться в диапазоне [-2δ, 2λ) рад.

  • Для неподписанных типов с фиксированной точкой входной угол должен находиться в диапазоне [0, 2δ) рад.

Блок использует следующие правила распространения типа данных:

Тип данных входного значения величиныМетод аппроксимацииТип данных комплексного вывода

Плавающая точка

None или CORDIC

То же, что и на входе

Подпись, фиксированная точка

CORDIC

fixdt(1, WL + 2, FL)

где WL и FL - длина слова и длина дроби величины

Неподписанная, фиксированная точка

CORDIC

fixdt(1, WL + 3, FL)

где WL и FL - длина слова и длина дроби величины

Программное использование

Параметр блока: ApproximationMethod
Текст: символьный вектор
Значения: 'None' | 'CORDIC'
По умолчанию: 'None'

Количество итераций для выполнения алгоритма CORDIC. Диапазон возможных значений зависит от типа данных ввода:

Тип данных входных данных блоковЗначение, которое можно указать
Плавающая точкаПоложительное целое число
Фиксированная точкаПоложительное целое число, не превышающее длину слова на входе величины или длину слова на входе фазового угла, в зависимости от того, какое значение меньше

Зависимости

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

Программное использование

Параметр блока: NumberOfIterations
Текст: символьный вектор
Значения: положительное целое число, меньшее или равное длине слова ввода с фиксированной точкой
По умолчанию: '11'

Установите этот флажок, чтобы масштабировать действительную и мнимую части комплексного вывода на коэффициент (1/CORDIC gain). Это значение зависит от указанного количества итераций. По мере увеличения числа итераций значение приближается к 1,647.

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

Зависимости

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

Программное использование

Параметр блока: ScaleReciprocalGainFactor
Текст: символьный вектор
Значения: 'on' | 'off'
По умолчанию: 'on'

Укажите время выборки в качестве значения, отличного от -1. Дополнительные сведения см. в разделе Указание времени образца.

Зависимости

Этот параметр не отображается, если для него явно не задано значение, отличное от -1. Дополнительные сведения см. в разделе Блоки, для которых образец времени не рекомендуется.

Программное использование

Параметр блока: SampleTime
Текст: символьный вектор
Значения: скаляр или вектор
По умолчанию: '-1'

Характеристики блока

Типы данных

double | single

Прямой проход

yes

Многомерные сигналы

yes

Сигналы переменного размера

yes

Обнаружение пересечения нулей

no

Подробнее

развернуть все

Ссылки

[1] Вольдер, Джек Э., «Методика тригонометрических вычислений CORDIC». IRE Transactions on Electronic Computers EC-8 (1959); 330–334.

[2] Андрака, Рэй «Обзор алгоритма CORDIC для компьютеров на основе FPGA». Материалы шестого Международного симпозиума ACM/SIGDA 1998 года по полевым программируемым цепям. 22-24 февраля (1998): 191–200.

[3] Вальтер, J.S., «Единый алгоритм элементарных функций», Труды весенней совместной компьютерной конференции, 18-20 мая 1971: 379-386.

[4] Шелин, Чарльз В., «Вычислительная функция аппроксимация», Американский математический месяц 90, № 5 (1983): 317-325.

Расширенные возможности

Создание кода C/C + +
Создайте код C и C++ с помощью Simulink ® Coder™

.
Представлен до R2006a