Apple Developer Connection
Member Login Log In | Not a Member? Contact ADC

Next Page > Hide TOC

vDSP One-Dimensional Fast Fourier Transforms Reference

Framework
Accelerate/vecLib
Declared in
vDSP.h

Overview

Describes the C API for the functionality for one-dimensional Fast Fourier Transforms in vecLib.

Functions by Task

Creating and Freeing FFT Setups

Computing In-Place Complex FFTs

Computing Out-of-Place Complex FFTs

Computing In-Place Real FFTs

Computing Out-of-Place Real FFTs

Functions

vDSP_create_fftsetup

Builds a data structure that contains precalculated data for use by single-precision FFT functions.

   FFTSetup vDSP_create_fftsetup (vDSP_Length log2n, FFTRadix radix);

Parameters
log2n

A base 2 exponent that represents the number of divisions of the complex unit circle and thus specifies the largest power of two that can be processed by a subsequent frequency-domain function. Parameter log2n must equal or exceed the largest power of 2 that any subsequent function processes using the weights array.

radix

Specifies radix options. Radix 2, radix 3, and radix 5 functions are supported.

Return Value

Returns an FFTSetup structure for use with FFT functions, or returns 0 if there was an error.

Discussion

This function allocates memory for an FFTSetup data structure needed by FFT functions, initializes that memory, and then returns it. Once prepared, the setup structure can be used repeatedly by FFT functions (which read the data in the structure and do not alter it) for any (power of two) length up to that specified when you created the structure.

If an application performs FFTs with diverse lengths, the calls with different lengths can share a single setup structure (created for the longest length), and this saves space over having multiple structures. However, in some cases, notably single-precision FFTs on 32-bit PowerPC, an FFT routine may perform faster if it is passed a setup structure that was created specifically for the length of the transform.

Parameter log2n is a base-two exponent and specifies that the largest transform length that can processed using the resulting setup structure is 2**log2n (or 3*2**log2n or 5*2**log2n if the appropriate flags are passed, as discussed below). That is, the log2n parameter must equal or exceed the value passed to any subsequent FFT routine using the setup structure returned by this routine.

Parameter radix specifies radix options. Its value may be the bitwise OR of any combination of FFT_RADIX2, FFT_RADIX3, or FFT_RADIX5. The resulting setup structure may be used with any of the routines for which the respective flag was used. (The radix-3 and radix-5 FFT routines have "fft3" and "fft5" in their names. The radix-2 FFT routines have plain "fft" in their names.)

If zero is returned, the routine failed to allocate storage.

The setup structure is deallocated by calling vDSP_destroy_fftsetup.

Use vDSP_create_fftsetup during initialization. It is relatively slow compared to the routines that actually perform FFTs. Never use it in a part of an application that needs to be high performance.

Availability
Declared In
vDSP.h

vDSP_create_fftsetupD

Builds a data structure that contains precalculated data for use by double-precision FFT functions.

   FFTSetupD vDSP_create_fftsetupD (vDSP_Length log2n, FFTRadix radix);

Parameters
log2n

A base 2 exponent that represents the number of divisions of the complex unit circle and thus specifies the largest power of two that can be processed by a subsequent frequency-domain function. Parameter log2n must equal or exceed the largest power of 2 that any subsequent function processes using the weights array.

radix

Specifies radix options. Radix 2, radix 3, and radix 5 functions are supported.

Return Value

Returns an FFTSetupD structure for use with FFT functions, or 0 if there was an error.

Discussion

This function allocates memory for an FFTSetup data structure needed by FFT functions, initializes that memory, and then returns it. Once prepared, the setup structure can be used repeatedly by FFT functions (which read the data in the structure and do not alter it) for any (power of two) length up to that specified when you created the structure.

If an application performs FFTs with diverse lengths, the calls with different lengths can share a single setup structure (created for the longest length), and this saves space over having multiple structures. However, in some cases, notably single-precision FFTs on 32-bit PowerPC, an FFT routine may perform faster if it is passed a setup structure that was created specifically for the length of the transform.

Parameter log2n is a base-two exponent and specifies that the largest transform length that can processed using the resulting setup structure is 2**log2n (or 3*2**log2n or 5*2**log2n if the appropriate flags are passed, as discussed below). That is, the log2n parameter must equal or exceed the value passed to any subsequent FFT routine using the setup structure returned by this routine.

Parameter radix specifies radix options. Its value may be the bitwise OR of any combination of FFT_RADIX2, FFT_RADIX3, or FFT_RADIX5. The resulting setup structure may be used with any of the routines for which the respective flag was used. (The radix-3 and radix-5 FFT routines have "fft3" and "fft5" in their names. The radix-2 FFT routines have plain "fft" in their names.)

If zero is returned, the routine failed to allocate storage.

The setup structure is deallocated by calling vDSP_destroy_fftsetupD.

Use vDSP_create_fftsetup during initialization. It is relatively slow compared to the routines that actually perform FFTs. Never use it in a part of an application that needs to be high performance.

Availability
Declared In
vDSP.h

vDSP_destroy_fftsetup

Frees an existing single-precision FFT data structure.

   void vDSP_destroy_fftsetup (FFTSetup setup);

Parameters
setup

Identifies the weights array, and must point to a data structure previously created by vDSP_create_fftsetup

Discussion

vDSP_destroy_fftsetup frees an existing weights array. Any memory allocated for the array is released. After the vDSP_destroy_fftsetup function returns, the structure is no longer valid and cannot be passed to any subsequent frequency-domain functions.

When forecasting memory requirements for building a weights array, keep in mind that this function generate complex numbers.

Availability
Declared In
vDSP.h

vDSP_destroy_fftsetupD

Frees an existing double-precision FFT data structure.

   void vDSP_destroy_fftsetupD (FFTSetupD setup);

Parameters
setup

Identifies the weights array, and must point to a data structure previously created by vDSP_create_fftsetupD.

Discussion

vDSP_destroy_fftsetupD frees an existing weights array. Any memory allocated for the array is released. After the vDSP_destroy_fftsetupD function returns, the structure is no longer valid and cannot be passed to any subsequent frequency-domain functions.

When forecasting memory requirements for building a weights array, keep in mind that this function generate complex numbers.

Availability
Declared In
vDSP.h

vDSP_fft3_zop

Computes an out-of-place radix-3 complex Fourier transform, either forward or inverse. The number of input and output values processed equals 3 times the power of 2 specified by parameter log2n; single precision.

   void vDSP_fft3_zop (FFTSetup setup,
   DSPSplitComplex * signal,
   vDSP_Stride signalStride,
   DSPSplitComplex * result,
   vDSP_Stride resultStride,
   vDSP_Length log2n,
   FFTDirection flag);

Parameters
setup

Use vDSP_create_fftsetup, to initialize this function. FFT_RADIX3 must be specified in the call to vDSP_create_fftsetup . setup is preserved for reuse.

signal

A complex vector signal input.

signalStride

Specifies an address stride through the input vector signal. To process every element of the vector, specify 1 for parameter signalStride; to process every other element, specify 2. The value of signalStride should be 1 for best performance.

result

The complex vector signal output.

resultStride

Specifies an address stride for the result. The value of resultStride should be 1 for best performance.

log2n

The base 2 exponent of the number of elements to process in a single input signal. log2n must be between 3 and 15, inclusive.

flag

A forward/inverse directional flag, which must specify FFT_FORWARD for a forward transform or FFT_INVERSE for an inverse transform.

Results are undefined for other values of flag.

Discussion

This performs the operation


mathematical formula

See also the FFT Limitations sections in the Target chapters of the Developer's Guide.

See also functions “vDSP_create_fftsetup,” “vDSP_create_fftsetupD,” “vDSP_destroy_fftsetup,” “vDSP_destroy_fftsetupD,” and Chapter 2, "Using Fourier Transforms."

Availability
Declared In
vDSP.h

vDSP_fft3_zopD

Computes an out-of-place radix-3 complex Fourier transform, either forward or inverse. The number of input and output values processed equals 3 times the power of 2 specified by parameter log2n; double precision.

   void vDSP_fft3_zopD (FFTSetupD setup,
   DSPDoubleSplitComplex * ioData,
   vDSP_Stride K,
   DSPDoubleSplitComplex * ioData2,
   vDSP_Stride L,
   vDSP_Length log2n,
   FFTDirection flag);

Parameters
setup

Use vDSP_create_fftsetup, to initialize this function. FFT_RADIX3 must be specified in the call to vDSP_create_fftsetup . setup is preserved for reuse.

ioData

A complex vector input.

K

Specifies an address stride through the input vector signal. To process every element of the vector, specify 1 for parameter K; to process every other element, specify 2. The value of K should be 1 for best performance.

ioData2

The complex vector result.

L

Specifies an address stride for the result. The value of L should be 1 for best performance.

log2n

The base 2 exponent of the number of elements to process in a single input signal. log2n must be between 3 and 15, inclusive.

flag

A forward/inverse directional flag, which must specify FFT_FORWARD for a forward transform or FFT_INVERSE for an inverse transform.

Results are undefined for other values of flag.

Discussion

This performs the operation


mathematical formula

See also the FFT Limitations sections in the Target chapters of the Developer's Guide.

See also functions “vDSP_create_fftsetup,” “vDSP_create_fftsetupD,” “vDSP_destroy_fftsetup,” “vDSP_destroy_fftsetupD,” and Chapter 2, "Using Fourier Transforms."

Availability
Declared In
vDSP.h

vDSP_fft5_zop

Computes an out-of-place radix-5 complex Fourier transform, either forward or inverse. The number of input and output values processed equals 5 times the power of 2 specified by parameter log2n; single precision.

   void vDSP_fft5_zop (FFTSetup setup,
   DSPSplitComplex * signal,
   vDSP_Stride signalStride,
   DSPSplitComplex * result,
   vDSP_Stride resultStride,
   vDSP_Length log2n,
   FFTDirection flag);

Parameters
setup

Use vDSP_create_fftsetup, to initialize this function. FFT_RADIX5 must be specified in the call to vDSP_create_fftsetup. setup is preserved for reuse.

signal

A complex vector signal input.

signalStride

Specifies an address stride through the input vector signal. To process every element of the vector, specify 1 for parameter signalStride; to process every other element, specify 2. The value of signalStride should be 1 for best performance.

result

The complex vector signal output.

resultStride

Specifies an address stride for the result. The value of resultStride should be 1 for best performance.

log2n

The base 2 exponent of the number of elements to process in a single input signal. log2n must be between 3 and 15, inclusive.

flag

A forward/inverse directional flag, which must specify FFT_FORWARD for a forward transform or FFT_INVERSE for an inverse transform.

Results are undefined for other values of flag.

Discussion

This performs the operation


mathematical formula

See also the FFT Limitations sections in the Target chapters of the Developer's Guide.

See also functions “vDSP_create_fftsetup,” “vDSP_create_fftsetupD,” “vDSP_destroy_fftsetup,” “vDSP_destroy_fftsetupD,” and Chapter 2, "Using Fourier Transforms."

Availability
Declared In
vDSP.h

vDSP_fft5_zopD

Computes an out-of-place radix-5 complex Fourier transform, either forward or inverse. The number of input and output values processed equals 5 times the power of 2 specified by parameter log2n; double precision.

   void vDSP_fft5_zopD (FFTSetupD setup,
   DSPDoubleSplitComplex * ioData,
   vDSP_Stride K,
   DSPDoubleSplitComplex * ioData2,
   vDSP_Stride L,
   vDSP_Length log2n,
   FFTDirection flag);
   

Parameters
setup

Use vDSP_create_fftsetupD, to initialize this function. FFT_RADIX5 must be specified in the call to vDSP_create_fftsetupD. setup is preserved for reuse.

ioData

A complex vector input.

K

Specifies an address stride through the input vector signal. To process every element of the vector, specify 1 for parameter K; to process every other element, specify 2. The value of K should be 1 for best performance.

ioData2

The complex vector result.

L

Specifies an address stride for the result. The value of L should be 1 for best performance.

log2n

The base 2 exponent of the number of elements to process in a single input signal. log2n must be between 3 and 15, inclusive.

flag

A forward/inverse directional flag, which must specify FFT_FORWARD for a forward transform or FFT_INVERSE for an inverse transform.

Results are undefined for other values of flag.

Discussion

This performs the operation


mathematical formula

See also the FFT Limitations sections in the Target chapters of the Developer's Guide.

See also functions “vDSP_create_fftsetup,” “vDSP_create_fftsetupD,” “vDSP_destroy_fftsetup,” “vDSP_destroy_fftsetupD,” and Chapter 2, "Using Fourier Transforms."

Availability
Declared In
vDSP.h

vDSP_fftm_zip

Performs the same operation as VDSP_fft_zip on multiple signals with a single call.

   void vDSP_fftm_zip (FFTSetup setup,
   DSPSplitComplex * signal,
   vDSP_Stride signalStride,
   vDSP_Stride fftStride,
   vDSP_Length log2n,
   vDSP_Length numFFT,
   FFTDirection flag);

Parameters
setup

Points to a structure initialized by a prior call to the FFT weights array function vDSP_create_fftsetup or vDSP_create_fftsetupD.The value supplied as parameter log2n of the earlier call to the setup function must equal or exceed the value supplied as parameter log2n of the transform function.

signal

A complex vector signal input.

signalStride

Specifies an address stride through the input signals. To process every element of each signal, specify 1 for parameter signalStride; to process every other element, specify 2. The value of signalStride should be 1 for best performance.

fftStride

The number of elements between the first element of one input signal and the first element of the next (which is also to length of each input signal, measured in elements).

log2n

The base 2 exponent of the number of elements to process in a single input signal. For example, to process 512 elements, specify 9 for parameter log2n. The value of log2n must be between 2 and 12, inclusive.

numFFT

The number of different input signals.

flag

A forward/inverse directional flag, which must specify FFT_FORWARD for a forward transform or FFT_INVERSE for an inverse transform.

Results are undefined for other values of flag.

Discussion

The functions allow you to perform Fourier transforms on a number of different input signals at once, using a single call. They can be used for efficient processing of small input signals (less than 512 points). They will work for input signals of 4 points or greater. Each of the input signals processed by a given call must have the same length and address stride. The input signals are concatenated into a single input/output vector, the parameter signal.

The functions compute in-place complex discrete Fourier transforms of the input signals, either from the time domain to the frequency domain (forward) or from the frequency domain to the time domain (inverse).

See also functions “vDSP_create_fftsetup,” “vDSP_create_fftsetupD,” “vDSP_destroy_fftsetup,” “vDSP_destroy_fftsetupD,” and Chapter 2, "Using Fourier Transforms."

Availability
Declared In
vDSP.h

vDSP_fftm_zipD

Performs the same operation as VDSP_fft_zipD on multiple signals with a single call.

   void vDSP_fftm_zipD (FFTSetupD setup,
   DSPDoubleSplitComplex * signal,
   vDSP_Stride signalStride,
   vDSP_Stride fftStride,
   vDSP_Length log2n,
   vDSP_Length numFFT,
   FFTDirection flag);

Parameters
setup

Points to a structure initialized by a prior call to the FFT weights array function vDSP_create_fftsetup or vDSP_create_fftsetupD.The value supplied as parameter log2n of the earlier call to the setup function must equal or exceed the value supplied as parameter log2n of the transform function.

signal

A complex vector signal input.

signalStride

Specifies an address stride through the input signals. To process every element of each signal, specify 1 for parameter signalStride; to process every other element, specify 2. The value of signalStride should be 1 for best performance.

fftStride

The number of elements between the first element of one input signal and the first element of the next (which is also to length of each input signal, measured in elements).

log2n

The base 2 exponent of the number of elements to process in a single input signal. For example, to process 512 elements, specify 9 for parameter log2n. The value of log2n must be between 2 and 12, inclusive.

numFFT

The number of different input signals.

flag

A forward/inverse directional flag, which must specify FFT_FORWARD for a forward transform or FFT_INVERSE for an inverse transform.

Results are undefined for other values of flag.

Discussion

The function allows you to perform Fourier transforms on a number of different input signals at once, using a single call. It can be used for efficient processing of small input signals (less than 512 points). It will work for input signals of 4 points or greater. Each of the input signals processed by a given call must have the same length and address stride. The input signals are concatenated into a single input/output vector, the parameter signal.

The function computes in-place complex discrete Fourier transforms of the input signals, either from the time domain to the frequency domain (forward) or from the frequency domain to the time domain (inverse).

See also functions “vDSP_create_fftsetup,” “vDSP_create_fftsetupD,” “vDSP_destroy_fftsetup,” “vDSP_destroy_fftsetupD,” and Chapter 2, "Using Fourier Transforms."

Availability
Declared In
vDSP.h

vDSP_fftm_zipt

Performs the same operation as VDSP_fft_zipt on multiple signals with a single call.

   void vDSP_fftm_zipt (FFTSetup setup,
   DSPSplitComplex * signal,
   vDSP_Stride signalStride,
   vDSP_Stride fftStride,
   DSPSplitComplex * temp,
   vDSP_Length log2n,
   vDSP_Length numFFT,
   FFTDirection flag);

Parameters
setup

Points to a structure initialized by a prior call to the FFT weights array function vDSP_create_fftsetup or vDSP_create_fftsetupD.The value supplied as parameter log2n of the earlier call to the setup function must equal or exceed the value supplied as parameter log2n of the transform function.

signal

A complex vector signal input.

signalStride

Specifies an address stride through the input signals. To process every element of each signal, specify 1 for parameter signalStride; to process every other element, specify 2. The value of signalStride should be 1 for best performance.

fftStride

The number of elements between the first element of one input signal and the first element of the next (which is also to length of each input signal, measured in elements).

temp

A temporary vector used for storing interim results. The size of temporary memory for each part (real and imaginary) is the lower value of 4*n or 16k for best performance. Or you can simply pass the buffer of size 2^(log2n) for each part (real and imaginary). If possible, temp.realp and temp.imagp should be 32-byte aligned for best performance.

log2n

The base 2 exponent of the number of elements to process in a single input signal. For example, to process 512 elements, specify 9 for parameter log2n. The value of log2n must be between 2 and 12, inclusive.

numFFT

The number of different input signals.

flag

A forward/inverse directional flag, which must specify FFT_FORWARD for a forward transform or FFT_INVERSE for an inverse transform.

Results are undefined for other values of flag.

Discussion

The function allows you to perform Fourier transforms on a number of different input signals at once, using a single call. It can be used for efficient processing of small input signals (less than 512 points). It will work for input signals of 4 points or greater. Each of the input signals processed by a given call must have the same length and address stride. The input signals are concatenated into a single input/output vector, the parameter signal.

The function computes in-place complex discrete Fourier transforms of the input signals, either from the time domain to the frequency domain (forward) or from the frequency domain to the time domain (inverse).

See also functions “vDSP_create_fftsetup,” “vDSP_create_fftsetupD,” “vDSP_destroy_fftsetup,” “vDSP_destroy_fftsetupD,” and Chapter 2, "Using Fourier Transforms."

Availability
Declared In
vDSP.h

vDSP_fftm_ziptD

Performs the same operation as VDSP_fft_ziptD on multiple signals with a single call.

   void vDSP_fftm_ziptD (FFTSetupD setup,
   DSPDoubleSplitComplex * signal,
   vDSP_Stride signalStride,
   vDSP_Stride fftStride,
   DSPDoubleSplitComplex * temp,
   vDSP_Length log2n,
   vDSP_Length numFFT,
   FFTDirection flag);
   

Parameters
setup

Points to a structure initialized by a prior call to the FFT weights array function vDSP_create_fftsetup or vDSP_create_fftsetupD.The value supplied as parameter log2n of the earlier call to the setup function must equal or exceed the value supplied as parameter log2n of the transform function.

signal

A complex vector signal input.

signalStride

Specifies an address stride through the input signals. To process every element of each signal, specify 1 for parameter signalStride; to process every other element, specify 2. The value of signalStride should be 1 for best performance.

fftStride

The number of elements between the first element of one input signal and the first element of the next (which is also to length of each input signal, measured in elements).

temp

A temporary vector used for storing interim results. The size of temporary memory for each part (real and imaginary) is the lower value of 4*n or 16k for best performance. Or you can simply pass the buffer of size 2^(log2n) for each part (real and imaginary). If possible, temp.realp and temp.imagp should be 32-byte aligned for best performance.

log2n

The base 2 exponent of the number of elements to process in a single input signal. For example, to process 512 elements, specify 9 for parameter log2n. The value of log2n must be between 2 and 12, inclusive.

numFFT

The number of different input signals.

flag

A forward/inverse directional flag, which must specify FFT_FORWARD for a forward transform or FFT_INVERSE for an inverse transform.

Results are undefined for other values of flag.

Discussion

The function allows you to perform Fourier transforms on a number of different input signals at once, using a single call. It can be used for efficient processing of small input signals (less than 512 points). It will work for input signals of 4 points or greater. Each of the input signals processed by a given call must have the same length and address stride. The input signals are concatenated into a single input/output vector, the parameter signal.

The function computes in-place complex discrete Fourier transforms of the input signals, either from the time domain to the frequency domain (forward) or from the frequency domain to the time domain (inverse).

See also functions “vDSP_create_fftsetup,” “vDSP_create_fftsetupD,” “vDSP_destroy_fftsetup,” “vDSP_destroy_fftsetupD,” and Chapter 2, "Using Fourier Transforms."

Availability
Declared In
vDSP.h

vDSP_fftm_zop

Performs the same operation as VDSP_fft_zop on multiple signals with a single call.

   void vDSP_fftm_zop (FFTSetup setup,
   DSPSplitComplex * signal,
   vDSP_Stride signalStride,
   vDSP_Stride fftStride,
   DSPSplitComplex * result,
   vDSP_Stride resultStride,
   vDSP_Stride rfftStride,
   vDSP_Length log2n,
   vDSP_Length numFFT,
   FFTDirection flag);

Parameters
setup

Points to a structure initialized by a prior call to the FFT weights array function vDSP_create_fftsetup or vDSP_create_fftsetupD.The value supplied as parameter log2n of the earlier call to the setup function must equal or exceed the value supplied as parameter log2n of the transform function.

signal

A complex vector signal input.

signalStride

Specifies an address stride through the input signals. To process every element of each signal, specify 1 for parameter signalStride; to process every other element, specify 2. The value of signalStride should be 1 for best performance.

fftStride

The number of elements between the first element of one input signal and the first element of the next (which is also to length of each input signal, measured in elements).

result

The complex vector signal output.

resultStride

Specifies an address stride through output vector result. Thus, to process every element, specify a stride of 1; to process every other element, specify 2. The value of resultStride should be 1 for best performance.

rfftStride

The number of elements between the first element of one result vector and the next in the output vector result.

log2n

The base 2 exponent of the number of elements to process in a single input signal. For example, to process 512 elements, specify 9 for parameter log2n. The value of log2n must be between 2 and 12, inclusive.

numFFT

The number of different input signals.

flag

A forward/inverse directional flag, which must specify FFT_FORWARD for a forward transform or FFT_INVERSE for an inverse transform.

Results are undefined for other values of flag.

Discussion

The function allows you to perform Fourier transforms on a number of different input signals at once, using a single call. It can be used for efficient processing of small input signals (less than 512 points). It will work for input signals of 4 points or greater. Each of the input signals processed by a given call must have the same length and address stride. The input signals are concatenated into a single input/output vector, the parameter signal.

The function computes out-of-place complex discrete Fourier transforms of the input signals, either from the time domain to the frequency domain (forward) or from the frequency domain to the time domain (inverse).

See also functions “vDSP_create_fftsetup,” “vDSP_create_fftsetupD,” “vDSP_destroy_fftsetup,” “vDSP_destroy_fftsetupD,” and Chapter 2, "Using Fourier Transforms."

Availability
Declared In
vDSP.h

vDSP_fftm_zopD

Performs the same operation as VDSP_fft_zopD on multiple signals with a single call.

   void vDSP_fftm_zopD (FFTSetupD setup,
   DSPDoubleSplitComplex * signal,
   vDSP_Stride signalStride,
   vDSP_Stride fftStride,
   DSPDoubleSplitComplex * result,
   vDSP_Stride resultStride,
   vDSP_Stride rfftStride,
   vDSP_Length log2n,
   vDSP_Length numFFT,
   FFTDirection flag);

Parameters
setup

Points to a structure initialized by a prior call to the FFT weights array function vDSP_create_fftsetup or vDSP_create_fftsetupD.The value supplied as parameter log2n of the earlier call to the setup function must equal or exceed the value supplied as parameter log2n of the transform function.

signal

A complex vector signal input.

signalStride

Specifies an address stride through the input signals. To process every element of each signal, specify 1 for parameter signalStride; to process every other element, specify 2. The value of signalStride should be 1 for best performance.

fftStride

The number of elements between the first element of one input signal and the first element of the next (which is also to length of each input signal, measured in elements).

result

The complex vector signal output.

resultStride

Specifies an address stride through output vector result. Thus, to process every element, specify a stride of 1; to process every other element, specify 2. The value of resultStride should be 1 for best performance.

rfftStride

The number of elements between the first element of one result vector and the next in the output vector result.

log2n

The base 2 exponent of the number of elements to process in a single input signal. For example, to process 512 elements, specify 9 for parameter log2n. The value of log2n must be between 2 and 12, inclusive.

numFFT

The number of different input signals.

flag

A forward/inverse directional flag, which must specify FFT_FORWARD for a forward transform or FFT_INVERSE for an inverse transform.

Results are undefined for other values of flag.

Discussion

The function allows you to perform Fourier transforms on a number of different input signals at once, using a single call. It can be used for efficient processing of small input signals (less than 512 points). It will work for input signals of 4 points or greater. Each of the input signals processed by a given call must have the same length and address stride. The input signals are concatenated into a single input/output vector, the parameter signal.

The function computes out-of-place complex discrete Fourier transforms of the input signals, either from the time domain to the frequency domain (forward) or from the frequency domain to the time domain (inverse).

See also functions “vDSP_create_fftsetup,” “vDSP_create_fftsetupD,” “vDSP_destroy_fftsetup,” “vDSP_destroy_fftsetupD,” and Chapter 2, "Using Fourier Transforms."

Availability
Declared In
vDSP.h

vDSP_fftm_zopt

Performs the same operation as VDSP_fft_zopt on multiple signals with a single call.

   void vDSP_fftm_zopt (FFTSetup setup,
   DSPSplitComplex * signal,
   vDSP_Stride signalStride,
   vDSP_Stride fftStride,
   DSPSplitComplex * result,
   vDSP_Stride resultStride,
   vDSP_Stride rfftStride,
   DSPSplitComplex * temp,
   vDSP_Length log2n,
   vDSP_Length numFFT,
   FFTDirection flag);

Parameters
setup

Points to a structure initialized by a prior call to the FFT weights array function vDSP_create_fftsetup or vDSP_create_fftsetupD.The value supplied as parameter log2n of the earlier call to the setup function must equal or exceed the value supplied as parameter log2n of the transform function.

signal

A complex vector signal input.

signalStride

Specifies an address stride through the input signals. To process every element of each signal, specify 1 for parameter signalStride; to process every other element, specify 2. The value of signalStride should be 1 for best performance.

fftStride

The number of elements between the first element of one input signal and the first element of the next (which is also to length of each input signal, measured in elements).

result

The complex vector signal output.

resultStride

Specifies an address stride through output vector result. Thus, to process every element, specify a stride of 1; to process every other element, specify 2. The value of resultStride should be 1 for best performance.

rfftStride

The number of elements between the first element of one result vector and the next in the output vector result.

temp

A temporary vector used for storing interim results. The size of temporary memory for each part (real and imaginary) is the lower value of 4*n or 16k for best performance. Or you can simply pass the buffer of size 2^(log2n) for each part (real and imaginary). If possible, temp.realp and temp.imagp should be 32-byte aligned for best performance.

log2n

The base 2 exponent of the number of elements to process in a single input signal. For example, to process 512 elements, specify 9 for parameter log2n. The value of log2n must be between 2 and 12, inclusive.

numFFT

The number of different input signals.

flag

A forward/inverse directional flag, which must specify FFT_FORWARD for a forward transform or FFT_INVERSE for an inverse transform.

Results are undefined for other values of flag.

Discussion

The function allows you to perform Fourier transforms on a number of different input signals at once, using a single call. It can be used for efficient processing of small input signals (less than 512 points). It will work for input signals of 4 points or greater. Each of the input signals processed by a given call must have the same length and address stride. The input signals are concatenated into a single input/output vector, the parameter signal.

The function computes out-of-place complex discrete Fourier transforms of the input signals, either from the time domain to the frequency domain (forward) or from the frequency domain to the time domain (inverse).

See also functions “vDSP_create_fftsetup,” “vDSP_create_fftsetupD,” “vDSP_destroy_fftsetup,” “vDSP_destroy_fftsetupD,” and Chapter 2, "Using Fourier Transforms."

Availability
Declared In
vDSP.h

vDSP_fftm_zoptD

Performs the same operation as VDSP_fft_zoptD on multiple signals with a single call.

   void vDSP_fftm_zoptD (FFTSetupD setup,
   DSPDoubleSplitComplex * signal,
   vDSP_Stride signalStride,
   vDSP_Stride fftStride,
   DSPDoubleSplitComplex * result,
   vDSP_Stride resultStride,
   vDSP_Stride rfftStride,
   DSPDoubleSplitComplex * temp,
   vDSP_Length log2n,
   vDSP_Length numFFT,
   FFTDirection flag);

Parameters
setup

Points to a structure initialized by a prior call to the FFT weights array function vDSP_create_fftsetup or vDSP_create_fftsetupD.The value supplied as parameter log2n of the earlier call to the setup function must equal or exceed the value supplied as parameter log2n of the transform function.

signal

A complex vector signal input.

signalStride

Specifies an address stride through the input signals. To process every element of each signal, specify 1 for parameter signalStride; to process every other element, specify 2. The value of signalStride should be 1 for best performance.

fftStride

The number of elements between the first element of one input signal and the first element of the next (which is also to length of each input signal, measured in elements).

result

The complex vector signal output.

resultStride

Specifies an address stride through output vector result. Thus, to process every element, specify a stride of 1; to process every other element, specify 2. The value of resultStride should be 1 for best performance.

rfftStride

The number of elements between the first element of one result vector and the next in the output vector result.

temp

A temporary vector used for storing interim results. The size of temporary memory for each part (real and imaginary) is the lower value of 4*n or 16k for best performance. Or you can simply pass the buffer of size 2^(log2n) for each part (real and imaginary). If possible, temp.realp and temp.imagp should be 32-byte aligned for best performance.

log2n

The base 2 exponent of the number of elements to process in a single input signal. For example, to process 512 elements, specify 9 for parameter log2n. The value of log2n must be between 2 and 12, inclusive.

numFFT

The number of different input signals.

flag

A forward/inverse directional flag, which must specify FFT_FORWARD for a forward transform or FFT_INVERSE for an inverse transform.

Results are undefined for other values of flag.

Discussion

The function allows you to perform Fourier transforms on a number of different input signals at once, using a single call. It can be used for efficient processing of small input signals (less than 512 points). It will work for input signals of 4 points or greater. Each of the input signals processed by a given call must have the same length and address stride. The input signals are concatenated into a single input/output vector, the parameter signal.

The function computes out-of-place complex discrete Fourier transforms of the input signals, either from the time domain to the frequency domain (forward) or from the frequency domain to the time domain (inverse).

See also functions “vDSP_create_fftsetup,” “vDSP_create_fftsetupD,” “vDSP_destroy_fftsetup,” “vDSP_destroy_fftsetupD,” and Chapter 2, "Using Fourier Transforms."

Availability
Declared In
vDSP.h

vDSP_fftm_zrip

Performs the same operation as VDSP_fft_zrip on multiple signals with a single call.

   void vDSP_fftm_zrip (FFTSetup setup,
   DSPSplitComplex * signal,
   vDSP_Stride signalStride,
   vDSP_Stride fftStride,
   vDSP_Length log2n,
   vDSP_Length numFFT,
   FFTDirection flag);

Parameters
setup

Points to a structure initialized by a prior call to the FFT weights array function vDSP_create_fftsetup or vDSP_create_fftsetupD.The value supplied as parameter log2n of the earlier call to the setup function must equal or exceed the value supplied as parameter log2n of the transform function.

signal

A complex vector signal input.

signalStride

Specifies an address stride through the input signals. To process every element of each signal, specify 1 for parameter signalStride; to process every other element, specify 2. The value of signalStride should be 1 for best performance.

fftStride

The number of elements between the first element of one input signal and the first element of the next (which is also to length of each input signal, measured in elements).

log2n

The base 2 exponent of the number of elements to process in a single input signal. For example, to process 512 elements, specify 9 for parameter log2n. The value of log2n must be between 3 and 12, inclusive.

numFFT

The number of different input signals.

flag

A forward/inverse directional flag, which must specify FFT_FORWARD for a forward transform or FFT_INVERSE for an inverse transform.

Results are undefined for other values of flag.

Discussion

The functions allow you to perform Fourier transforms on a number of different input signals at once, using a single call. They can be used for efficient processing of small input signals (less than 512 points). They will work for input signals of 4 points or greater. Each of the input signals processed by a given call must have the same length and address stride. The input signals are concatenated into a single input/output vector, the parameter signal.

The functions compute in-place real discrete Fourier transforms of the input signals, either from the time domain to the frequency domain (forward) or from the frequency domain to the time domain (inverse).

See also functions “vDSP_create_fftsetup,” “vDSP_create_fftsetupD,” “vDSP_destroy_fftsetup,” “vDSP_destroy_fftsetupD,” and Chapter 2, "Using Fourier Transforms."

Availability
Declared In
vDSP.h

vDSP_fftm_zripD

Performs the same operation as VDSP_fft_zripD on multiple signals with a single call.

   void vDSP_fftm_zripD (FFTSetupD setup,
   DSPDoubleSplitComplex * signal,
   vDSP_Stride signalStride,
   vDSP_Stride fftStride,
   vDSP_Length log2n,
   vDSP_Length numFFT,
   FFTDirection flag);

Parameters
setup

Points to a structure initialized by a prior call to the FFT weights array function vDSP_create_fftsetup or vDSP_create_fftsetupD.The value supplied as parameter log2n of the earlier call to the setup function must equal or exceed the value supplied as parameter log2n of the transform function.

signal

A complex vector signal input.

signalStride

Specifies an address stride through the input signals. To process every element of each signal, specify 1 for parameter signalStride; to process every other element, specify 2. The value of signalStride should be 1 for best performance.

fftStride

The number of elements between the first element of one input signal and the first element of the next (which is also to length of each input signal, measured in elements).

log2n

The base 2 exponent of the number of elements to process in a single input signal. For example, to process 512 elements, specify 9 for parameter log2n. The value of log2n must be between 3 and 12, inclusive.

numFFT

The number of different input signals.

flag

A forward/inverse directional flag, which must specify FFT_FORWARD for a forward transform or FFT_INVERSE for an inverse transform.

Results are undefined for other values of flag.

Discussion

The functions allow you to perform Fourier transforms on a number of different input signals at once, using a single call. They can be used for efficient processing of small input signals (less than 512 points). They will work for input signals of 4 points or greater. Each of the input signals processed by a given call must have the same length and address stride. The input signals are concatenated into a single input/output vector, the parameter signal.

The functions compute in-place real discrete Fourier transforms of the input signals, either from the time domain to the frequency domain (forward) or from the frequency domain to the time domain (inverse).

See also functions “vDSP_create_fftsetup,” “vDSP_create_fftsetupD,” “vDSP_destroy_fftsetup,” “vDSP_destroy_fftsetupD,” and Chapter 2, "Using Fourier Transforms."

Availability
Declared In
vDSP.h

vDSP_fftm_zript

Performs the same operation as VDSP_fft_zript on multiple signals with a single call.

   void vDSP_fftm_zript (FFTSetup setup,
   DSPSplitComplex * signal,
   vDSP_Stride signalStride,
   vDSP_Stride fftStride,
   DSPSplitComplex * temp,
   vDSP_Length log2n,
   vDSP_Length numFFT,
   FFTDirection flag);

Parameters
setup

Points to a structure initialized by a prior call to the FFT weights array function vDSP_create_fftsetup or vDSP_create_fftsetupD.The value supplied as parameter log2n of the earlier call to the setup function must equal or exceed the value supplied as parameter log2n of the transform function.

signal

A complex vector signal input.

signalStride

Specifies an address stride through the input signals. To process every element of each signal, specify 1 for parameter signalStride; to process every other element, specify 2. The value of signalStride should be 1 for best performance.

fftStride

The number of elements between the first element of one input signal and the first element of the next (which is also to length of each input signal, measured in elements).

temp

A temporary vector used for storing interim results. The size of temporary memory for each part (real and imaginary) is the lower value of 4*n or 16k for best performance. Or you can simply pass the buffer of size 2^(log2n) for each part (real and imaginary). If possible, temp.realp and temp.imagp should be 32-byte aligned for best performance.

log2n

The base 2 exponent of the number of elements to process in a single input signal. For example, to process 512 elements, specify 9 for parameter log2n. The value of log2n must be between 3 and 12, inclusive.

numFFT

The number of different input signals.

flag

A forward/inverse directional flag, which must specify FFT_FORWARD for a forward transform or FFT_INVERSE for an inverse transform.

Results are undefined for other values of flag.

Discussion

The functions allow you to perform Fourier transforms on a number of different input signals at once, using a single call. They can be used for efficient processing of small input signals (less than 512 points). They will work for input signals of 4 points or greater. Each of the input signals processed by a given call must have the same length and address stride. The input signals are concatenated into a single input/output vector, the parameter signal.

The functions compute in-place real discrete Fourier transforms of the input signals, either from the time domain to the frequency domain (forward) or from the frequency domain to the time domain (inverse).

See also functions “vDSP_create_fftsetup,” “vDSP_create_fftsetupD,” “vDSP_destroy_fftsetup,” “vDSP_destroy_fftsetupD,” and Chapter 2, "Using Fourier Transforms."

Availability
Declared In
vDSP.h

vDSP_fftm_zriptD

Performs the same operation as VDSP_fft_zriptD on multiple signals with a single call.

   void vDSP_fftm_zriptD (FFTSetupD setup,
   DSPDoubleSplitComplex * signal,
   vDSP_Stride signalStride,
   vDSP_Stride fftStride,
   DSPDoubleSplitComplex * temp,
   vDSP_Length log2n,
   vDSP_Length numFFT,
   FFTDirection flag);

Parameters
setup

Points to a structure initialized by a prior call to the FFT weights array function vDSP_create_fftsetup or vDSP_create_fftsetupD.The value supplied as parameter log2n of the earlier call to the setup function must equal or exceed the value supplied as parameter log2n of the transform function.

signal

A complex vector signal input.

signalStride

Specifies an address stride through the input signals. To process every element of each signal, specify 1 for parameter signalStride; to process every other element, specify 2. The value of signalStride should be 1 for best performance.

fftStride

The number of elements between the first element of one input signal and the first element of the next (which is also to length of each input signal, measured in elements).

temp

A temporary vector used for storing interim results. The size of temporary memory for each part (real and imaginary) is the lower value of 4*n or 16k for best performance. Or you can simply pass the buffer of size 2^(log2n) for each part (real and imaginary). If possible, temp.realp and temp.imagp should be 32-byte aligned for best performance.

log2n

The base 2 exponent of the number of elements to process in a single input signal. For example, to process 512 elements, specify 9 for parameter log2n. The value of log2n must be between 3 and 12, inclusive.

numFFT

The number of different input signals.

flag

A forward/inverse directional flag, which must specify FFT_FORWARD for a forward transform or FFT_INVERSE for an inverse transform.

Results are undefined for other values of flag.

Discussion

The functions allow you to perform Fourier transforms on a number of different input signals at once, using a single call. They can be used for efficient processing of small input signals (less than 512 points). They will work for input signals of 4 points or greater. Each of the input signals processed by a given call must have the same length and address stride. The input signals are concatenated into a single input/output vector, the parameter signal.

The functions compute in-place real discrete Fourier transforms of the input signals, either from the time domain to the frequency domain (forward) or from the frequency domain to the time domain (inverse).

See also functions “vDSP_create_fftsetup,” “vDSP_create_fftsetupD,” “vDSP_destroy_fftsetup,” “vDSP_destroy_fftsetupD,” and Chapter 2, "Using Fourier Transforms."

Availability
Declared In
vDSP.h

vDSP_fftm_zrop

Performs the same operation as VDSP_fft_zrop on multiple signals with a single call.

   void vDSP_fftm_zrop (FFTSetup setup,
   DSPSplitComplex * signal,
   vDSP_Stride signalStride,
   vDSP_Stride fftStride,
   DSPSplitComplex * result,
   vDSP_Stride resultStride,
   vDSP_Stride rfftStride,
   vDSP_Length log2n,
   vDSP_Length numFFT,
   FFTDirection flag);

Parameters
setup

Points to a structure initialized by a prior call to the FFT weights array function vDSP_create_fftsetup or vDSP_create_fftsetupD.The value supplied as parameter log2n of the earlier call to the setup function must equal or exceed the value supplied as parameter log2n of the transform function.

signal

A complex vector signal input.

signalStride

Specifies an address stride through input signals . To process every element of each signal, specify a stride of 1; to process every other element, specify 2. The value of signalStride should be 1 for best performance.

fftStride

The number of elements between the first element of one input signal and the first element of the next (which is also to length of each input signal, measured in elements).

result

The complex vector signal output.

resultStride

Specifies an address stride through output vector result. Thus, to process every element, specify a stride of 1; to process every other element, specify 2. The value of resultStride should be 1 for best performance.

rfftStride

The number of elements between the first element of one result vector and the next in the output vector result.

log2n

The base 2 exponent of the number of elements to process. For example, to process 1024 elements, specify 10 for parameter log2n. The value of log2n must be between 3 and 20, inclusive. See also the FFT Limitations sections in the Target chapters of the Developer's Guide.

numFFT

The number of different input signals.

flag

A forward/inverse directional flag, which must specify FFT_FORWARD for a forward transform or FFT_INVERSE for an inverse transform.

Results are undefined for other values of flag.

Discussion

The functions allow you to perform Fourier transforms on a number of different input signals at once, using a single call. They can be used for efficient processing of small input signals (less than 512 points). They will work for input signals of 4 points or greater. Each of the input signals processed by a given call must have the same length and address stride. The input signals are concatenated into a single input vector, the parameter signal.

The functions compute out-of-place real discrete Fourier transforms of the input signals, either from the time domain to the frequency domain (forward) or from the frequency domain to the time domain (inverse).

See also functions “vDSP_create_fftsetup,” “vDSP_create_fftsetupD,” “vDSP_destroy_fftsetup,” “vDSP_destroy_fftsetupD,” and Chapter 2, "Using Fourier Transforms."

Availability
Declared In
vDSP.h

vDSP_fftm_zropD

Performs the same operation as VDSP_fft_zropD on multiple signals with a single call.

   void vDSP_fftm_zropD (FFTSetupD setup,
   DSPDoubleSplitComplex * signal,
   vDSP_Stride signalStride,
   vDSP_Stride fftStride,
   DSPDoubleSplitComplex * result,
   vDSP_Stride resultStride,
   vDSP_Stride rfftStride,
   vDSP_Length log2n,
   vDSP_Length numFFT,
   FFTDirection flag);
   

Parameters
setup

Points to a structure initialized by a prior call to the FFT weights array function vDSP_create_fftsetup or vDSP_create_fftsetupD.The value supplied as parameter log2n of the earlier call to the setup function must equal or exceed the value supplied as parameter log2n of the transform function.

signal

A complex vector signal input.

signalStride

Specifies an address stride through input signals . To process every element of each signal, specify a stride of 1; to process every other element, specify 2. The value of signalStride should be 1 for best performance.

fftStride

The number of elements between the first element of one input signal and the first element of the next (which is also to length of each input signal, measured in elements).

result

The complex vector signal output.

resultStride

Specifies an address stride through output vector result. Thus, to process every element, specify a stride of 1; to process every other element, specify 2. The value of resultStride should be 1 for best performance.

rfftStride

The number of elements between the first element of one result vector and the next in the output vector result.

log2n

The base 2 exponent of the number of elements to process. For example, to process 1024 elements, specify 10 for parameter log2n. The value of log2n must be between 3 and 20, inclusive. See also the FFT Limitations sections in the Target chapters of the Developer's Guide.

numFFT

The number of different input signals.

flag

A forward/inverse directional flag, which must specify FFT_FORWARD for a forward transform or FFT_INVERSE for an inverse transform.

Results are undefined for other values of flag.

Discussion

The functions allow you to perform Fourier transforms on a number of different input signals at once, using a single call. They can be used for efficient processing of small input signals (less than 512 points). They will work for input signals of 4 points or greater. Each of the input signals processed by a given call must have the same length and address stride. The input signals are concatenated into a single input vector, the parameter signal.

The functions compute out-of-place real discrete Fourier transforms of the input signals, either from the time domain to the frequency domain (forward) or from the frequency domain to the time domain (inverse).

See also functions “vDSP_create_fftsetup,” “vDSP_create_fftsetupD,” “vDSP_destroy_fftsetup,” “vDSP_destroy_fftsetupD,” and Chapter 2, "Using Fourier Transforms."

Availability
Declared In
vDSP.h

vDSP_fftm_zropt

Performs the same operation as VDSP_fft_zropt on multiple signals with a single call.

   void vDSP_fftm_zropt (FFTSetup setup,
   DSPSplitComplex * signal,
   vDSP_Stride signalStride,
   vDSP_Stride fftStride,
   DSPSplitComplex * result,
   vDSP_Stride resultStride,
   vDSP_Stride rfftStride,
   DSPSplitComplex * temp,
   vDSP_Length log2n,
   vDSP_Length numFFT,
   FFTDirection flag);

Parameters
setup

Points to a structure initialized by a prior call to the FFT weights array function vDSP_create_fftsetup or vDSP_create_fftsetupD.The value supplied as parameter log2n of the earlier call to the setup function must equal or exceed the value supplied as parameter log2n of the transform function.

signal

A complex vector signal input.

signalStride

Specifies an address stride through input signals . To process every element of each signal, specify a stride of 1; to process every other element, specify 2. The value of signalStride should be 1 for best performance.

fftStride

The number of elements between the first element of one input signal and the first element of the next (which is also to length of each input signal, measured in elements).

result

The complex vector signal output.

resultStride

Specifies an address stride through output vector result. Thus, to process every element, specify a stride of 1; to process every other element, specify 2. The value of resultStride should be 1 for best performance.

rfftStride

The number of elements between the first element of one result vector and the next in the output vector result.

temp

A temporary vector used for storing interim results. The size of temporary memory for each part (real and imaginary) is the lower value of 4*n or 16k for best performance. Or you can simply pass the buffer of size 2^(log2n) for each part (real and imaginary). If possible, temp.realp and temp.imagp should be 32-byte aligned for best performance.

log2n

The base 2 exponent of the number of elements to process. For example, to process 1024 elements, specify 10 for parameter log2n. The value of log2n must be between 3 and 20, inclusive. See also the FFT Limitations sections in the Target chapters of the Developer's Guide.

numFFT

The number of different input signals.

flag

A forward/inverse directional flag, which must specify FFT_FORWARD for a forward transform or FFT_INVERSE for an inverse transform.

Results are undefined for other values of flag.

Discussion

The functions allow you to perform Fourier transforms on a number of different input signals at once, using a single call. They can be used for efficient processing of small input signals (less than 512 points). They will work for input signals of 4 points or greater. Each of the input signals processed by a given call must have the same length and address stride. The input signals are concatenated into a single input vector, the parameter signal.

The functions compute out-of-place real discrete Fourier transforms of the input signals, either from the time domain to the frequency domain (forward) or from the frequency domain to the time domain (inverse).

See also functions “vDSP_create_fftsetup,” “vDSP_create_fftsetupD,” “vDSP_destroy_fftsetup,” “vDSP_destroy_fftsetupD,” and Chapter 2, "Using Fourier Transforms."

Availability
Declared In
vDSP.h

vDSP_fftm_zroptD

Performs the same operation as VDSP_fft_zroptD on multiple signals with a single call.

   void vDSP_fftm_zroptD (FFTSetupD setup,
   DSPDoubleSplitComplex * signal,
   vDSP_Stride signalStride,
   vDSP_Stride fftStride,
   DSPDoubleSplitComplex * result,
   vDSP_Stride resultStride,
   vDSP_Stride rfftStride,
   DSPDoubleSplitComplex * temp,
   vDSP_Length log2n,
   vDSP_Length numFFT,
   FFTDirection flag);
   

Parameters
setup

Points to a structure initialized by a prior call to the FFT weights array function vDSP_create_fftsetup or vDSP_create_fftsetupD.The value supplied as parameter log2n of the earlier call to the setup function must equal or exceed the value supplied as parameter log2n of the transform function.

signal

A complex vector signal input.

signalStride

Specifies an address stride through input signals . To process every element of each signal, specify a stride of 1; to process every other element, specify 2. The value of signalStride should be 1 for best performance.

fftStride

The number of elements between the first element of one input signal and the first element of the next (which is also to length of each input signal, measured in elements).

result

The complex vector signal output.

resultStride

Specifies an address stride through output vector result. Thus, to process every element, specify a stride of 1; to process every other element, specify 2. The value of resultStride should be 1 for best performance.

rfftStride

The number of elements between the first element of one result vector and the next in the output vector result.

temp

A temporary vector used for storing interim results. The size of temporary memory for each part (real and imaginary) is the lower value of 4*n or 16k for best performance. Or you can simply pass the buffer of size 2^(log2n) for each part (real and imaginary). If possible, temp.realp and temp.imagp should be 32-byte aligned for best performance.

log2n

The base 2 exponent of the number of elements to process. For example, to process 1024 elements, specify 10 for parameter log2n. The value of log2n must be between 3 and 20, inclusive. See also the FFT Limitations sections in the Target chapters of the Developer's Guide.

numFFT

The number of different input signals.

flag

A forward/inverse directional flag, which must specify FFT_FORWARD for a forward transform or FFT_INVERSE for an inverse transform.

Results are undefined for other values of flag.

Discussion

The functions allow you to perform Fourier transforms on a number of different input signals at once, using a single call. They can be used for efficient processing of small input signals (less than 512 points). They will work for input signals of 4 points or greater. Each of the input signals processed by a given call must have the same length and address stride. The input signals are concatenated into a single input vector, the parameter signal.

The functions compute out-of-place real discrete Fourier transforms of the input signals, either from the time domain to the frequency domain (forward) or from the frequency domain to the time domain (inverse).

See also functions “vDSP_create_fftsetup,” “vDSP_create_fftsetupD,” “vDSP_destroy_fftsetup,” “vDSP_destroy_fftsetupD,” and Chapter 2, "Using Fourier Transforms."

Availability
Declared In
vDSP.h

vDSP_fft_zip

Computes an in-place single-precision complex discrete Fourier transform of the input/output vector signal, either from the time domain to the frequency domain (forward) or from the frequency domain to the time domain (inverse).

   void vDSP_fft_zip (FFTSetup setup,
   DSPSplitComplex * ioData,
   vDSP_Stride stride,
   vDSP_Length log2n,
   FFTDirection direction);

Parameters
setup

Points to a structure initialized by a prior call to the FFT weights array function vDSP_create_fftsetup or vDSP_create_fftsetupD.The value supplied as parameter log2n of the earlier call to the setup function must equal or exceed the value supplied as parameter log2n of the transform function.

ioData

A complex vector input.

stride

Specifies an address stride through the input/output vector signal. To process every element of the vector, specify 1 for parameter stride; to process every other element, specify 2. The value of stride should be 1 for best performance.

log2n

The base 2 exponent of the number of elements to process. For example, to process 1024 elements, specify 10 for parameter log2n. The value of log2n must be between 2 and 20, inclusive.

direction

A forward/inverse directional flag, which must specify FFT_FORWARD for a forward transform or FFT_INVERSE for an inverse transform.

Results are undefined for other values of direction.

Discussion

This performs the operation


mathematical formula

See also functions “vDSP_create_fftsetup,” “vDSP_create_fftsetupD,” “vDSP_destroy_fftsetup,” “vDSP_destroy_fftsetupD.”

Availability
Declared In
vDSP.h

vDSP_fft_zipD

Computes an in-place double-precision complex discrete Fourier transform of the input/output vector signal, either from the time domain to the frequency domain (forward) or from the frequency domain to the time domain (inverse).

   void vDSP_fft_zipD (FFTSetupD setup,
   DSPDoubleSplitComplex * ioData,
   vDSP_Stride stride,
   vDSP_Length log2n,
   FFTDirection direction);

Parameters
setup

Points