5.8.1 CORDIC–арифметикаВ хорошо известном уравнении, описывающем поворот вектора до нового положения , используются синус и косинус угла поворота: Требуется выполнить четыре операции умножения на две тригонометрические функции. Компьютер может быстрее выполнять эту процедуру, если преобразовать данное уравнение в последовательность малых вращений специального вида так, чтобы каждое вращение выполнялось только с помощью сложений и сдвигов. CORDIC – арифметика была унифицирована до единственного уравнения [323], которое допускает вращение либо по кругу, либо вдоль линии, либо вдоль гиперболы. Единицей приращения вращения при - ой итерации является предопределенная последовательность и , что задает направление вращения: (5.73) Последовательность должна выбираться такой, чтобы удовлетворять некоторым ограничениям, которые обеспечивают сходимость итераций. Для получения вычислительной эффективности при обычной аппаратной реализации компьютера, в котором используется представление данных в двоичной системе счисления, для выбирается целый отрицательный показатель степени, равный 2. Это позволяет выполнять умножение на как сдвиг. Уравнение (5.73) описывает вращение и изменение масштаба в соответствующем пространстве координат. Вектор можно представить в виде обобщенной радиальной составляющей и обобщенной угловой составляющей : Для случая кругового вращения эти выражения дают истинное представление вектора в полярных координатах. Выполнение операции в (5.73) масштабирует радиальную составляющую с помощью величины и изменяет угловую составляющую на . После итераций , новыми радиальной и угловой составляющими будут и :
(5.74) Сходимость итераций и эффективное выполнение вращений чрезвычайно сильно зависят от определенного заранее выбора . Каждый тип вращения имеет различный предопределенный набор положительных приращений , которые задают фиксированные радиальные и угловые приращения , входящие в (5.74). Внутри области сходимости (ограниченной полным возможным вращением) на последовательность были наложены такие ограничения, при которых поворот на любой угол должен происходить за шагов (от 0 до ) [323]. Это гарантирует, что дискретность расчета (угловое разрешение) равна за шагов. При соответствующем выборе набора приращений каждая успешная итерация повышает точность конечного результата примерно на один разряд. К CORDIC- уравнению (5.73) добавляется дополнительная переменная , в которую входит сумма угловых составляющих вращения: (5.75) CORDIC- уравнение можно последовательно применить к трем параметрам . Функция, которая должна быть вычислена, получается путем приравнивания к нулю либо , либо . Часто начальным значением другой переменной или является 0 или 1. Знак вращения при каждой итерации выбирается таким, при котором искомый параметр сдвигается по направлению к 0. Операции вращения реализуются путем приравнивания к 0, а векторные операции – путем приравнивания к 0. Интерпретацию (5.73), как вращение по кругу, вокруг линии и гиперболы можно понять из графического изображения. Например, вращение по кругу вектора до вектора позволяет вычислить . Направление вращения при каждой итерации выбирается таким, чтобы еще сильнее приблизить к 0. Последовательность малых угловых шагов , предопределенная с помощью , с соответствующим знаком суммируется в , и мы получаем ответ. На рис. 5.8, а показано , как происходит это вращение. Радиус круга увеличивает предопределенную величину при каждом шаге вращения. При вычислении нет необходимости учитывать это изменение радиуса. Однако величина стала масштабированным квадратным корнем, где масштабирующий коэффициент известен заранее: Изображенный на рис. 5.8, а блок с тремя входами и тремя выходами используется для описания функции, значение которой вычисляется с помощью CORDIC- вращения. При начальном значении , отличном от нуля, приравнивание к нулю позволяет определить и [см. рис. 5.8, а]. Для случая вращения вокруг линии радиальная составляющая всегда равна 1, а угловая составляющая интерпретируется как величина . Для приращений имеем и . Результат применения CORDIC – процедуры показан на рис. 5.8,б. Этим способом можно выполнить операции умножения и деления. а. б. в. Рис. 5.8. Примеры CORDIC – операций: а - CORDIC – операция: вращение по кругу; б - CORDIC – операция: вращение вокруг линии; в - CORDIC – операция: вращение вокруг гиперболы. Исходя из рис. 5.8, в и рассматривая вращение вокруг гиперболы, можно вычислить гиперболические функции и квадратные корни. Поверхность вращения представляет собой набор точек, находящихся на постоянном расстоянии от начала координат. После каждой CORDIC – процедуры гипербола сдвигается на фиксированную величину , ближе к началу координат.
|