exponenta event banner

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 должно отображаться внутри отдельных кавычек ('').

'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 - аббревиатура от COORDinate Rotation DIgital Computer. Алгоритм CORDIC на основе ротации Givens является одним из наиболее аппаратных алгоритмов, поскольку требует только итеративных операций добавления сдвига (см. Ссылки). Алгоритм CORDIC устраняет необходимость в явных множителях. С помощью CORDIC можно вычислить различные функции, такие как синус, косинус, синус дуги, косинус дуги, касательная дуги и величина вектора. Этот алгоритм можно также использовать для функций деления, квадратного корня, гиперболических и логарифмических функций.

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

Подробнее

Алгоритмы

свернуть все

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

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

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

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

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

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

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

  • OverflowActionWrap

  • RoundingMethodFloor

Выход не подключен fimath.

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

.

См. также

| |

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