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

 

Как видно, из формул (7.4) и (7.5), чтобы вычислить ДПФ или ОДПФ последовательности из N элементов, требуется выполнить операций с комплексными числами. Если длины обрабатываемых массивов имеют порядок тысячи или более, то использовать эти алгоритмы дискретного спектрального анализа в реальном масштабе времени затруднительно из-за ограниченного быстродействия вычислительных устройств.

Выходом из положения является алгоритм быстрого преобразования Фурье (БПФ) , предложенный в 60-х годах. Существенно сократить число операций удаётся за счёт того, что обработка входного массива сводится к нахождению ДПФ (или ОДПФ) массивов с меньшим числом членов.

Предположим, что число отсчётов , где Р - целое число. Разобьём входную последовательность на две части с чётными и нечётными номерами.

(7.6)

И представим n-й коэффициент ДПФ в виде:

Из формулы видно, что первая половина коэффициентов ДПФ исходного сигнала с номерами от 0 до (N/2)-1 выражается через коэффициенты ДПФ двух частных последовательностей:

n=0,1,2,…,(N/2)-1 (7.7)

Учтём, что последовательности коэффициентов, относящихся к чётной и нечётной частям входного массива, являются периодическими с периодом N/2:

Кроме того, входящий в формулу (7.7) множитель при можно преобразовать так:

Отсюда находим выражение для второй половины множества коэффициентов ДПФ

(7.8)

Формулы (7.7) и (7.8) лежат в основе алгоритма БПФ. Далее вычисления строят по итерационному принципу: последовательности отсчётов с чётными и нечётными номерами вновь разбивают на две части. Процесс продолжают до тех пор, пока не получается последовательность, состоящая из единственного элемента. ДПФ этого элемента совпадает с ним самим.

Число операций, необходимых для вычисления БПФ оценивается как .

Выигрыш в скорости вычислений по сравнению с традиционным ДПФ достигает сотен и даже тысяч при достаточных длинах входных массивов.