
- •Тема 1. Свёртка дискретных сигналов.
- •1) Круговая (периодическая) свёртка сигналов.
- •2) Линейная (апериодическая) свёртка линейных сигналов
- •Тема 2. Обратное z-преобразование.
- •Тема 3. Структурные схемы цифровых фильтров.
- •Тема 4. Временные характеристики цф
- •Тема 5. Частотные характеристики цф
- •Тема 6. Быстрое преобразование Фурье (бпф)
- •Тема 7. Полифазная интерполяция и децимация
- •Тема 8. Медианная фильтрация
Тема 6. Быстрое преобразование Фурье (бпф)
Основы алгоритмов БПФ
ДПФ |
|
|
(1) |
ОДПФ |
|
|
(2) |
|
где
|
|
(3) |
Непосредственное
вычисление ДПФ при комплексных
требует для каждого значения (N-1)
умноженной на (N-1)
сложений комплексных чисел, или 4(N-1)
умножений и (2N-2)
сложений действительных чисел.
Для всех N
значений k
требуется примерно
умножений и сложений комплексных чисел.
При больших N (100-1000) практическое применение прямого алгоритма невозможно или экономически невыгодно.
БПФ называют набор
алгоритмов, которые существенно уменьшают
вычислительную сложность ДПФ. Основная
идея этих алгоритмов: разделение исходной
N-точечной
последовательности на несколько более
коротких, например на два длинною
.
Затем вычисляются их ДПФ и из них
конструируются ДПФ исходной
последовательности.
Для двух
-точечных
последовательностей требуется
умножений и сложений комплексных чисел,
т.е. число операций уменьшается примерно
в два раза. Аналогично, вместо вычисления
- точечной ДПФ можно разбить
последовательность на две
- точечные последовательности, что ещё
более уменьшит число операций.
Если
,
и целое, то процесс уменьшения размера
ДПФ продолжается до тех пор пока не
останутся 2х точечные ДПФ, при этом
общее число этапов равно
алгоритмов, а число арифметических
операций
,
т.е. в
раз меньше, чем по прямой формуле.
N = 1000
|
по прямой формуле |
≈ 106 операций |
|
БПФ |
≈ 104 операций |
|
Выигрыш |
в 100 раз |
Алгоритм быстрого преобразования Фурье с прореживанием
Пусть .
Есть длина последовательности не кратна степени 2, то её можно дополнить нулями.
Исходная
последовательность:
.
Разобьём её на две части, состоящие из чётных и нечётных элементов.
|
(4) |
|
(5) |
Так как
,
то
|
(6)
|
|
(6а)
|
должно быть
определено для N
точек,
а в (6а)
и
должны быть определены для
.
Доопределим
выражение (6) для значений:
,
учитывая, что
- точечные ДПФ в (6а) периодические.
|
(7) |
(т.к.
)
Формулы (6) и (7) дают алгоритм вычисления N-точечного ДПФ через -точечные.
Этот алгоритм можно представить направленным графом, имеющим вид бабочки:
(6) и (7)
Можно продолжить
и далее и выразить
-точечные
ДПФ через
-точечные:
|
(9) |
|
(10) |
Процесс уменьшения
ДПФ продолжается до тех пот, пока на
-ом
шаге не окажутся только двухточечные
ДПФ.
|
(11) |
Пример:
;
.
1)
2) Разбиваем последовательность на чётные и нечётные элементы:
При использовании алгоритма ДПФ с прореживанием по времени производится перестановка входной последовательности в соответствии с реверсивным (инверсным) двоичным представлением номера элемента.
0 |
000 |
|
000 |
0 |
1 |
001 |
|
100 |
4 |
2 |
010 |
|
010 |
2 |
3 |
011 |
|
110 |
6 |
4 |
100 |
|
001 |
1 |
5 |
101 |
|
101 |
5 |
6 |
110 |
|
011 |
3 |
7 |
111 |
|
111 |
7 |
Алгоритм ДПФ с прореживаем по частоте
Исходная последовательность делиться на части:
Этот алгоритм можно представить направленным графом, имеющим вид бабочки:
Пример:
;
0 |
28 |
1 |
|
2 |
|
1 |
|
1 |
|
1 |
|
1 |
|
1 |
|
Рассмотренные алгоритмы ДПФ называются алгоритмами Кули-Тьюки по основанию два. По вычислительной эффективности они одинаковы. Существуют более эффективные алгоритмы ДПФ.
Применение БПФ для вычисления обратного дискретного преобразования Фурье (ОДПФ).
ОДПФ вычисляется по формуле:
(12)
Обозначим:
комплексно-сопряженное
с
комплексно-сопряженное
с
(13)
Можно заметить,
что сумма правой части в выражении (13)
– это прямое ДПФ последовательности
,
следовательно, она может быть вычислена
при помощи рассмотренных алгоритмов
БПФ.
(14)
Для исходной последовательности:
1. Нужно найти комплексно-сопряжённую последовательность
2. Для найденной комплексно-сопряжённой последовательности нужно вычислить БПФ.
3. Найти комплексно-сопряжённую последовательность с результатом БПФ.
4. Поделить результат на N.
Задачи:
1. Вычислить БПФ с прореживанием по времени.
При
При N=4
ОБПФ
2. Вычислить БПФ с использованием прореживания по частоте.
Пояснение к перестановкам
0 |
000 |
|
000 |
0 |
|
28 |
28 |
1 |
001 |
|
100 |
4 |
|
– 4 |
– 4 + j9,6 |
2 |
010 |
|
010 |
2 |
|
– 4 + j4 |
– 4 + j4 |
3 |
011 |
|
110 |
6 |
|
– 4 – j4 |
– 4 + j1,6 |
4 |
100 |
|
001 |
1 |
|
– 4 + j9,6 |
– 4 |
5 |
101 |
|
101 |
5 |
|
– 4 – j1,6 |
– 4 – j1,6 |
6 |
110 |
|
011 |
3 |
|
– 4 + j1,6 |
– 4 – j4 |
7 |
111 |
|
111 |
7 |
|
– 4 – j9,6 |
– 4 – j9,6 |