exponenta event banner

atan2

Четырехквадрантная обратная касательная значений фиксированной точки

Синтаксис

Описание

пример

z = atan2(y,x) возвращает четырехквадрантный арктангенс fi исходные данные y и x.

Примеры

свернуть все

Используйте atan2 для вычисления арктангенса неподписанных и подписанных входных значений с фиксированной точкой.

Неподписанные входные значения

В этом примере используются 16-битные значения длины слова без знака.

y = fi(0.125,0,16);
x = fi(0.5,0,16);  
z = atan2(y,x)
z = 
    0.2450

          DataTypeMode: Fixed-point: binary point scaling
            Signedness: Unsigned
            WordLength: 16
        FractionLength: 15

Подписанные входные значения

В этом примере используются 16-разрядные значения длины слова со знаком.

y = fi(-0.1,1,16);
x = fi(-0.9,1,16);  
z = atan2(y,x)
z = 
   -3.0309

          DataTypeMode: Fixed-point: binary point scaling
            Signedness: Signed
            WordLength: 16
        FractionLength: 13

Входные аргументы

свернуть все

y-координаты, заданные как скаляр, вектор, матрица или многомерный массив.

y и x могут быть действительными, подписанными или неподписанными скалярами, векторами, матрицами или N-мерные массивы, содержащие значения углов с фиксированной точкой в радианах. Исходные данные y и x должен быть одинакового размера. Если они не имеют одинакового размера, по крайней мере один вход должен быть скалярным значением. Допустимые типы данных y и x являются:

  • fi одинок

  • fi дважды

  • fi фиксированная точка с двоичным масштабированием точек

  • fi масштабирование с двойным масштабированием с двоичным масштабированием точек

Типы данных: fi

x-координаты, заданные как скаляр, вектор, матрица или многомерный массив.

y и x могут быть действительными, подписанными или неподписанными скалярами, векторами, матрицами или N-мерные массивы, содержащие значения углов с фиксированной точкой в радианах. Исходные данные y и x должен быть одинакового размера. Если они не имеют одинакового размера, по крайней мере один вход должен быть скалярным значением. Допустимые типы данных y и x являются:

  • fi одинок

  • fi дважды

  • fi фиксированная точка с двоичным масштабированием точек

  • fi масштабирование с двойным масштабированием с двоичным масштабированием точек

Типы данных: fi

Выходные аргументы

свернуть все

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

z - четырехквадрантный арктангенс y и x. numerictype из z зависит от подписанности y и x:

  • Если либо y или x подписывается, затем z - знаковое число с фиксированной точкой в диапазоне [-pi, pi]. Имеет 16-разрядную длину слова и 13-разрядную длину дроби (numerictype(1,16,13)).

  • Если оба y и x не подписаны, затем z - беззнаковое число с фиксированной точкой в диапазоне [0, пи/2]. Имеет 16-разрядную длину слова и 15-разрядную длину дроби (numerictype(0,16,15)).

Выходные данные, z, всегда связан со значением по умолчанию fimath.

Подробнее

свернуть все

Четырехквадрантный арктангенс

Четырехквадрантный арктангенс определяется следующим образом по отношению к atan функция:

atan2 (y, x) = {atan  (  yx )  x  >   0δ + atan (yx)       y≥0,x<0−π+atan (yx) y <  0 ,  x < 0ā2 y  >  0 ,  x  =  0  −   security2  y  <  0 ,  x = 00 y =  0 ,  x  =  0                                        

Алгоритмы

свернуть все

atan2 функция вычисляет четырехквадрантный арктангенс входов с фиксированной точкой с помощью 8-битной таблицы поиска следующим образом:

  1. Разделите входные абсолютные значения, чтобы получить беззнаковое дробное 16-разрядное отношение с фиксированной точкой от 0 до 1. Абсолютные значения y и x определяют, какое значение является делителем.

    Признаки y и x входные данные определяют, в каком квадранте лежит их отношение. Вход с большим абсолютным значением используется в качестве знаменателя, таким образом получая значение между 0 и 1.

  2. Вычислите индекс таблицы на основе 16-разрядного, беззнакового, сохраненного целого значения:

    1. Используйте 8 старших битов для получения первого значения из таблицы.

    2. Используйте следующее значение таблицы в качестве второго значения.

  3. Используйте 8 младших разрядов для интерполяции между первым и вторым значениями, используя ближайшую соседнюю линейную интерполяцию. Эта интерполяция дает значение в диапазоне [0, pi/4).

  4. Выполнить коррекцию октанта на результирующем угле на основе значений исходного y и x входные данные.

Это вычисление арктангенса является точным только для первых 16 старших битов входного сигнала.

Правила распространения fimath

atan2 функция игнорирует и отбрасывает любые fimath присоединено к входам. Выходные данные, z, всегда связан со значением по умолчанию fimath.

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

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

.
Представлен в R2012a