Лабораторная работа №2
Цель работы: Изучение Быстрого преобразования Фурье.
Необходимые теоретические сведения
Рассмотрим алгоритмы БПФ с основанием 2, которые применяются к последовательностям длины N=2l, l – целое.
Основная идея БПФ состоит в следующем. Последовательность x[n] разбивают на две N/2 – точечные последовательности x1[n] и х2[n], и находят для них X1[k] и X2[k]. Затем по значениям X1[k] и X2[k] определяют требуемое N–точечное ДПФ X[k]. Если последняя операция будет выполняться просто и не потребует сложных вычислений, то для вычисления N – точечного ДПФ потребуется выполнить (N/2)2+(N/2)2=N2/2 операций. Если продолжить процесс разбиения x1[n] и х2[n] на две и находить для каждой из них свои ДПФ, то можно существенно сократить количество операций.
Рассмотрим ДПФ последовательности x[n]:
(5a.1) |
где – вспомогательная функция.
Разобьем x[n] на две части x1[n] и х2[n], содержащие соответственно четные и нечетные члены x[n]:
Тогда
Так как , то
.
Здесь выражения в фигурных скобках представляют прямые N/2 – точечные ДПФ от последовательностей x1[n] и х2[n]. Тогда,
|
(5a.2) |
Из формулы (5a.2) следует, что N – точечное ДПФ X[k] может быть вычислено через два N/2 – точечных ДПФ X1[k] и X2[k]. Следует иметь в виду, что отсчеты ДПФ для последовательностей х1[n] и х2[n] повторяются с периодом N/2. Поэтому
(5a.3) |
Учитывая равенство , из (5a.2) получаем выражение для определения второй части последовательности спектральных коэффициентов X[k]:
|
(5a.4) |
Рис. 5a.1. Основная операция БПФ |
Формулы (5a.2), (5a.4) представляют базовую операцию БПФ (так называемую «бабочку»). Схематическое изображение "бабочки" показано на рис. 5a.1. Здесь кружок в центре обозначает операцию сложения/вычитания. Стрелка обозначает операцию умножения на . Жирные точки обозначают ячейки памяти, содержащие входные и выходные значения для отдельных этапов БПФ.
На рис. 5a.2 показана схема вычисления 8 – точечного БПФ с использованием двух 4 – точечных преобразований.
В свою очередь, 4 – точечные преобразования могут быть определены через 2 – точечные, которые вычисляются по формулам:
(5a.5) |
(5a.6) |
На рис. 5a.3 показан результирующий граф 8 – точечного БПФ.
Рис. 5a.2. Вычисление 8–точечного БПФ |
Рис. 5a.3. Результирующий граф 8–точечного БПФ |
Описанный алгоритм БПФ называется алгоритмом с прореживанием по времени, так как здесь требуется перестановка входных значений x[n] (см. рис. 5a.3). Алгоритмы, при реализации которых требуется перестановка отсчётов X[k], называются алгоритмами с прореживанием по частоте.
Поскольку произведение можно после вычисления запомнить, то для каждой базовой операции БПФ необходимо выполнять только умножение X2[k] на множитель WNk. Входные и выходные значения базовых операций обычно хранят в одних и тех же ячейках памяти. На одну базовую операцию приходится одна дополнительная ячейка для хранения произведения . Поэтому входная x[n] и выходная X[k] последовательности, а также промежуточные результаты могут размещаться в одном и том же массиве ячеек памяти. Алгоритм БПФ, использующий указанные возможности, называют алгоритмом с замещением.
Особенностью рассматриваемых алгоритмов БПФ является необходимость перестановки входных или выходных значений. Элементы входной последовательности для алгоритма с прореживанием по времени должны быть расположены в памяти в бит–инверсном порядке. Бит–инверсный порядок задается путем «зеркального» отображения двоичных разрядов входной последовательности (табл. 5a.1).
№ |
Двоичный номер |
бит инверсия |
бит–инверсный номер |
0 |
000 |
000 |
0 |
1 |
001 |
100 |
4 |
2 |
010 |
010 |
2 |
3 |
011 |
110 |
6 |
4 |
100 |
001 |
1 |
5 |
101 |
101 |
5 |
6 |
110 |
011 |
3 |
7 |
111 |
111 |
7 |
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.