Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Самое быстрое преобразование Фурье на Западе ( FFTW ) - это программная библиотека для вычисления дискретных преобразований Фурье (ДПФ), разработанная Маттео Фриго и Стивеном Джонсоном из Массачусетского технологического института . [1] [2] [3]

FFTW известен как самая быстрая бесплатная программная реализация быстрого преобразования Фурье (FFT) (подтвержденная регулярными тестами [4] ). Как и многие другие реализации, он может вычислять преобразования реальных и комплексных массивов произвольного размера и размерности за время O ( n  log  n ).

Библиотека [ править ]

FFTW быстро преобразует данные, поддерживая множество алгоритмов и выбирая тот (конкретное разложение преобразования на более мелкие преобразования), который он оценивает или измеряет, как предпочтительный в конкретных обстоятельствах. Он лучше всего работает с массивами размеров с небольшими простыми множителями , причем степени двойки являются оптимальными, а большие простые числа - наихудшим случаем (но все же O ( n log n )). Чтобы разложить преобразования составных размеров на более мелкие преобразования, он выбирает один из нескольких вариантов алгоритма БПФ Кули-Тьюки(соответствует разным факторизациям и / или различным шаблонам доступа к памяти), а для простых размеров он использует алгоритм БПФ Рейдера или Блустейна . [1] После того, как преобразование было разбито на частичные преобразования достаточно малых размеров, FFTW использует жестко закодированные развернутые БПФ для этих небольших размеров, которые были созданы (во время компиляции , а не во время выполнения ) генерацией кода ; эти процедуры используют множество алгоритмов, включая варианты Кули – Тьюки, алгоритм Рейдера и алгоритмы БПФ с простым множителем . [1]

Для достаточно большого количества повторяющихся преобразований полезно измерить производительность некоторых или всех поддерживаемых алгоритмов на заданном размере массива и платформе . Эти измерения, которые авторы называют «мудростью», могут быть сохранены в файле или строке для дальнейшего использования.

У FFTW есть «интерфейс гуру», который намеревается «максимально раскрыть гибкость базовой архитектуры FFTW». Это позволяет, среди прочего, выполнять многомерные преобразования и множественные преобразования в одном вызове (например, когда данные чередуются в памяти).

FFTW имеет ограниченную поддержку неупорядоченных преобразований (с использованием версии интерфейса передачи сообщений (MPI)). Данные изменения порядка несет накладные расходы, которые для в месте преобразований произвольного размера и размерности является нетривиальным , чтобы избежать. Недокументировано, для каких преобразований значительны эти накладные расходы.

FFTW находится под лицензией GNU General Public License . Он также имеет коммерческую лицензию (по цене до 12 500 долларов США) MIT [5] и используется в коммерческом пакете матриц MATLAB [6] для вычисления БПФ. FFTW написан на языке C , но существуют интерфейсы Fortran и Ada , а также интерфейсы для нескольких других языков. Хотя сама библиотека genfftнаписана на языке C, код на самом деле создается из программы с именем ' ', написанной на OCaml . [7]

В 1999 г. FFTW выиграла премию Дж. Х. Уилкинсона в области программного обеспечения для числовых вычислений .

См. Также [ править ]

  • FFTPACK

Ссылки [ править ]

  1. ^ a b c Фриго М., Джонсон С.Г. (февраль 2005 г.). «Дизайн и реализация FFTW3» (PDF) . Труды IEEE . 93 (2): 216–231. CiteSeerX  10.1.1.66.3097 . DOI : 10.1109 / JPROC.2004.840301 .
  2. ^ Frigo M, Johnson SG (1998). FFTW: адаптивная программная архитектура для БПФ . Труды Международной конференции IEEE 1998 г. по акустике, речи и обработке сигналов . 3 . С. 1381–1384. CiteSeerX 10.1.1.47.8661 . DOI : 10.1109 / ICASSP.1998.681704 . ISBN  978-0-7803-4428-0.
  3. ^ Johnson SG, Frigo M (сентябрь 2008). «Глава 11: Реализация БПФ на практике» . В CS Burrus (ред.). Быстрые преобразования Фурье . Хьюстон, Техас: Связи: Университет Райса.
  4. ^ Домашняя страница, второй абзац [1] и страница тестов [2]
  5. ^ "View Technologies | MIT Technology Licensing Office" .
  6. ^ Более быстрые конечные преобразования Фурье: MATLAB 6 включает FFTW
  7. ^ "Часто задаваемые вопросы о FFTW"

Внешние ссылки [ править ]

  • Официальный веб-сайт