Скачиваний:
14
Добавлен:
20.05.2014
Размер:
260.61 Кб
Скачать

БЫСТРОЕ ПРЕОБРАЗОВАНИЕ ФУРЬЕ (БПФ)

Понятие о БПФ 

БПФ – это группа алгоритмов для программной реализации ДПФ, сокращающих количество операций примерно в раз, т.е.  операций вместо , см. раздел 14.6. Другими словами, БПФ - это ДПФ, выполняемое очень быстро. Первый алгоритм БПФ предложен в 1965г, а сейчас их много и они очень сложные. Мы рассмотрим один из них, наиболее простой для понимания. Этот алгоритм, иногда называемый алгоритмом “бабочки”, основан на расщеплении исходного массива отсчетов сигнала. Появление БПФ сделало переворот в цифровой обработке, т.к. позволило легко переходить к преобразованиям спектров в случае больших значений .

Основу БПФ составляют 4 идеи:

  • Спектр ДПФ – периодический,  .

  • Спектр ДПФ легко вычисляется в случае , когда имеется только одна гармоника и по (14.7) 

  • Выбирается , где – целая степень, т.е. количество отсчетов не может быть произвольным целым числом. Например, при имеем .

  • Спектр исходной последовательности несложно найти по спектрам расщепленных последовательностей. При каждом расщеплении от одного массива из отсчетов переходят к двум массивам из отсчетов каждый.

Вычисление спектра объединенной последовательности по спектрам расщепленных.

Пусть на периоде T имеем два сигнала и , , каждый из которых содержит N/2 точек и имеет безразмерный шаг дискретизации . Из этих двух сигналов, объединяя их в виде “гребенки”, получаем объединенную последовательность , , состоящую из отсчетов. При таком объединении для четных при имеем , для нечетных при имеем . Например, , , ,  и т.д. Для объединенного сигнала получается шаг .

Рассматриваемые сигналы даны на рисунке 13.1

Рис 13.1   Две расщепленных и объединенная последовательности отсчетов.

Запишем спектры этих трех сигналов в комплексной форме (14.7), причем для спектров будем использовать заглавные буквы, соответственно строчные - для сигналов.

ДПФ для исходного сигнала (15.3) требует опреаций в строке () (операция – это вычисление константы, умноженное на , прибавление к предыдущему), всего , т.е. строк, операций .

(13.1)

(13.2)

(13.3)

Здесь суммы по вычисляются по точкам и по этому появляются множители 2 перед суммой и в показателе степени. Количество гармоник в (13.1 – 13.2) равно , а в (13.3) оно равно . Покажем, как спектр можно вычислить по спектрам и :

,

13.4

т.е. , .           

При выводе вместо отсчетов с четными номерами подставлены значения , а вместо отсчетов c нечетными номерами – значения . Формулу (13.4) можно применять для , т.к. спектры и содержат гармоник. Но учитывая их периодичность: , а также равенство , получаем для гармоник с номерами

13.5

Формулы (13.4-13.5) составляют суть алгоритма “бабочка”, т.к. для его иллюстрации используют рисунок, похожий на бабочку.

Рис.13.2 Иллюстрация к алгоритму “бабочка”.

Алгоритм БПФ

Дан массив из отсчетов сигнала, причем .

1.  Расщепляем его многократно на четные и нечетные последовательности до получения последовательностей из одного отсчета в каждой, см. рис 13.3.

Рис.15.3 Расщепление последовательностей.

На рис. 13.3 значение дает количество отсчетов в каждой из расщепленных последовательностей. Всего уровней расщепления , т.е. расщепляем раз. Будем считать, что – это новый массив точек. В нем порядок следования точек отличен от исходного, т.е. , где , а индекс вычисляется по .

Оказывается, что преобразование  дает обратный битовый порядок, например, .

Для получаем следующее преобразования индексов:

Столь простое преобразование можно не учитывать при оценках времени работы алгоритма.

2.  Так как при , т.е. при одном отсчете на периоде, спектр равен самому отсчету, то на последнем уровне расщепления () спектры всех последовательностей известны. Всего имеем спектров, каждый из которых состоит только из нулевой гармоники (), т.е. среднее значение.

3. Объединение последовательностей, т.е. обратный ход.

При каждом объединении используются формулы для вычисления спектра (13.4-13.5). Вычисления завершаются после получения спектра из гармоник для исходной последовательности уровня .

Оценка количества операций в БПФ. 

В ДПФ было примерно операций, см. раздел 14.6. В БПФ одна гармоника требует одной операции в соответствии с (13.4) или (13.5). На каждом уровне расщепления вычисляется гармоник (равное числу отсчетов) для каждого из сигналов, т.е. всего гармоник. Так как количество уровней расщепления равно , то всего нужно определить гармоник, т.е.выполнить операций, где . Следовательно, БПФ требует операций вместо в ДПФ, т.е. оно в раз эффективнее. Выигрыш во времени выполнения равен и приведен в таблице 13.1 для M<15, а далее он резко увеличивается.

Таблица 13.1.

3

10

8

256

1024

8192

16384

3

30

100

600

1200

Следует отметить, что БПФ дает существенный выигрыш при вычислениях всех гармоник, но если нужны только некоторые гармоники, то можно использовать ДПФ.

Соседние файлы в папке Шпоры по вычмату