Сигнальные микропроцессоры
ветствующих значениям аргумента от 0 до 0,5 или от 0. до 90°. Для
других квадрантов используются соотношения: sin( ф) = -sin ф,
sin (180
—
ф) = БШф, sin (ф - 180) = - 5Шф.
В первом квадранте обеспечивается максимальная точность,
в других квадрантах при прямом вычислении точность хуже, по-
этому для расчетов siruc в 2, 3 и 4 квадрантах используется указан-
ное соотношение.
В программе имеются условные переходы определения квад-
ранта и вычисление соответствующих значений. Значения х пред-
ставляются в дробном формате 1.15. Углу 180° в этом формате со-
ответствует максимальное положительное значение х 0x7FFF
(примерно единица), углу -180° максимальное отрицательное чис-
ло х 0x8000 (минус 1). Коэффициенты полинома инициализируют-
ся в буфере sin_coef памяти данных в формате 4.12, содержащем
разряд знака, 3 разряда целой части и 12 разрядов дробной - ман-
тиссы. Процессор выполняет вычисления значений функции с по-
грешностью до двух младших разрядов.
Подпрограмма вычисления синусоидальной функции методом
аппроксимации приведена в Приложении 3. Для реализации функ-
ции синус используется 25 циклов. Частота дискретизации выбира-
ется из условия F
d
= 60 /
с
. Точность реализации функции синус
определяется, во-первых, числом членов ряда, во-вторых, разряд-
ностью коэффициентов ряда, и точностью вычислений в процессо-
ре, зависящей от разрядности.
4.3. Вычислитель быстрого преобразования
Фурье на процессоре
При спектральном анализе и цифровой фильтрации широко ис-
пользуется алгоритм быстрого преобразования Фурье (БПФ ) [2, 3].
Входная выборка из N временных отсчетов с выхода АЦП может
быть действительной и комплексной. Комплексная выборка пред-
ставляет собой, например, отсчеты косинусной и синусной состав-
ляющих с выхода квадратурного приемника. В данной главе рас-
сматривается реализация БПФ по комплексной выборке.
Следует заметить, что результаты вычислений по алгоритму
БПФ такие же, как и при вычислениях ДПФ, однако, БПФ более
эффективен по числу выполняемых типовых операций. Наиболее
50