cordicabs

Основанное на CORDIC абсолютное значение

Синтаксис

r = cordicabs(c)
r = cordicabs(c,niters)
r = cordicabs(c,niters,'ScaleOutput',b)
r = cordicabs(c,'ScaleOutput',b)

Описание

r = cordicabs(c) возвращает величину комплексных элементов C.

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

r = cordicabs(c,niters,'ScaleOutput',b) задает и количество итераций и, в зависимости от булева значения b, масштабироваться ли, выход обратным CORDIC получают значение.

r = cordicabs(c,'ScaleOutput',b) масштабирует выход в зависимости от булева значения b.

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

c

c вектор из комплексных чисел.

niters

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

Аргументы name-value

Дополнительные разделенные запятой пары Name,Value аргументы, где Name имя аргумента и Value соответствующее значение. Name должен появиться в одинарных кавычках ('').

ScaleOutput

ScaleOutput булево значение, которое задает, масштабировать ли выход обратным фактором усиления CORDIC. Этот аргумент является дополнительным. Если вы устанавливаете ScaleOutput к true или 1, выходные значения умножаются на константу, которая подвергается дополнительным расчетам. Если вы устанавливаете ScaleOutput к false или 0, выход не масштабируется.

Значение по умолчанию: true

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

r

r содержит значения величины комплексных входных значений. Если входные параметры являются значениями фиксированной точки, r также фиксированная точка (и всегда подписывается, с масштабированием двоичной точки). Все входные значения должны иметь совпадающий тип данных. Если входные параметры подписываются, то размер слова r входной размер слова + 2. Если входные параметры без знака, то размер слова r входной размер слова + 3. Дробная длина r всегда то же самое как дробная длина входных параметров.

Примеры

Сравнение cordicabs и abs из двойных значений.

 dblValues = complex(rand(5,4),rand(5,4));
 r_dbl_ref = abs(dblValues)
 r_dbl_cdc = cordicabs(dblValues)

Вычислите абсолютные значения входных параметров фиксированной точки.

 fxpValues = fi(dblValues);
 r_fxp_cdc = cordicabs(fxpValues)

Больше о

свернуть все

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.

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

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

| |

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