Function

vDSP_fft_zropt(_:_:_:_:_:_:_:_:)

Computes an out-of-place single-precision real discrete Fourier transform, either from the time domain to the frequency domain (forward) or from the frequency domain to the time domain (inverse).

Declaration

func vDSP_fft_zropt(_ __Setup: FFTSetup, _ __A: UnsafePointer<DSPSplitComplex>, _ __IA: vDSP_Stride, _ __C: UnsafePointer<DSPSplitComplex>, _ __IC: vDSP_Stride, _ __Buffer: UnsafePointer<DSPSplitComplex>, _ __Log2N: vDSP_Length, _ __Direction: FFTDirection)

Parameters

__Setup

Points to a structure initialized by a prior call to the FFT setup data function, vDSP_create_fftsetup. The value supplied as parameter Log2n of the setup function must equal or exceed the value supplied as parameter Log2N of this transform function.

__A

Complex input vector.

__IA

Stride between elements in A. The value of IA should be 1 for best performance.

__C

Complex output vector.

__IC

Stride between elements in C. The value of IC should be 1 for best performance.

__Buffer

A temporary vector used for storing interim results. The minimum size of temporary memory for each part (real and imaginary) is N/2 elements (where N is 2 raised to Log2N). For best performance, the buffer addresses should be 16-byte aligned or better.

__Log2N

The base 2 exponent of the number of elements to process. For example, to process 1024 elements, specify 10 for parameter Log2N.

__Direction

A forward/inverse directional flag, which must specify kFFTDirection_Forward (+1) or kFFTDirection_Inverse (-1).

Discussion

This performs the following operation:

mathematical formula

where F is direction, C is A, and N is two raised to the power of Log2N.

Forward transforms read real input and write packed complex output. Inverse transforms read packed complex input and write real output. As a result of packing the frequency-domain data, time-domain data and its equivalent frequency-domain data have the same storage requirements. You can find more details on the packing format in vDSP Programming Guide in vDSP Programming Guide.

See also functions vDSP_create_fftsetup and vDSP_destroy_fftsetup.

See Also

1D Fast Fourier Transforms (Out-of-Place Real)

func vDSP_fft_zrop(FFTSetup, UnsafePointer<DSPSplitComplex>, vDSP_Stride, UnsafePointer<DSPSplitComplex>, vDSP_Stride, vDSP_Length, FFTDirection)

Computes an out-of-place single-precision real discrete Fourier transform, either from the time domain to the frequency domain (forward) or from the frequency domain to the time domain (inverse).

func vDSP_fft_zropD(FFTSetupD, UnsafePointer<DSPDoubleSplitComplex>, vDSP_Stride, UnsafePointer<DSPDoubleSplitComplex>, vDSP_Stride, vDSP_Length, FFTDirection)

Computes an out-of-place double-precision real discrete Fourier transform, either from the time domain to the frequency domain (forward) or from the frequency domain to the time domain (inverse).

func vDSP_fft_zroptD(FFTSetupD, UnsafePointer<DSPDoubleSplitComplex>, vDSP_Stride, UnsafePointer<DSPDoubleSplitComplex>, vDSP_Stride, UnsafePointer<DSPDoubleSplitComplex>, vDSP_Length, FFTDirection)

Computes an out-of-place double-precision real discrete Fourier transform, either from the time domain to the frequency domain (forward) or from the frequency domain to the time domain (inverse).