реклама на сайте
подробности

 
 
> модификации БПФ, выбор
TigerSHARC
сообщение Dec 20 2009, 12:59
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 688
Регистрация: 4-09-09
Пользователь №: 52 195



В литературе фигурируют несколько вариантов исполнения алгоритма БПФ:
Кули - Тьюки, Винограда, Блюштейна...
Есть ли практический смысл в анализе их реализации и конкретном выборе оптимального алгоритма для конкретной задачи.
Читаю у С.Смита, что все варианты БПФ дают приблизительно одинаковый выигрышь в производительности и, как я понял, особо заморачиваться нестоит...
(тем более, если честь что большинство библиотек для DSP написаны для Кули-Тьюки)
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
fontp
сообщение Dec 20 2009, 15:36
Сообщение #2


Эксперт
*****

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



Цитата(TigerSHARC @ Dec 20 2009, 15:59) *
В литературе фигурируют несколько вариантов исполнения алгоритма БПФ:
Кули - Тьюки, Винограда, Блюштейна...
Есть ли практический смысл в анализе их реализации и конкретном выборе оптимального алгоритма для конкретной задачи.
Читаю у С.Смита, что все варианты БПФ дают приблизительно одинаковый выигрышь в производительности и, как я понял, особо заморачиваться нестоит...
(тем более, если честь что большинство библиотек для DSP написаны для Кули-Тьюки)


При программной реализации - да, если только не требуется по каким-то причинам конкретное N, а не ближайшее к нему 2**log(N)
При аппаратной реализации алгоритм Винограда может оказаться более выгодным за счет снижения кол-ва умножений, т.е. при нессиметричности затрат на сложение и умножение Кули-Тьюки не оптимален

Вот что говорится о конкретной реализации для "произвольного N"
http://forum.sources.ru/index.php?showtopic=273153&st=0
* максимум быстродействия для степеней двойки; все дальнейшие случаи сравниваются с этим
* для N вида (2^i)*(3^j)*(5^k) - медленнее раза в полтора; впрочем, это отличие скорее всего будет уменьшено при помощи оптимизации
* для N с простыми множителями, большими пятерки, но значительно меньшими N, раза в три-четыре медленнее, но всё равно N*log(N); это уже не поддается оптимизации
* если само N - простое, то раз в шесть медленнее, но всё равно N*log(N); это тоже не поддается оптимизации

Алгоритм Томаса-Гуда для N составленого из взаимно простых множителей 2.3.5.7... не уступит Кули-Тьюки по быстродействию и структурно более прост. Но это неудобно, составлять N только из простых множителей
Go to the top of the page
 
+Quote Post
SPACUM
сообщение Dec 20 2009, 21:43
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 161
Регистрация: 22-06-09
Из: Москва
Пользователь №: 50 531



Цитата(fontp @ Dec 20 2009, 18:36) *
При аппаратной реализации алгоритм Винограда может оказаться более выгодным за счет снижения кол-ва умножений, т.е. при нессиметричности затрат на сложение и умножение Кули-Тьюки не оптимален

Только для програмной реализации плавающей точки и ненамного, а для фиксированной - медленнее. Аппаратное умножение почти везде очень быстрое. Я всегда рекомендую 1000 - 2000 - 5000 - 10000 точек. Выигрыш по скорости менее, чем в 2 раза, несравним с удобством читать временные и частотные шкалы в круглых и приятных для глаза единицах. Несколько раз встречал явный отказ по причине советских ГОСТов, в которых указана степень двойки. А по поводу российских стандартов только статьи в газетах. Может кто-нибудь знает какой-нибудь РОСТ со свободной длиной выборки для БПФ? Еще неназван самый быстрый алгоритм - для реальных выборок. Впрочем Кули - Тьюки запросто потянет вычисление сразу двух реальных выборок сразу. И, наконец, в случае жестокого ограничения разрядности Кули - Тьюки и реальный дают существенное преимущество по точности по сравнению с Виноградом. У Меня в 5 раз.


--------------------
Ты можешь знать все что угодно, но пока ты не доказал это на практике, ты не знаешь ничего!© Ричард Бах
Go to the top of the page
 
+Quote Post
AndrewN
сообщение Dec 21 2009, 03:35
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 336
Регистрация: 7-03-07
Из: Петербург
Пользователь №: 25 961



Цитата(SPACUM @ Dec 21 2009, 00:43) *
Кули - Тьюки запросто потянет вычисление сразу двух реальных выборок сразу. И, наконец, в случае жестокого ограничения разрядности Кули - Тьюки и реальный дают существенное преимущество по точности по сравнению с Виноградом. У Меня в 5 раз.

За счёт какого-такого вычислительного свойства? Все, абсолютно все, разновидности цифровых алгоритмов вычисления ДПФ привносят совершенно одинаковую погрешность в результат. И было бы странно, если бы погрешности менялись от алгоритма к алгоритму. ДПФ - это умножение (N,N) матрицы на вектор длиной N, что соответственно требует N скалярных произведений. Скалярное произведение длины N имеет совершенно определённую оценку погрешности.

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

А "в случае жестокого ограничения разрядности" точности, как таковой, вообще не остаётся...

И почему только К-Т "потянет вычисление сразу двух реальных выборок"? Любой другой (быстрый/небыстрый) алгоритм ДПФ сделает тоже самое.

Писать ГОСТЫ на ДПФ - отличный способ делать деньги из ничего. Интересно, кто этим занимается?..
Go to the top of the page
 
+Quote Post
SPACUM
сообщение Dec 21 2009, 09:54
Сообщение #5


Частый гость
**

Группа: Участник
Сообщений: 161
Регистрация: 22-06-09
Из: Москва
Пользователь №: 50 531



<А "в случае жестокого ограничения разрядности" точности, как таковой, вообще не остаётся...>

Не настаиваю, у всех по-разному. Но какую-то разрядность применить придется (наши процессоры не резиновые). Все-таки думаю что-нибудь останется и для 16 бит в современных DSP и для 24 бит при вычислениях с плавающей точкой и для 32 бит (около -160 dB). И 8 бит примнеяется для Гигагерцовых АЦП + программируемая логика. Методы не при чем, разрядность вычислений рождает погрешность. А Винограда Я очень даже люблю и всем советую, но только для выборок кратных 10 (для них и погрешность будет около -148 dB).


<Писать ГОСТЫ на ДПФ - отличный способ делать деньги из ничего. Интересно, кто этим занимается?..>

ГОСТы пишутся не на ДПФ а на способы оценки определенных физических параметров в еще более определенных областях и очень хорошо, если там упомянуто БПФ, иначе вообще только аналоговые приборы. Вобщем ГОСТы нужны, иначе получится "А я вчера пальцем трогал и не шарахнуло, так вы чо пристаете?".

С остальными замечаниями согласен.


--------------------
Ты можешь знать все что угодно, но пока ты не доказал это на практике, ты не знаешь ничего!© Ричард Бах
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- TigerSHARC   модификации БПФ   Dec 20 2009, 12:59
|- - fontp   Цитата(AndrewN @ Dec 21 2009, 06:35) За с...   Dec 21 2009, 08:36
- - анатолий   Кули-Тьюки по основанию 2 пойдет почти во всех слу...   Dec 21 2009, 09:04
- - TigerSHARC   Господа, а как вы отнесётесь к такому, недавно про...   Dec 21 2009, 14:26
|- - fontp   Цитата(TigerSHARC @ Dec 21 2009, 17:26) Г...   Dec 21 2009, 14:36
- - TigerSHARC   Так это реально или нет? На практике применяется?   Dec 21 2009, 15:25
- - thermit   ЦитатаTigerSHARC: Так это реально или нет? На прак...   Dec 21 2009, 15:31
- - TigerSHARC   нет ли у кого ссылки на какой-нибудь документ, или...   Dec 21 2009, 15:57
- - thermit   ЦитатаTigerSHARC: нет ли у кого ссылки на какой-ни...   Dec 21 2009, 16:48
- - TigerSHARC   спасибо! Но в моих источниках упоминается, чт...   Dec 21 2009, 19:13
|- - SPACUM   Цитата(TigerSHARC @ Dec 21 2009, 22:13) с...   Dec 21 2009, 22:22
- - thermit   ЦитатаTigerSHARC: Но в моих источниках упоминается...   Dec 22 2009, 07:51


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th July 2025 - 18:13
Рейтинг@Mail.ru


Страница сгенерированна за 0.01393 секунд с 7
ELECTRONIX ©2004-2016