|
ДПФ И БПФ, когда что применять... |
|
|
|
 |
Ответов
|
Nov 11 2009, 06:42
|
Знающий
   
Группа: Свой
Сообщений: 642
Регистрация: 15-11-07
Пользователь №: 32 353

|
вспомним, что гласит теория  БПФ - это "более быстрая" реализация БПФ, алгоритмически требуещая на своем входе и выходе некоего буфера для хранения данных во время своего вычисления (вычисление преобразования Фурье выполняется УЖЕ при наличии предварительно заполненного буфера). В случае, если вычисление спектра требуется постоянно (в режиме реального времени), выполняется с помощью ДПФ или процесс распараллеливается и используется не менее двух устройств, реализующих БПФ, выходы которых "склеиваются" (пока вычисляется первый, идет заполнение входного буфера второго). Я в своей цифровой практике сталкивался только с реализацией БПФ, ибо вопрос с буферной памятью в наше просвещенное время можно считать несущественным  P.S.: Усеченные алгоритмы - совсем другая песня, про нее можно писать много и лучше отдельно
--------------------
Правильно сформулированый вопрос содержит в себе половину ответа. P.S.: Некоторые модераторы в качестве ответа так навязчиво предлагают посетить свой сайт, что иначе как саморекламу такие действия интерпретировать сложно.
|
|
|
|
|
Nov 11 2009, 08:29
|

Участник

Группа: Validating
Сообщений: 22
Регистрация: 10-11-09
Пользователь №: 53 528

|
Цитата(eugen_pcad_ru @ Nov 11 2009, 15:42)  БПФ - это "более быстрая" реализация БПФ, алгоритмически требуещая на своем входе и выходе некоего буфера для хранения данных во время своего вычисления (вычисление преобразования Фурье выполняется УЖЕ при наличии предварительно заполненного буфера). В случае, если вычисление спектра требуется постоянно (в режиме реального времени), выполняется с помощью ДПФ... А не подскажете как как в режиме реального времени вычислять спектр с помощью ДПФ. Я считал что БПФ - это всего лишь частный случай ДПФ. Различие всего лишь в длине обрабатываемой последовательности N. Для FFT N является степенью двойки, а для ДПФ любая. И там и там надо где-то иметь уже накопленные N символов. Или я чего-то не понимаю?
|
|
|
|
|
Nov 11 2009, 08:37
|

Эксперт
    
Группа: Свой
Сообщений: 1 467
Регистрация: 25-06-04
Пользователь №: 183

|
Цитата(EvgenyV @ Nov 11 2009, 11:29)  А не подскажете как как в режиме реального времени вычислять спектр с помощью ДПФ. Я считал что БПФ - это всего лишь частный случай ДПФ. Различие всего лишь в длине обрабатываемой последовательности N. Для FFT N является степенью двойки, а для ДПФ любая. И там и там надо где-то иметь уже накопленные N символов. Или я чего-то не понимаю?  БПФ и есть быстрая реалиация ДПФ (даже не частный случай). БПФ существует не только для степени двойки. БПФ существует для любого N составленого из большого числа множителей (http://sonder.ru/content/view/480/32/). Просто в практических приложениях часто все гармоники не нужны. Мы заранее знаем область своего интереса. Для обычного ДПФ эффективность вычислений при этом повышается пропорционально. А для быстрых преобразований (БПФ) усечённые алгоритмы хоть тоже существуют, но выигрыш их по производительности мал и проявляется только при значительном уменьшении числа гармоник: в двое, в четверо,... в 128 раз. Ничего выиграть в БПФ от ненужности вычислять 35% гармоник нельзя Короче, отвечая на первоначальный вопрос можно сказать так: ДПФ используется только когда - или число гармоник мало, поскольку мало число входных отсчётов N - или число гармоник мало, поскольку нас интересуют не все гармоники N, а только некоторые Во всех остальных случаях БПФ предпочтителен. Поскольку в ошибках округления он уступает не очень, а для случая простого N тоже есть способы перейти к составному. В конце концов просто добавить несколько нулевых отсчётов...
|
|
|
|
|
Nov 11 2009, 09:53
|

Эксперт
    
Группа: Свой
Сообщений: 1 467
Регистрация: 25-06-04
Пользователь №: 183

|
Цитата(Oldring @ Nov 11 2009, 12:45)  Про эти алгоритмы знают уже далеко не все. Поэтому когда написано "БПФ", можно подразумевать, что автор имел в виду Кули-Тьюки. Это так. Но это не важно. Большое к-во множителей в N (в том числе кратных двоек) даёт возможность построить БПФ. Хотя действительно, даже это не обязательно. Главное чтобы матрица преобразования факторизовалась в произведение прореженых матриц Походу тут и реализация попалась БПФ для произвольного N. Enjoy! Только не забывайте, что не все N одинаково полезны )) http://alglib.sources.ru/fasttransforms/fft.php
|
|
|
|
Сообщений в этой теме
TigerSHARC ДПФ И БПФ Nov 10 2009, 17:42 fontp Цитата(TigerSHARC @ Nov 10 2009, 20:42) З... Nov 10 2009, 17:49 V_G Есть мнение, что БПФ становится более эффективным ... Nov 11 2009, 00:07 fontp Цитата(V_G @ Nov 11 2009, 03:07) Есть мне... Nov 11 2009, 08:17 bahurin Цитата(TigerSHARC @ Nov 10 2009, 20:42) З... Nov 11 2009, 04:47 анатолий Бывают случаи, что главный период сигнала нельзя р... Nov 13 2009, 09:36 bahurin Цитата(анатолий @ Nov 13 2009, 12:36) Быв... Nov 13 2009, 11:45  fontp Цитата(bahurin @ Nov 13 2009, 14:45) И чт... Nov 13 2009, 12:06   анатолий Цитата(fontp @ Nov 13 2009, 15:06) что хо... Nov 13 2009, 13:00    fontp Цитата(анатолий @ Nov 13 2009, 16:00) Име... Nov 13 2009, 13:14     АНТОН КОЗЛОВ Цитата(fontp @ Nov 13 2009, 16:14) ... Nov 14 2009, 06:52
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|