psilogic: (pingpong)
psilogic ([personal profile] psilogic) wrote2006-08-02 01:04 am

Быстрое преобразование Фурье (халява)

Все-таки Википедия рулит. Надыбал там то, о чем давно мечтал:
математические выкладки, позволяющие делать преобразование Фурье за время порядка N log(N). Причем, для произвольного N, а не только для степени двойки.

Поковырявшись с ними, поразбиравшись, пооптимизировав, родил описалово, как, что и почему, а главное - файлец на C++ с готовым работающим модулем, который не требует никаких специальных библиотек.

http://psi-logic.shadanakar.org/fft/fftf.htm

Можете юзать - ибо халява :)

[identity profile] odinokov.livejournal.com 2006-08-01 09:41 pm (UTC)(link)
а паскакалем не замутишь? 8)

[identity profile] psilogic.livejournal.com 2006-08-01 09:52 pm (UTC)(link)
Паскаль ацтой! :o)))
*смущенно* Да и забыл я яго нафик :)

[identity profile] odinokov.livejournal.com 2006-08-01 09:54 pm (UTC)(link)
ох...
а мне ему ещё детишек учить8))

[identity profile] psilogic.livejournal.com 2006-08-01 10:36 pm (UTC)(link)
Надо же: паскаль почти умер, а детишек ему все еще учат...

[identity profile] nazarovsky.livejournal.com 2006-08-01 11:09 pm (UTC)(link)
дык это.. а готовую БПФ процедуру использовать и нулями добить до степени двойки религия мешает? :)

[identity profile] ex-neo-is-fl156.livejournal.com 2006-08-02 12:41 am (UTC)(link)
У меня где-то валялось на паскале. Могу посмотреть, если надо.

P.S. FYI: Счастливые читатели Д. Кнута "Искусство Программирования" т.3. могли реализовывать FFT за O(NlogN) ещё задолго до того, как Википедия появилась на свет ;)

[identity profile] cybister.livejournal.com 2006-08-02 03:19 am (UTC)(link)
Я тож забыл, но далеко не отстой.
Недвано девушка мне сказала что ей потнесли си-ди со скринсеверами,
и там мой скринсевер (кажися фигуры лисажу в3д... что-то типа).
Под винду ! 4.5кб !!!
На Борланд паскакале. (На турбо кажись при навешивании соответствующих либ тоже пахало).Такие вот пирожки.
Если нужно - поищу, где-то валялось.

В порядке саморекламы...

[identity profile] sanitareugen.livejournal.com 2006-08-02 05:27 am (UTC)(link)
dsp-book.narod.ru

[identity profile] vorobioff.livejournal.com 2006-08-02 06:30 am (UTC)(link)
Куда я попал???

Re: В порядке саморекламы...

[identity profile] psilogic.livejournal.com 2006-08-02 07:09 am (UTC)(link)
Твою мать!!!!!!!!!!!!!!!!!
Как давно я искал что-нибудь эдакое!!!!!!!!!!

[identity profile] psilogic.livejournal.com 2006-08-02 07:13 am (UTC)(link)
Только для числа отсчетов, равного степени двойки. Знаменитый алгоритм Кули-Тьюки. Здесь не о нем.

[identity profile] psilogic.livejournal.com 2006-08-02 07:17 am (UTC)(link)
Если добить нулями до степени двойки, то в спектре получится бордель, а не только те частоты, которые формировали исходный сигнал. :) Попытка синтезировать длительный сигнал суммированием синусоид из полученного набора частот приведет к тому, что будет периодически возникать тишина в том месте, где забиты нули.

[identity profile] psilogic.livejournal.com 2006-08-02 07:17 am (UTC)(link)
На процедурку...

Рад быть полезен...

[identity profile] sanitareugen.livejournal.com 2006-08-02 07:26 am (UTC)(link)
Существуют зеркала, но я давно не отслеживаю, увы...

[identity profile] sanitareugen.livejournal.com 2006-08-02 07:31 am (UTC)(link)
Поищите ещё Винограда.
Есть в Гольденберг, Матюшкин, Поляк. "Цифровая обработка сигналов".

[identity profile] sanitareugen.livejournal.com 2006-08-02 07:32 am (UTC)(link)
Но если пытаться синтезировать при ровно правильном количестве точек - тоже может ничего хорошего не выйти...

Дельфи живы...

[identity profile] sanitareugen.livejournal.com 2006-08-02 07:32 am (UTC)(link)
А это Object Pascal + кое-что ещё...

[identity profile] ex-neo-is-fl156.livejournal.com 2006-08-02 07:57 am (UTC)(link)
Да, не обратил внимание вначале.
Тогда это действительно ценно. Спасибо.

У меня к Вам два вопроса (чисто из любопытства)

1. Для какого приложения Вы заинтересовались FFT в данный момент?

2. Что означает слово "freeware", написанное Вами в исходниках - это в смысле GPL / Open Source, или в смысле "делайте что хотите бесплатно" (в т.ч. можно копирайтить derived code, зарабатывать миллиарды, используя этот код, ни копейки Вам не заплатив, и т.п.)?

[identity profile] metaclass.livejournal.com 2006-08-02 08:09 am (UTC)(link)
в 9 строке fft.cpp #include без имени файла.

[identity profile] metaclass.livejournal.com 2006-08-02 08:09 am (UTC)(link)
math.h что ли?

[identity profile] metaclass.livejournal.com 2006-08-02 08:16 am (UTC)(link)
В ипостали Object Pascal/Delphi он еще долго существовать будет. На нем написано достаточно немаленькое количество всяких учетных и около того систем, в основном заказных.

[identity profile] psilogic.livejournal.com 2006-08-02 08:29 am (UTC)(link)
Кстати, заглянул в 3-й том и увидел, что вы меня наипали. Не видно там вообще упоминания Фурье. Разве что я плохо искал.

[identity profile] nazarovsky.livejournal.com 2006-08-02 08:29 am (UTC)(link)
Я вроде думал, что в результате добивания "нулями" спектр просто интерполируется на дополнительные точки, и никакого борделя там быть не может...

Re: Дельфи живы...

[identity profile] psilogic.livejournal.com 2006-08-02 08:31 am (UTC)(link)
Не знаю, не знаю... после того, как Борланд стал подыхать, дельфи как-то тоже стали резко терять популярность...

[identity profile] psilogic.livejournal.com 2006-08-02 08:31 am (UTC)(link)
То, что уже написано - да, но как насчет новых программ? Детишкам ведь это будет в 1 очередь важно.

Page 1 of 3