Цифровая обработка сигналов  

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

назад | оглавление | вперёд

 

 

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

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

В 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 – текущее значение вычисляемой пары

 

 

 

§34 Алгоритм инверсно кодированных перестановок.

 

Наряду с аппаратными средствами получения инверсно кодированных отсчетов существуют программные средства выполнения тех же самых операций.

 

10              
DIM A(N)

20               FOR I = 1 TO N

30               INPUT A(I)

40               PRINT “A(I) =”, A(I)

50               NEXT I

60               LET j = 0

70               LET

80               LET I = 0

85      IF I > N-1 THEN GO TO 210

90               IF j < 1 THEN GO TO 140

100           LET A = A(I)

110           LET B = A(J)

120           LET M(I) = B

130           LET M(J) = A

140           LET k = m

150           IF J ≥ k THEN GO TO

160           LET J = J + k

170           GO TO 85

180           LET J = J – k

190           LET

200           GO TO 90

210 END

10 – объявление массива входной последовательности, который подлежит       преобразованию;

20  50 – ввод входной последовательности;

60  70 – начальное присвоение переменной J и переменной m;

80 – начало цикла расчета I = 0;

85 – проверка значения переменной I, если I > N-1, то цикл расчета продолжается;

90 – проверка условий;

100 – переприсвоение значений массива;

140 – присвоение переменной kзначений m;

150  170  – организация цикла расчета, присвоение переменной J и k.

 

§35 Алгоритм расчета ДПФ.

10              
DIM a(N)

20               DIM A(N)

30               FOR I = 0 TO N-1

40               INPUT a(I)

50               NEXT I

60               LET k = 0

70               LET n = 0

80               LET A(0) = 0

90               LET

100           LET n = n + 1

110           IF n < N-1 THEN GO TO 90

120           LET k = k + 1

115           LET

130           IF k < N-1 THEN GO TO 70

140           END

Данная программа позволяет выполнить прямое ДПФ, где:

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

A(k) – отсчеты спектра сигнала X(1k).

В случае обратного ДПФ в программе надо сделать изменения:

a(n) – отсчеты спектра X(1k);

A(k) – отсчеты сигнала во времени.

 

Каскадное включение МПК для расчета в реальном масштабе t.

 

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

y(nT) поступает с такой же скоростью, что и x(nT).

                       

                                                                           

                                                                                             

 

 

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

В результате разбиения H(z) на четыре элементарных передаточных характеристики: H1(z)…H4(z), время, отводимое на реализацию Hi(z), возрастает как минимум в четыре раза, этим самым производится параллельный обмен времени на аппаратурную сложность.

Преимущество: уменьшение времени расчета в каждом звене.

Недостаток: выходной сигнал задерживается как минимум на четыре тактовых интервала.


назад | оглавление | вперёд