cordicangle

Основанный на CORDIC угол фазы

Синтаксис

theta = cordicangle(c)
theta = cordicangle(c,niters)

Описание

theta = cordicangle(c) возвращает углы фазы, в радианах, матричного c, который содержит комплексные элементы.

theta = cordicangle(c,niters) выполняет niters итерации алгоритма.

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

c

Матрица комплексных чисел

niters

niters количество итераций, которые выполняет алгоритм CORDIC. Этот аргумент является дополнительным. Когда задано, niters должен быть положительный, скаляр с целочисленным знаком. Если вы не задаете niters, или если вы задаете значение, которое является слишком большим, алгоритм использует максимальное значение. Для операции фиксированной точки максимальное количество итераций является размером слова r или меньше, чем размер слова theta, какой бы ни меньше. Для операции с плавающей точкой максимальное значение 52 для двойного или 23 для сингла. Увеличение числа итераций может привести к более точным результатам, но также и увеличивает расход расчета и добавляет задержку.

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

theta

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

Примеры

Phase angle для входа с двойным знаком и для входа со знаком фиксированной точки.

dblRandomVals = complex(rand(5,4), rand(5,4));
theta_dbl_ref = angle(dblRandomVals);
theta_dbl_cdc = cordicangle(dblRandomVals)
fxpRandomVals = fi(dblRandomVals);
theta_fxp_cdc = cordicangle(fxpRandomVals) 

theta_dbl_cdc =

    1.0422    1.0987    1.2536    0.6122
    0.5893    0.8874    0.3580    0.2020
    0.5840    0.2113    0.8933    0.6355
    0.7212    0.2074    0.9820    0.8110
    1.3640    0.3288    1.4434    1.1291

theta_fxp_cdc =
 
    1.0422    1.0989    1.2534    0.6123
    0.5894    0.8872    0.3579    0.2019
    0.5840    0.2112    0.8931    0.6357
    0.7212    0.2075    0.9819    0.8110
    1.3640    0.3289    1.4434    1.1289

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

Больше о

свернуть все

CORDIC

CORDIC является акронимом для Координатного Компьютера Вращения. Основанный на вращении алгоритм CORDIC Givens является одним из самых эффективных оборудованием алгоритмов, доступных, потому что это требует только итеративных операций shift-add (см. Ссылки). Алгоритм CORDIC избавляет от необходимости явные множители. Используя CORDIC, можно вычислить различные функции, такие как синус, косинус, арксинус, арккосинус, арктангенс и векторная величина. Можно также использовать этот алгоритм в делении, квадратном корне, гиперболических, и логарифмических функциях.

Увеличение числа итераций CORDIC может привести к более точным результатам, но выполнение так также увеличивает расход расчета и добавляет задержку.

Алгоритмы

свернуть все

Схемы потока сигналов

CORDIC векторизация ядра

Точность ядра CORDIC зависит от выбора начальных значений для X, Y и Z. Этот алгоритм использует следующие начальные значения:

x0  инициализируется к  x  входное значениеy0  инициализируется к  y  входное значениеz0  инициализируется к 0

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

Функции CORDIC отбрасывают любой локальный fimath присоединенный к входу.

Функции CORDIC используют свой собственный внутренний fimath при выполнении вычислений:

  • OverflowActionWrap

  • RoundingMethodпол

Выход присоединил не fimath.

Ссылки

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

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

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

| | |

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