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 'double'

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

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

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

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

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

  • fi единственный

  • fi 'double'

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

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

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

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

свернуть все

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

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

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

Больше о

свернуть все

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

Арктангенс с четырьмя квадрантами определяется следующим образом, относительно 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 входные параметры.

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

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

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

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

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

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