<!--
{
  "documentType" : "article",
  "framework" : "Accelerate",
  "identifier" : "/documentation/Accelerate/fast-fourier-transforms",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "Fast Fourier transforms"
}
-->

# Fast Fourier transforms

Transform vectors and matrices of temporal and spatial domain complex values to the frequency domain, and vice versa.

## Discussion> Tip:
> Where possible, use discrete Fourier transforms  (DFTs) instead of fast Fourier transforms (FFTs). DFTs provide a convenient API that offers greater flexibility over the number of elements the routines transform. vDSP’s DFT routines switch to FFT wherever possible.

For more information about DFTs, see <doc://com.apple.documentation/documentation/Accelerate/discrete-fourier-transforms>.

## Topics

### Essentials

  <doc://com.apple.accelerate/documentation/Accelerate/understanding-data-packing-for-fourier-transforms>

  <doc://com.apple.accelerate/documentation/Accelerate/performing-fourier-transforms-on-interleaved-complex-data>

  <doc://com.apple.accelerate/documentation/Accelerate/finding-the-component-frequencies-in-a-composite-sine-wave>

  <doc://com.apple.accelerate/documentation/Accelerate/halftone-descreening-with-2d-fast-fourier-transform>

### Objects that Simplify FFTs

[`vDSP.FFT`](/documentation/Accelerate/vDSP/FFT)

A 1D single- and double-precision fast Fourier transform.

[`vDSP.FFT2D`](/documentation/Accelerate/vDSP/FFT2D)

A 2D single- and double-precision fast Fourier transform.

[`vDSP.FourierTransformDirection`](/documentation/Accelerate/vDSP/FourierTransformDirection)

Fast Fourier transform directions.

[`vDSP.Radix`](/documentation/Accelerate/vDSP/Radix)

Fast Fourier transform radices.

### FFT Setup

[`vDSP_create_fftsetup`](/documentation/Accelerate/vDSP_create_fftsetup)

Returns a setup structure that contains precalculated data for single-precision FFT functions.

[`vDSP_create_fftsetupD`](/documentation/Accelerate/vDSP_create_fftsetupD)

Returns a setup structure that contains precalculated data for double-precision FFT functions.

[`vDSP_destroy_fftsetup`](/documentation/Accelerate/vDSP_destroy_fftsetup)

Deallocates an existing single-precision FFT setup structure.

[`vDSP_destroy_fftsetupD`](/documentation/Accelerate/vDSP_destroy_fftsetupD)

Deallocates an existing double-precision FFT setup structure.

[`vDSP_DFT_CreateSetup`](/documentation/Accelerate/vDSP_DFT_CreateSetup)

[`FFTSetup`](/documentation/Accelerate/FFTSetup)

An opaque type that contains setup information for a single-precision FFT transform.

[`FFTSetupD`](/documentation/Accelerate/FFTSetupD)

An opaque type that contains setup information for a double-precision FFT transform.

[`FFTRadix`](/documentation/Accelerate/FFTRadix)

The radix of the FFT decomposition.

### Functions for 1D Real FFT

  <doc://com.apple.accelerate/documentation/Accelerate/in-place-functions-for-1d-real-fft>

  <doc://com.apple.accelerate/documentation/Accelerate/out-of-place-functions-for-1d-real-fft>

[`vDSP_DFT_zop`](/documentation/Accelerate/vDSP_DFT_zop)

### Functions for 1D Multiple-Signal Real FFT

  <doc://com.apple.accelerate/documentation/Accelerate/in-place-functions-for-1d-multiple-signal-real-fft>

  <doc://com.apple.accelerate/documentation/Accelerate/out-of-place-functions-for-1d-multiple-signal-real-fft>

### Functions for 1D Complex FFT

  <doc://com.apple.accelerate/documentation/Accelerate/in-place-functions-for-1d-complex-fft>

  <doc://com.apple.accelerate/documentation/Accelerate/out-of-place-functions-for-1d-complex-fft>

### Functions for 1D Multiple-Signal Complex FFT

  <doc://com.apple.accelerate/documentation/Accelerate/in-place-functions-for-1d-multiple-signal-complex-fft>

  <doc://com.apple.accelerate/documentation/Accelerate/out-of-place-functions-for-1d-multiple-signal-complex-fft>

### Functions for 2D Real FFT

  <doc://com.apple.accelerate/documentation/Accelerate/in-place-functions-for-2d-real-fft>

  <doc://com.apple.accelerate/documentation/Accelerate/out-of-place-functions-for-2d-real-fft>

### Functions for 2D Complex FFT

  <doc://com.apple.accelerate/documentation/Accelerate/in-place-functions-for-2d-complex-fft>

  <doc://com.apple.accelerate/documentation/Accelerate/out-of-place-functions-for-2d-complex-fft>

### Constants

[`FFTDirection`](/documentation/Accelerate/FFTDirection)

Constants that specify whether to perform a forward or inverse FFT.

[`FFT_FORWARD`](/documentation/Accelerate/FFT_FORWARD)

Forward FFT.

[`FFT_INVERSE`](/documentation/Accelerate/FFT_INVERSE)

Inverse FFT.

[`FFT_RADIX2`](/documentation/Accelerate/FFT_RADIX2)

[`FFT_RADIX3`](/documentation/Accelerate/FFT_RADIX3)

[`FFT_RADIX5`](/documentation/Accelerate/FFT_RADIX5)

[`kFFTDirection_Forward`](/documentation/Accelerate/kFFTDirection_Forward)

[`kFFTDirection_Inverse`](/documentation/Accelerate/kFFTDirection_Inverse)

[`kFFTRadix2`](/documentation/Accelerate/kFFTRadix2)

[`kFFTRadix3`](/documentation/Accelerate/kFFTRadix3)

[`kFFTRadix5`](/documentation/Accelerate/kFFTRadix5)



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)