Тригонометрическая функция

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

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

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

Описание

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

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

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

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

Синус входа

sin(u)

sin
cos

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

cos(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

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

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, cos, 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, cos, sincos, cos + jsin и функций atan2.

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

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

Ограничения

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

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

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

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

sin, cos, sincos и cos + jsin

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

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

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

atan2

fixdt (1, WL, WL – 3)

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

atan2

fixdt (1, WL, WL – 2)

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

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

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

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

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

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

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

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

Типы данных: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | 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 | uint8 | uint16 | uint32 | fixed point

Вывод

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

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

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

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

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

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

Зависимости

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

Ограничения

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

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

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

Зависимости

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

Ограничения

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

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

Параметры

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

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

Ограничения

Когда вы устанавливаете Function на sin, cos, 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, cos, sincos, cos + jsin или atan2.

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

Ограничения

Когда вы устанавливаете Function на sin, cos, 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, cos, sincos, cos + jsin или atan2.

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

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

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

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

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

Зависимости

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

Примечание

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

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

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

Задайте шаг расчета как значение кроме-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.

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

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

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