This function applies a 2N-sample Fast Fourier Transform, and unswizzles the result such that the samples are in order of increasing frequency. Audio is first deinterleaved if it is multichannel.
void FFTInterleaved(
XMVECTOR __restrict *pReal,
XMVECTOR __restrict *pImaginary,
const XMVECTOR __restrict *pUnityTable,
const size_t uChannelCount,
const size_t uLog2Length
)
pReal
Type: XMVECTOR __restrict *
[in, out] Real components of the FFT. Must have as least (1 << uLog2Length × uChannelCount) ÷ 4 elements.
pImaginary
Type: XMVECTOR __restrict *
[out] Imaginary components of the FFT. Must have at least (1 << uLog2Length × uChannelCount) ÷ 4 elements.
pUnityTable
Type: XMVECTOR __restrict *
[in] Unity table the FFT should use. Must have at least (1 << uLog2Length) elements. See FFTInitializeUnityTable for more information.
uChannelCount
Type: size_t
[in] Number of channels in the FFT. uChannelCount must be within [1,6].
uLog2Length
Type: size_t
[in] Log (base 2) of FFT length in frames. uLog2Length must be within [2, 9].
Type: void
Header: Declared in XDSP.h.
Namespace: Use XDSP.