FFT

Fast Fourier Transform with an arbitrary number of samples.

Syntax

void FFT(
         XMVECTOR __restrict *pReal,
         XMVECTOR __restrict *pImaginary,
         const XMVECTOR __restrict *pUnityTable,
         const UINT32 uLength,
         const UINT32 uCount = 1
)  

Parameters

pReal
Type: XMVECTOR __restrict *

[in, out] Real components of the FFT. Must have as least (uLength × uCount) ÷ 4 elements.

pImaginary
Type: XMVECTOR __restrict *

[in, out] Imaginary components of the FFT. Must have at least (uLength × uCount) ÷ 4 elements.

pUnityTable
Type: XMVECTOR __restrict *

[in] Unity table the FFT should use. Must have at least uLength × uCount XMVECTORs. See FFTInitializeUnityTable for more information.

uLength
Type: UINT32 

[in] FFT length in samples. uLength must be a power of two and must be greater than 16.

uCount
Type: UINT32 

[in] Number of FFT iterations.

Return value

Type: void 

None.

Remarks

For FFTs with a number of samples less than or equal to 16 use FFT16, FFT8 or FFT4.

All buffer parameters must be 16-byte aligned. Audio data must be FLOAT32 mono.

Requirements

Header: Declared in XDSP.h.

Namespace: Use XDSP.

See also

XDSP Functions