быстрое преобразование Фурье

Мне нужно умножить два многочлена, каждый из которых имеет малые интегральные коэффициенты. Мне нужна быстрая процедура FFT в C / C++, которая может их свернуть. Я видел несколько библиотек, но они кажутся слишком большими для нескольких файлов. Важно то, что мне нужен код, который не слишком длинный и может быть очень легко использован и скомпилирован в одном .

  1. FFT должен быть оптимизирован для реальных входных данных, по крайней мере, если не малые целые числа.
  2. реализация Radix 4 если бы слишком хорошо.
  3. компиляция не должна принимать специальных флагов компиляции, поскольку компиляция программы должна выполняться во внешней среде, которую я не могу контролировать.

тот, который очень хорошо соответствует моим потребностям, это здесь. Но мне нужно что-то в два раза быстрее.

3 ответов


для простой и простой в использовании реализации БПФ попробуйте KissFFT. Если вам нужна абсолютная максимальная производительность, и не возражаете против небольшой сложности, тогда это должно быть библиотека FFTW.


я адаптировала от этого пример на DspDimension для моих нужд в прошлом.


Я собрал некоторые из моих лучших результатов поиска, которые соответствуют или в основном соответствуют вопросу (C / C++ FFT), и я обычно организовывал их от простого до бесплатно добавлять или обновлять список.