N |
4 |
128 |
1024 |
8192 |
КУВ |
4 |
35,6 |
205 |
1263 |
Не всегда удобно использовать БПФ, т. к. часто нас интересует не весь спектр, а только его часть, где мы ожидаем найти спектр сигнала, например, по результатам предварительных вычислений, то удобней использовать ДПФ.
Чаще всего эта процедура состоит из двух этапов: сначала вычисляется БПФ с небольшим числом отсчетов, и по результатам находят грубо положение максимума спектра. Затем в области этого максимума выполняется ДПФ с добавлением нулевых отсчетов к исходным отсчетам сигнала, чтобы улучшить детальность спектра.
Разновидности БПФ
Существует много вариантов БП каждый из которых имеет свой способ организации вычислений и позволяет получить дополнительный выигрыш в скорости вычислений для конкретной ситуации. В основе всех этих методов в основном лежит принцип разделения исходного N точечного ДПФ к вычислению нескольких ДПФ меньшей размерности. Самый простой вариант использование последовательности отсчетов, размерность которых определяется как . Это прореживание по частоте и прореживание по времени.
По эффективности оба этих метода эквивалентны и позволяют уменьшить число требуемых арифметических операций.
Алгоритм с прореживанием по частоте заключается в простом разделении сигнала пополам.
РИСУНОК СИГНАЛА
Каждый из этих массивов еще может делиться пополам (пока не будет по 2 отсчета)
Особенностью этих 2-х алгоритмов заключается в том, что когда мы делаем прореживание по отсчетам, мы должны переставить их в двоично-инверсном порядке, но отсчеты спектра получаются в естественном порядке. Если же мы делаем прореживание по частоте, то в результате расчета отсчеты спектра получаются в двоично-инверсном порядке, т.е. надо выполнить такую же перестановку.
Следующей разновидностью БПФ является алгоритм для произвольно составленного N . В этом случае ( - целые положительные числа) вычисление ДПФ (n – точечного) сводится к тому, что мы раз вычислим точечное ДПФ и затем раз вычислим точечное ДПФ.
Упростим выражение
Получим что
РИСУНОК ПРИМЕРА
Особенности практической реализации БПФ
Анализируя направленный граф БПФ можно выявить два аспекта:
1. доступ к данным и запоминание промежуточного результата
2. конкретный способ вычислений типа бабочка
Как правило, во всех алгоритмах БПФ вычисления выполняются с запоминанием промежуточного результата в тех же ячейках, что и исходный массив. Это делается для экономии памяти. Отсчеты спектра получаются в естественном порядке. Если нам не нужен естественный порядок, то эту перестановку можно не делать (использовать прореживание по частоте) т.к. в ряде задач требуется вычислить спектр, затем что-то с ним сделать, а потом сделать ОБПФ, чтобы получить отфильтрованный сигнал.
Другая особенность состоит в том, что при вычислении алгоритма бабочка мы должны каждый раз вычислять комплексный множитель . Его надо вычислять на каждом шаге или заранее рассчитывать и запоминать в виде таблицы.
- рекурсивная формула
Но необходимо помнить, что если мы используем вычисления с конечной точностью, то при итерационных вычислениях ошибка может нарастать. Во избежание этого надо использовать те точки, где функции известны.
Вычисление корреляционного интеграла на основе БПФ
Если , то , где - номер отсчета во время сдвига
В основе вычислений лежит теорема свертки:
если или , то получается в 10 раз лучше.
Для вычисления АКФ
- преобразование Винера-Хинчина
Использование БПФ для интерполяции функции времени
конечное число отсчетов дает ошибку.
1.
2. добавляем нули в
3. находим ОБПФ
, а
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.