При цифровой обработке для повышения скорости обычно используют дискретное преобразование Фурье. Для частотного представления сигнала требуется большое количество операций умножения.

В 1965г изобретено быстрое преобразование Фурье, существенно уменьшающее количество операций умножения.

прямое преобразование Фурье.

обратноe преобразование Фурье.

При прямом преобразовании Фурье:

; где

При обратном преобразовании Фурье:

Для вывода БПФ заменим прямое и обратное преобразование Фурье формулой (3), где:

a(n) – сигналы отсчета во временной области,

A(k) – отсчеты в частотной области исследуемого сигнала.

Проанализируем общий алгоритм вычисления ДПФ и обратного ДПФ.

Qобщ – операции умножения

Qобщ = N2

При вычислении весов функции , много значений этой функции дублируется, а именно, при вычислении N точечного вычисления ДПФ, значений W оказываются лишними. Проанализируем поведение весов. функции для N=8.

N=8 W0 = 1

При анализе поведения весовой функции видна следующая закономерность: значений весовой функции (первые значения равны следующим весовой функции, взятых со знаком “–”).

nk

0

1

2

3

4

5

6

7

W-nk

1

W-1

W-2

W-3

-1

-W-1

-W-2

-W-3

Используем свойство весовой функции для уменьшения операций умножения. Для этого разобьем последовательность прямого преобразования Фурье на четные и нечетные составляющие.

Для получения восьмиточечного ДПФ, исходя из ниже следующей формулы, воспользуемся следующей структурой:

Исходя из преобразования 4-х точечного ДПФ, сделаем преобразование до 2-х точечного ДПФ. Тогда структура будет следующая:

При преобразовании 8-ми точечного ДПФ в 2-х точечное существенно сокращается количество умножений. Первая стадия преобразования 2-х точечного ДПФ вырождается в структуру:

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

Для реализации БПФ отсчеты подлежащие преобразованию должны подаваться в инверсно–кодированной форме.

“n”текущ.

000

001

010

011

100

101

110

111

БПФ

000

100

010

110

001

101

011

111

При представлении сигнала в инверсно–кодированной форме, получаем эквивалентный зеркальный переворот значений разрядов. Там, где отсчеты располагаются симметрично, никакого преобразования не надо.

При инверсно–кодированных операциях необходимо зеркально отобразить исходную последовательность номеров. Реализация с помощью аппаратных средств производит перекодирование в двоично-инверсную последовательность.

N0такта

P1

P2

P3

N0такта

P1

P2

P3

1

0

4

¬0

2

0

0

5

0

0

3

0

0

0

6

0

0

0

На вход регистра R1 подавалась кодовая комбинация из трех нулей. После шести тактов в регистре R2 будет также последовательность состоящая из трех нулей.

N0такта

P1

P2

P3

N0такта

P1

P2

P3

1

1

4

1

2

0

1

5

1

0

3

0

0

1

6

1

0

0

Если кодовые комбинации не симметричны (1, 4, 6), то они подлежат преобразованию в двоично-инверсную кодированную форму.

Реализация алгоритма БПФ.

После каждого этапа преобразования получается массив, который обозначается А0 – А7. Так как результаты предыдущих вычислений в дальнейших расчетах используются один раз, то вместо прежних значений А0 – А7 рассчитываются новые значения А0 – А7, таким образом уменьшается объем памяти.

На каждом этапе количество N изменяется. Чтобы упростить вычисление и сделать алгоритм общим, для всех этапов полагают N равно исходному значению отсчетов, которые подлежат преобразованию.

Пример:

С помощью БПФ рассчитать спектральный состав временной последовательности представленной в виде:

x(nT) = {1; 1; -1; -1; 1; 1; -1; -1}

X(jkω1) = {0; 0; 4 – 4j; 0; 0; 0; 4 + 4j; ? ; 0 }

r – количество пар ()

m – количество этапов преобразования

r – текущее значение вычисляемой пары