Om
1.0.0
A universal framework for multimedia simulation
|
A class that implements a fast fourier transform for a specific power-of-two FFT size. More...
#include <omFFT.h>
Public Member Functions | |
FFT (Size fftSize) | |
Create a new FFT with the specified power-of-two size. More... | |
FFT (const FFT &other) | |
Create a copy of another FFT. More... | |
~FFT () | |
Destroy this FFT and release internal data. More... | |
FFT & | operator= (const FFT &other) |
Assign the state of another FFT object to this one. More... | |
Size | getSize () const |
Return the buffer size of this FFT. More... | |
void | fft (Complex< Float32 > *inOut, Complex< Float32 > *workspace=((void *) 0)) const |
Convert N complex values to N complex values using the forward transform. More... | |
void | ifft (Complex< Float32 > *inOut, Complex< Float32 > *workspace=((void *) 0)) const |
Convert N complex values to N complex values using the reverse transform. More... | |
void | fft (Float32 *inOut, Float32 *workspace=((void *) 0)) const |
Convert N real float values to N/2+1 complex values in place. More... | |
void | fft (const Float32 *input, Complex< Float32 > *output, Float32 *workspace=((void *) 0)) const |
Convert N real float values to N/2+1 complex values. More... | |
void | ifft (Float32 *inOut, Float32 *workspace=((void *) 0)) const |
Convert N/2+1 complex values to N real float values in place. More... | |
void | ifft (const Complex< Float32 > *input, Float32 *output, Float32 *workspace=((void *) 0)) const |
Convert N/2+1 complex values to N real float values. More... | |
void | fftUnordered (Float32 *inOut, Float32 *workspace=((void *) 0)) const |
Convert N real float values to N/2+1 complex values in place. More... | |
void | ifftUnordered (Float32 *inOut, Float32 *workspace=((void *) 0)) const |
Convert N/2+1 complex values to N real float values in place. More... | |
void | multiplyAddUnordered (Complex< Float32 > *destination, const Complex< Float32 > *a, const Complex< Float32 > *b) const |
Multiply add of N/2+1 unordered complex frequency-domain values. More... | |
A class that implements a fast fourier transform for a specific power-of-two FFT size.
om::math::FFT::FFT | ( | Size | fftSize | ) |
Create a new FFT with the specified power-of-two size.
If the provided size is not a power of two, it is rounded up to the next largest power of two.
om::math::FFT::~FFT | ( | ) |
Destroy this FFT and release internal data.
Assign the state of another FFT object to this one.
|
inline |
Return the buffer size of this FFT.
This value is usually restricted to a power of two.
void om::math::FFT::fft | ( | Complex< Float32 > * | inOut, |
Complex< Float32 > * | workspace = ((void *) 0) |
||
) | const |
Convert N complex values to N complex values using the forward transform.
void om::math::FFT::ifft | ( | Complex< Float32 > * | inOut, |
Complex< Float32 > * | workspace = ((void *) 0) |
||
) | const |
Convert N complex values to N complex values using the reverse transform.
Convert N real float values to N/2+1 complex values in place.
void om::math::FFT::fft | ( | const Float32 * | input, |
Complex< Float32 > * | output, | ||
Float32 * | workspace = ((void *) 0) |
||
) | const |
Convert N real float values to N/2+1 complex values.
Convert N/2+1 complex values to N real float values in place.
void om::math::FFT::ifft | ( | const Complex< Float32 > * | input, |
Float32 * | output, | ||
Float32 * | workspace = ((void *) 0) |
||
) | const |
Convert N/2+1 complex values to N real float values.
Convert N real float values to N/2+1 complex values in place.
The output sequence of complex values does not have the standard ordering from low to high frequency. Instead, it has the order prior to the bit reversal permutation. This is somewhat faster than the standard ordered version.
Convert N/2+1 complex values to N real float values in place.
The input sequence of complex values does not have the standard ordering from low to high frequency. Instead, it has the order prior to the bit reversal permutation. This is somewhat faster than the standard ordered version.
void om::math::FFT::multiplyAddUnordered | ( | Complex< Float32 > * | destination, |
const Complex< Float32 > * | a, | ||
const Complex< Float32 > * | b | ||
) | const |
Multiply add of N/2+1 unordered complex frequency-domain values.
This function multiplys two array of complex values and adds the result to the destination array. The complex values are assumed to have the same ordering as the values returned by the fftUnordered method.