Цифровая обработка сигналов |
Часть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 – текущее значение вычисляемой пары
Наряду с аппаратными средствами получения инверсно кодированных отсчетов существуют программные средства выполнения тех же самых операций.
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.
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
140 END
Данная программа позволяет выполнить прямое ДПФ, где:
a(n) – отсчеты сигнала во времени ;
A(k) – отсчеты спектра сигнала X(jω1k).
В случае обратного ДПФ в программе надо сделать изменения:
a(n) – отсчеты спектра X(jω1k);
A(k) – отсчеты сигнала во времени.
Каскадное включение МПК для расчета в реальном масштабе t.
При реализации цифровых фильтров одной из самых главных задач является расчет в реальном масштабе t.Он подразумевает обработку сигнала с такой же скоростью, как и поступление входных отсчетов.
y(nT) поступает с такой же скоростью, что и x(nT).
После преобразования исходного многочлена на ряд элементарных многочленов производят представление передаточной функции в виде простейших элементарных составляющих. Сначала должен располагался четырехполюсник с малой добротностью, а потом добротность возрастает.
В результате разбиения H(z) на четыре элементарных передаточных характеристики: H1(z)…H4(z), время, отводимое на реализацию Hi(z), возрастает как минимум в четыре раза, этим самым производится параллельный обмен времени на аппаратурную сложность.
Преимущество: уменьшение времени расчета в каждом звене.
Недостаток: выходной сигнал задерживается как минимум на четыре тактовых интервала.
назад | оглавление | вперёд