Magnitude-Angle to Complex

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

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

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

  • Magnitude-Angle to Complex block

Описание

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

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

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

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

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

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

Эффект входных параметров вне области допустимого значения на CORDIC- Приближений

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

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

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

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

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

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

Порты

Вход

расширить все

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

Зависимости

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

Ограничения

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

  • Типы данных с фиксированной точкой поддерживаются только при установке значения Approximation method 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.

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

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

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

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

  • Когда вы задаете Input 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. Область значений возможных значений зависит от типа данных входа:

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

Зависимости

Чтобы включить этот параметр, установите 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, Jack E., The CORDIC Trigonometric Computing Technique (неопр.) (недоступная ссылка). IRE транзакции на электронных компьютерах EC-8 (1959); 330–334.

[2] Andraka, Ray «Обзор алгоритма CORDIC для компьютеров на основе FPGA». Материалы шестого Международного симпозиума ACM/SIGDA 1998 года по программируемым массивам ворот на местах. 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] Шелин, Чарльз У., «Calculator Приближения функций», Американский математический месяц 90, № 5 (1983): 317-325.

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

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

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