Real-valued FFT context.
More...
#include <fft.hpp>
|
| | RealFFT (size_t length) |
| | ~RealFFT () |
| void | rfftUnordered (const float *input, float *output) |
| | Performs the real FFT.
|
| void | irfftUnordered (const float *input, float *output) |
| | Performs the inverse real FFT.
|
| void | rfft (const float *input, float *output) |
| | Slower than the above methods, but returns results in the "canonical" FFT order as follows.
|
| void | irfft (const float *input, float *output) |
| void | scale (float *x) |
| | Scales the RFFT so that scale(IFFT(FFT(x))) = x.
|
Real-valued FFT context.
Wrapper for PFFFT length must be a multiple of 32. Buffers must be aligned to 16-byte boundaries. new[] and malloc() do this for you.
◆ RealFFT()
| rack::dsp::RealFFT::RealFFT |
( |
size_t | length | ) |
|
|
inline |
◆ ~RealFFT()
| rack::dsp::RealFFT::~RealFFT |
( |
| ) |
|
|
inline |
◆ rfftUnordered()
| void rack::dsp::RealFFT::rfftUnordered |
( |
const float * | input, |
|
|
float * | output ) |
|
inline |
Performs the real FFT.
Input and output must be aligned using the above align*() functions. Input and output arrays may overlap. Input is length elements. Output is 2*length elements. Output is arbitrarily ordered for performance reasons. However, this ordering is consistent, so element-wise multiplication with line up with other results, and the inverse FFT will return a correctly ordered result.
◆ irfftUnordered()
| void rack::dsp::RealFFT::irfftUnordered |
( |
const float * | input, |
|
|
float * | output ) |
|
inline |
Performs the inverse real FFT.
Input is 2*length elements. Output is length elements. Scaling is such that IRFFT(RFFT(x)) = N*x.
◆ rfft()
| void rack::dsp::RealFFT::rfft |
( |
const float * | input, |
|
|
float * | output ) |
|
inline |
Slower than the above methods, but returns results in the "canonical" FFT order as follows.
output[0] = F(0) output[1] = F(n/2) output[2] = real(F(1)) output[3] = imag(F(1)) output[4] = real(F(2)) output[5] = imag(F(2)) ... output[length - 2] = real(F(n/2 - 1)) output[length - 1] = imag(F(n/2 - 1))
◆ irfft()
| void rack::dsp::RealFFT::irfft |
( |
const float * | input, |
|
|
float * | output ) |
|
inline |
◆ scale()
| void rack::dsp::RealFFT::scale |
( |
float * | x | ) |
|
|
inline |
Scales the RFFT so that scale(IFFT(FFT(x))) = x.
◆ setup
| PFFFT_Setup* rack::dsp::RealFFT::setup |
◆ length
| int rack::dsp::RealFFT::length |
The documentation for this struct was generated from the following file:
- /home/vortico/src/vcv/Rack2/include/dsp/fft.hpp