Magnitude-Angle to Complex

Преобразуйте величину и/или угловой сигнал фазы объединить сигнал

  • Библиотека:
  • Simulink / Математические операции

    HDL Coder / Операции Плавающей точки HDL

Описание

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

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

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

  • Два входных параметров равных размерностей

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

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

Эффект входа из области значений на приближениях CORDIC

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

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

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

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

Блокируйте использованиеЭффект входа из области значений
СимуляцияОшибка появляется.
Сгенерированный кодНеопределенное поведение происходит.
Режимы Accelerator

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

Порты

Входной параметр

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

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

Зависимости

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

Ограничения

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

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

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

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

  • [–2π, 2π) рад, для фиксированных точек со знаком

  • [0, 2π) рад, для фиксированных точек без знака

Для получения дополнительной информации смотрите Эффект Входа Из области значений на Приближениях CORDIC.

Зависимости

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

Ограничения

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

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

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

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

  • Когда вы устанавливаете Input на Magnitude, вы задаете величину во входном порту и угол на диалоговом окне.

  • Когда вы устанавливаете Input на Angle, вы задаете угол во входном порту и величину на диалоговом окне.

Зависимости

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

Типы данных: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | 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
Ввод: символьный вектор
Values:real-ценный скаляр, вектор или матрица
Значение по умолчанию: '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. Область значений возможных значений зависит от типа данных входа:

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

Зависимости

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

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

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

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

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

Зависимости

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

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

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

Задайте шаг расчета как значение кроме-1. Для получения дополнительной информации см. Настройку времени выборки.

Зависимости

Этот параметр не отображается, если он явным образом не установлен в значение кроме -1. Чтобы узнать больше, смотрите Блоки, для Которых Не Рекомендуется Шаг расчета.

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

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

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

Типы данных

double | single

Прямое сквозное соединение

yes

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

yes

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

yes

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

no

Больше о

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

Ссылки

[1] Volder, JE. “Тригонометрический вычислительный метод CORDIC”. Транзакции IRE на электронно-вычислительных машинах EC-8 (1959); 330–334.

[2] Andraka, R. “Обзор алгоритма CORDIC для основанных на FPGA компьютеров”. Продолжения 1998 шестых международных симпозиумов ACM/SIGDA по Программируемым пользователем вентильным матрицам. 22-24 февраля (1998): 191–200.

[3] Вальтер, J.S. “Объединенный Алгоритм для Элементарных функций”. Hewlett-Packard Company, Пало-Альто. Компьютерная Конференция по Соединению Spring (1971): 379–386. (из набора Компьютерного Исторического музея). www.computer.org/csdl/proceedings/afips/1971/5077/00/50770379.pdf

[4] Schelin, Чарльз В. “Приближение функций калькулятора”. Американская Mathematical Monthly 90, № 5 (1983): 317–325.

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

Генерация кода C/C++
Генерация кода C и C++ с помощью Simulink® Coder™.

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