atan2

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

Синтаксис

z = atan2(y,x)

Описание

z = atan2(y,x) возвращает арктангенс с четырьмя квадрантами fi входа y/x с помощью алгоритма поиска по таблице.

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

y,x

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

  • один fi

  • fi дважды

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

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

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

z

z является арктангенсом с четырьмя квадрантами y/x. numerictype z зависит от со знаком из y и x:

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

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

Это вычисление арктангенса точно только к в лучших 16 старших значащих битах входа.

Примеры

Вычислите арктангенс входных значений фиксированной точки со знаком и без знака. Первое использование в качестве примера 16-битные значения размера слова без знака. Второе использование в качестве примера подписанные, 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 

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

Больше о

свернуть все

Арктангенс с четырьмя квадрантами

Арктангенс с четырьмя квадрантами задан можно следующим образом относительно функции atan:

atan2(y,x)={atan(yx)            x>0π+atan(yx)      y0,x<0π+atan(yx)    y<0,x<0π2                        y>0,x=0π2                      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, пи/4).

  4. Выполните исправление октанта на получившемся углу, на основе значений исходного y и входных параметров x.

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

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

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

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

Представленный в R2012a

Для просмотра документации необходимо авторизоваться на сайте