Шрифт:
Аппаратная реализация и время выполнения алгоритмов БПФ
В общем случае, требования по используемой памяти для N-точечного БПФ следующие:
N ячеек для вещественных данных, N ячеек для мнимых данных и N ячеек для синусоидальных базисных функций (иногда упоминаемых, как коэффициенты поворота). Дополнительные ячейки памяти будут требоваться в случае использования взвешивания с использованием оконных функций (windowing). Если принятые требования по памяти удовлетворены, DSP должен выполнить необходимые вычисления за требуемое время. Многие производители DSP либо проводят тест производительности для указанного размера БПФ, либо определяют время вычисления для базовой операции «бабочка». При сравнении характеристик БПФ важно удостовериться, что во всех случаях используется одинаковый тип БПФ. Например, тест 1024-точечного БПФ на одном DSP, полученном с помощью алгоритма БПФ по основанию 2, не должен сравниваться с тестом алгоритма БПФ по основанию 4 для другого DSP.
Другое соображение относительно БПФ заключается в выборе процессора с фиксированной или с плавающей точкой. Значения, соответствующие результатам вычисления «бабочки», могут быть больше, чем исходные данные при вычислении «бабочки». Это увеличение обрабатываемых числовых значений может создавать потенциальную проблему в DSP с фиксированным числом разрядов. Для предотвращения переполнения, данные следует масштабировать, заранее оставляя достаточное количество дополнительных разрядов для увеличения значений обрабатываемых данных. Альтернативный метод заключается в том, что данные могут масштабироваться после каждого каскада вычисления БПФ. Методика масштабирования данных после каждого прохода БПФ известна как блочная плавающая точка (block floating point). Он называется так, потому что полный массив данных масштабируется как единое целое, независимо от того, действительно ли каждый элемент в блоке требует масштабирования. Блок масштабируется таким образом, чтобы относительные соотношения между данными остались прежними. Например, если каждое слово данных сдвинуто вправо на один разряд (поделено на 2), абсолютные значения изменяются, но относительно друг друга соотношения данных остаются прежними.
В 16-разрядном DSP-процессоре с фиксированной точкой после умножения формируется 32-разрядное слово. Семейство цифровых сигнальных процессоров Analog Devices ADSP21xx характеризуется расширенным динамическим диапазоном, который реализуется в операциях умножения с накоплением посредством 40-разрядного внутреннего регистра аккумулятора.
Использование DSP-процессора с плавающей точкой устраняет потребность в масштабировании данных и поэтому приводит к более простой реализации алгоритма БПФ, но следствием этого упрощения является увеличение времени обработки, которое требуется для сложных арифметических вычислений с плавающей точкой. Кроме того, 32-разрядный DSP-процессор с плавающей точкой, очевидно, будет иметь меньший уровень шумов округления, чем 16-разрядный DSP-процессор с фиксированной точкой. На рис. 5.22 приведены данные по реализации БПФ для популярных DSP-процессоров Analog Devices. В частности, что DSP-процессор ADSP-TS001 TigerSHARC™ предлагает оба режима: и с плавающей, и с фиксированной точкой, обеспечивая, таким образом, исключительную гибкость программирования.
Требования к DSP для реализации алгоритмов БПФ в реальном масштабе времени
Существует два основных способа обработки сигналов в реальном масштабе времени: обработка одного отсчета в каждый момент времени (непрерывная обработка) и обработка одного пакета данных в каждый момент времени (пакетная обработка). Системы, основанные на непрерывной обработке, такие как цифровой фильтр, получают данные в виде одного отсчета в каждый момент времени. В каждом такте новый отсчет поступает в систему, а обработанный отсчет передается на выход. Системы, основанные на пакетной обработке, такие как построенный на БПФ цифровой анализатор спектра, получают данные в виде целого пакета отсчетов. Происходит обработка всего пакета исходных данных, результатом которой является пакет преобразованных выходных данных.
Для обеспечения функционирования в реальном масштабе времени полный расчет БПФ должен выполняться в промежутке, соответствующем времени накопления одного пакета данных. Предполагается, что, пока производится вычисление БПФ текущего пакета данных, DSP-процессор накапливает данные для следующего пакета. Накопление данных является одной из сфер, где важную роль играют специальные архитектурные особенности DSP. Непрерывное получение данных облегчается, благодаря возможностям гибкой адресации данных в DSP в сочетании с использованием различных каналов прямого доступа к памяти (DMA).
Рассмотрим DSP процессор ADSP-TS001 TigerSHARC, который вычисляет 1024-точечное 32-разрядное комплексное БПФ с плавающей точкой за 69 мкс. Очевидно, что максимальная частота дискретизации равна 1024/69 мкс = 14,8 MSPS. Это подразумевает, что сигнал имеет ширину полосы частот меньшую, чем 7,4 МГц. Также предполагается, что нет дополнительных затрат процессорного времени, связанных с БПФ, или ограничений, связанных с передачей данных.
Приведенный пример дает оценку максимальной ширины полосы сигнала, который может быть обработан данным DSP-процессором с учетом характеристик реализованного на нем БПФ. Другой подход состоит в том, чтобы, задаваясь шириной полосы сигнала, разработать требования к DSP для обработки сигнала в рассматриваемой полосе. Если ширина полосы частот сигнала известна, требуемая частота дискретизации может быть определена путем ее умножения на коэффициент 2–2,5 (увеличение частоты дискретизации может требоваться для ослабления требований к предшествующему АЦП ФНЧ, устраняющему эффект наложения спектра, (antialiasing filter)). Следующим шагом определяется число точек БПФ, требуемое для достижения желаемой разрешающей способности по частоте. Разрешающая способность по частоте получается делением скорости дискретизации fs на число точек БПФ N. Эти и другие соображения по поводу БПФ представлены на рис. 5.24.
РЕАЛИЗАЦИЯ БПФ В РЕАЛЬНОМ МАСШТАБЕ ВРЕМЕНИ
Ширина полосы сигнала
Частота дискретизации fs
Разрешающая способность по частоте = fs/N
Макс. время вычисления N-точечного БПФ N/fs
Фиксированная точка или плавающая точка
Время выполнения алгоритма БПФ по основанию 2 по сравнению с БПФ по основанию 4
Выигрыш БПФ в отношении сигнал/шум = 10 log10(N/2)
Требования взвешивания с использованием оконной функции (Windowing)
Рис. 5.24
Число точек БПФ также определяет минимальный уровень шума БПФ относительно уровня широкополосного шума, и это также должно быть учтено при выборе числа точек БПФ. На рис. 5.25 представлены соотношения между уровнем сигнала, соответствующим полному динамическому диапазону системы, уровнем широкополосного шума (измеренного в ширине полосы от 0 до fs/2) и минимальным уровнем шума БПФ.