FFTmtX

Performs vectorized FFT on multiple processors. New: single and double precision.
1.6K Downloads
Updated 20 Jul 2009

View License

This is an extension of the original FFTmt to perform single-precision fft as well as double-precision.

These mex-files perform vectorized FFT on multiple threads by breaking down the FFT of a large matrix into smaller parts. Each part can be performed in parallel, on a different core, for speed:

About 3x faster on a quad-core machine. Single precision is about 2x faster than double, so you can increase FFT speed up to 6x.

Also added: Drop-in replacements for fft.m and ifft.m that automatically choose between the builtin and multithreaded FFT depending on which will be fastest for a given matrix size. If you use these replacement mfiles, any code that calls FFT will benefit from multithreaded FFT. You won't have to change any other code to see the speed benefits.

Includes pre-built mexfiles for intel OS X, but source is included to easily build for other platforms. Also includes a variety of other support for building and debugging on OS X.

Based on the original FFTmt of Jerome Genest and Simon Potvin (jgenest@gel.ulaval.ca)

Cite As

John Iversen (2024). FFTmtX (https://www.mathworks.com/matlabcentral/fileexchange/16314-fftmtx), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2007a
Compatible with any release
Platform Compatibility
Windows macOS Linux
Categories
Find more on Fourier Analysis and Filtering in Help Center and MATLAB Answers
Tags Add Tags
Acknowledgements

Inspired by: FFTmt

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

FFTmtX_distribution_1.0_license_resubmit/Matlab/

FFTmtX_distribution_1.0_license_resubmit/Matlab/@double/

FFTmtX_distribution_1.0_license_resubmit/Matlab/@single/

FFTmtX_distribution_1.0_license_resubmit/performance tests/

Version Published Release Notes
1.2.0.0

Updated license information, omit fftw libraries, which are GNU