8.3. Быстрое преобразование Фурье

Основная трудность вычисления ДПФ при длинных последовательностях заключается в большом количестве арифметических операций, что требует высокого быстродействия вычислительных средств и значительного времени обработки. Так например, для определения спектра последовательности длиной blank в соответствии с (8.16) требуется blank комплексных умножений и blank комплексных сложений. Это в ряде случаев делает затруднительной обработку сигнала в реальном масштабе времени. Быстрое преобразование Фурье (БПФ) позволяет сократить число арифметических операций на несколько порядков.

Основная идея БПФ заключается в разбиении последовательности blank на подпоследовательности, вычислении ДПФ для каждой из них и объединении результатов вычислений. Наиболее просто алгоритм БПФ реализуется в случае blank, где blank – натуральное число. Если blank, то последовательность blank дополняется нулями.

Рассмотрим процедуру БПФ на примере деления последовательности на две подпоследовательности. Будем полагать, что в первую подпоследовательность входят значения blank с четными, а во вторую – с нечетными номерами. Тогда выражение (8.16) принимает вид

blank

blank. (8.23)

Введем следующие обозначения: подпоследовательность с четными номерами обозначим через blank, а с нечетными номерами – через blank. Тогда выражение (8.23) принимает вид

blank, (8.24)

blank – четные blank – нечетные

где blank.

Но первая сумма в (8.24) представляет собой ДПФ подпоследовательности отсчетов с четными номерами

blank,

а вторая сумма – ДПФ подпоследовательности отсчетов с нечетными номерами:

blank.

Тогда вместо (8.24) получаем выражение

blank, при blank. (8.25)

При blank в силу периодичности спектра дискретной последовательности

blank, при blank. (8.26)

Выражения (8.25) и (8.26) представляют собой алгоритм БПФ. Вычислительная схема БПФ может быть представлена в следующем виде (рис. 8.4).

8.4.jpg

Нетрудно убедиться, что число операций для вычисления blank сокращается приблизительно в два раза. Если провести дальнейшее разбиение подпоследовательностей blank и blank на более короткие подпоследовательности и использовать алгоритм БПФ, аналогичный рассмотренному, то можно добиться еще большего сокращения числа операций.

To top