Trigonometric Function

Заданная тригонометрическая функция на входе

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

    HDL Coder / Математические операции

Описание

Блок Trigonometric Function выполняет общие тригонометрические функции и выводит результат в рад.

Поддерживаемые функции

Можно выбрать одну из этих функций из списка параметров Function.

ФункцияОписаниеМатематическое выражение MATLAB® Equivalent
sin

Синус входа

sin (u)

sin
cos

Косинус входа

because(u)

cos
tan

Касательная входа

tan (u)

tan
asin

Обратный синус входа

asin (u)

asin
acos

Обратный косинус входа

acos (u)

acos
atan

Обратная касательная входа

atan (u)

atan
atan2

Обратная касательная с четырьмя квадрантами входа

atan2 (u)

atan2
sinh

Гиперболический синус входа

sinh (u)

sinh
cosh

Гиперболический косинус входа

дубинка (u)

cosh
tanh

Гиперболическая касательная входа

tanh (u)

tanh
asinh

Обратный гиперболический синус входа

asinh (u)

asinh
acosh

Обратный гиперболический косинус входа

acosh (u)

acosh
atanh

Гиперболический арктангенс входа

atanh (u)

atanh
sincos

Синус входа; косинус входа

cos + jsin

Комплексная экпонента входа

Метод приближения CORDIC

Если вы используете метод приближения CORDIC (см. Больше О), вход блока имеет некоторые дальнейшие требования.

Когда вы устанавливаете Function на sinпотому что, sincos, или cos + jsin, и набор Approximation method к CORDIC, блок имеет эти ограничения:

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

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

Когда вы устанавливаете Function на atan2 и Approximation method к CORDIC, блок имеет эти ограничения:

  • Входные параметры должны быть одного размера, или по крайней мере одно значение должно быть скалярным значением.

  • Оба входных параметров должны иметь совпадающий тип данных.

  • Когда вы используете подписанные фиксированные точки, размером слова должен быть 126 или меньше.

  • Когда вы используете фиксированные точки без знака, размером слова должен быть 125 или меньше.

Эта таблица суммирует то, что происходит для недопустимого входа.

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

Порты

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

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

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

ФункцииТипы входных данных
  • sin

  • cos

  • sincos

  • cos + jsin

  • atan2

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

  • Фиксированная точка (только, когда Approximation method является CORDIC)

  • tan

  • asin

  • acos

  • atan

  • sinh

  • cosh

  • tanh

  • asinh

  • acosh

  • atanh

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

Зависимости

  • Когда вы устанавливаете Function на atan2, блок показывает два входных порта. Первым входом (Port_1) является y - ось или мнимая часть аргумента функции. Вторым входом (Port_2) является x - ось или действительная часть аргумента функции.

  • Можно использовать входные сигналы с плавающей точкой, когда вы устанавливаете Approximation method на None или CORDIC. Однако тип выходных данных блока зависит, на каком из этих опций метода приближения вы выбираете.

    Тип входных данныхМетод приближенияТип выходных данных

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

    None

    Зависит от вашего выбора для Output signal type. Опциями является auto (совпадающий тип данных, как введено), real, или complex.

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

    CORDIC

    То же самое, как введено. Output signal type не доступен, когда вы используете метод приближения CORDIC, чтобы вычислить блок выход.

Для приближений CORDIC:

  • Введите должно быть действительным для sinпотому что, sincos, cos + jsin, и atan2 функции.

  • Выход действителен для sinпотому что, sincos, и atan2 функции.

  • Выход является комплексным для cos + jsin функция.

Ограничения

Комплексные входные сигналы поддерживаются для всех функций в этом блоке, кроме atan2.

Можно использовать входные сигналы фиксированной точки только, когда Approximation method установлен в CORDIC. Приближение CORDIC доступно для sinпотому что, sincos, cos + jsin, и atan2 функции. Для atan2 функция, отношение между типами входных и выходных данных зависит также от того, подписывается ли вход фиксированной точки или без знака.

Тип входных данныхФункцияТип выходных данных

Фиксированная точка, подписанная или без знака

sinпотому что, sincos, и cos + jsin

fixdt(1, WL, WL - 2) где WL входной размер слова

Эта фиксированная точка обеспечивает лучшую точность для алгоритма CORDIC.

Фиксированная точка, подписанная

atan2

fixdt(1, WL, WL – 3)

Фиксированная точка, без знака

atan2

fixdt(1, WL, WL – 2)

Когда вы устанавливаете Function на sinпотому что, sincos, или cos + jsin, и набор Approximation method к CORDIC, блок имеет эти ограничения:

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

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

Когда вы устанавливаете Function на atan2 и Approximation method к CORDIC, блок имеет эти ограничения:

  • Входные параметры должны быть одного размера, или по крайней мере одно значение должно быть скалярным значением.

  • Оба входных параметров должны иметь совпадающий тип данных.

  • Когда вы используете подписанные фиксированные точки, размером слова должен быть 126 или меньше.

  • Когда вы используете фиксированные точки без знака, размером слова должен быть 125 или меньше.

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

Введите x - ось или действительная часть аргумента функции для atan2. Когда вы устанавливаете Function на atan2, блок показывает два входных порта. Первым входом (Port_1) является y - ось или мнимая часть аргумента функции. Вторым входом (Port_2) является x - ось или действительная часть аргумента функции. (См. Местоположение порта После Вращения или Зеркального отражения для описания порядка порта для различных ориентаций блока.)

Зависимости

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

Ограничения

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

  • Когда вы устанавливаете Function на atan2 и Approximation method к CORDIC:

    • Входные параметры должны быть одного размера, или по крайней мере одно значение должно быть скалярным значением.

    • Оба входных параметров должны иметь совпадающий тип данных.

    • Когда вы используете подписанные фиксированные точки, размером слова должен быть 126 или меньше.

    • Когда вы используете фиксированные точки без знака, размером слова должен быть 125 или меньше.

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

Вывод

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

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

  • Скалярные операции

  • Поэлементные векторные и операции над матрицей

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

Синус входного сигнала, в рад.

Зависимости

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

Ограничения

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

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

Косинус входного сигнала, в рад.

Зависимости

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

Ограничения

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

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

Параметры

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

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

Ограничения

Когда вы устанавливаете Function на sinпотому что, sincos, или cos + jsin, и набор Approximation method к CORDIC, блок имеет эти ограничения:

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

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

Когда вы устанавливаете Function на atan2 и Approximation method к CORDIC, блок имеет эти ограничения:

  • Входные параметры должны быть одного размера, или по крайней мере одно значение должно быть скалярным значением.

  • Оба входных параметров должны иметь совпадающий тип данных.

  • Когда вы используете подписанные фиксированные точки, размером слова должен быть 126 или меньше.

  • Когда вы используете фиксированные точки без знака, размером слова должен быть 125 или меньше.

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

Параметры блоков: Operator
Ввод: символьный вектор
Значения: 'sin' | 'cos' | 'tan' | 'asin' | 'acos' | 'atan' | 'atan2' | 'sinh' | 'cosh' | 'tanh' | 'asinh' | 'acosh' | 'atanh' | 'sincos' | 'cos + jsin'
Значение по умолчанию: 'sin'

Задайте тип приближения для вычисления выхода.

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

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

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

CORDIC

И фиксированная точка с плавающей точкой

Вы хотите быстрое, приближенное вычисление.

Если вы выбираете CORDIC и увеличьте блок из размера по умолчанию, изменений значка блока:

ФункцияБлокируйте значок
sin

cos

sincos

cos + jsin

atan2

Зависимости

Чтобы включить этот параметр, установите Function на sinпотому что, sincos, cos + jsin, или atan2.

Чтобы использовать входные сигналы фиксированной точки, необходимо установить Approximation method на CORDIC.

Ограничения

Когда вы устанавливаете Function на sinпотому что, sincos, или cos + jsin, и набор Approximation method к CORDIC, блок имеет эти ограничения:

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

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

Когда вы устанавливаете Function на atan2 и Approximation method к CORDIC, блок имеет эти ограничения:

  • Входные параметры должны быть одного размера, или по крайней мере одно значение должно быть скалярным значением.

  • Оба входных параметров должны иметь совпадающий тип данных.

  • Когда вы используете подписанные фиксированные точки, размером слова должен быть 126 или меньше.

  • Когда вы используете фиксированные точки без знака, размером слова должен быть 125 или меньше.

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

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

Задайте количество итераций, чтобы выполнить алгоритм CORDIC. Значение по умолчанию равняется 11.

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

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

    Например, если входом блока является fixdt(1,16,15), размер слова равняется 16. В этом случае количество итераций не может превысить 16.

Зависимости

Чтобы включить этот параметр, необходимо установить Function и параметры Approximation method можно следующим образом:

  • Установите Function на sinпотому что, sincos, cos + jsin, или atan2.

  • Установите Approximation method на CORDIC.

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

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

Задайте тип выходного сигнала блока Trigonometric Function как autoдействительный, или complex.

ФункцияТип входного сигналаТип выходного сигнала
'auto'ДействительныйКомплекс
Любой выбор для параметра Function действительныйдействительныйдействительныйкомплекс
комплекскомплексошибкакомплекс

Зависимости

Установка Approximation method к CORDIC отключает этот параметр.

Примечание

Когда Function является atan2, комплексные входные сигналы не поддержаны для симуляции или генерации кода.

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

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

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

Зависимости

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

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

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

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

Типы данных

double | fixed point[a] | integer[a] | single

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

yes

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

yes

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

yes

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

no

[a]  Этот блок поддерживает фиксированную точку и основные целочисленные типы данных для 'Метода приближения' CORDIC.

Больше о

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

Ссылки

[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.

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

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

Смотрите также

Блоки

Функции

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