FFT Utilities
FFT is used everywhere. Image, video, audio and biomedical signal processing, just to name a few. FFT is a very CPU-intensive transformation and everybody wants the fastest solution. It’s here.
The Superpowered FFT processes with the same speed as Apple’s vDSP. We don’t claim we’re faster (sometimes we do), but definitely not slower.
FFT by itself is not really useful when you need to work with magnitudes and phases (such as audio), not just complex numbers. In this case, you need Polar FFT.
We made it super convenient for you: just one call to do the whole transformation. And here is the big deal: the Superpowered Polar FFT is at least 2x faster than Apple’s vDSP.
FFTComplex
METHODComplex in-place FFT. Data packing is same as Apple's vDSP. Check the 'Using Fourier Transforms' page of Apple's vDSP documentation ('Data Packing for Real FFTs').ParametersReturnsName Type Description real Number (pointer in Linear Memory)
Real part. imag Number (pointer in Linear Memory)
Imaginary part. logSize Number
Should be between 4 and 12 (FFT sizes 16 - 4096). forward Boolean
Forward or inverse. NoneFFTComplex
METHODComplex in-place FFT. Data packing is same as Apple's vDSP. Check the 'Using Fourier Transforms' page of Apple's vDSP documentation ('Data Packing for Real FFTs').ParametersReturnsName Type Default Description real float *
Real part. imag float *
Imaginary part. logSize int
Should be between 4 and 12 (FFT sizes 16 - 4096). forward bool
Forward or inverse. NoneFFTReal
METHODReal in-place FFT. Data packing is same as Apple's vDSP. Check the 'Using Fourier Transforms' page of Apple's vDSP documentation ('Data Packing for Real FFTs').ParametersReturnsName Type Description real Number (pointer in Linear Memory)
Real part. imag Number (pointer in Linear Memory)
Imaginary part. logSize Number
Should be between 5 - 13 (FFT sizes 32 - 8192). forward Boolean
Forward or inverse. NoneFFTReal
METHODReal in-place FFT. Data packing is same as Apple's vDSP. Check the 'Using Fourier Transforms' page of Apple's vDSP documentation ('Data Packing for Real FFTs').ParametersReturnsName Type Default Description real float *
Real part. imag float *
Imaginary part. logSize int
Should be between 5 - 13 (FFT sizes 32 - 8192). forward bool
Forward or inverse. NonePolarFFT
METHODPolar FFT. Data packing is same as Apple's vDSP. Check the 'Using Fourier Transforms' page of Apple's vDSP documentation ('Data Packing for Real FFTs').ParametersReturnsName Type Description mag Number (pointer in Linear Memory)
Input: split real part. Output: magnitudes. phase Number (pointer in Linear Memory)
Input: split real part. Output: phases. logSize Number
Should be between 5 - 13 (FFT sizes 32 - 8192). forward Boolean
Forward or inverse. Inverse PolarFFT will clear (zero) the DC offset. valueOfPi Number
The function can translate pi to any value (Google: the tau manifesto). Use 0 for M_PI. NonePolarFFT
METHODPolar FFT. Data packing is same as Apple's vDSP. Check the 'Using Fourier Transforms' page of Apple's vDSP documentation ('Data Packing for Real FFTs').ParametersReturnsName Type Default Description mag float *
Input: split real part. Output: magnitudes. phase float *
Input: split real part. Output: phases. logSize int
Should be between 5 - 13 (FFT sizes 32 - 8192). forward bool
Forward or inverse. Inverse PolarFFT will clear (zero) the DC offset. valueOfPi float
0.0 The function can translate pi to any value (Google: the tau manifesto). Use 0 for M_PI. None