# Discrete Fourier transforms (`scipy.fft`)

## Fast Fourier Transforms (FFTs)

`fft`(x[, n, axis, norm, overwrite_x, ...]) | Compute the 1-D discrete Fourier Transform.
`ifft`(x[, n, axis, norm, overwrite_x, ...]) | Compute the 1-D inverse discrete Fourier Transform.
`fft2`(x[, s, axes, norm, overwrite_x, ...]) | Compute the 2-D discrete Fourier Transform
`ifft2`(x[, s, axes, norm, overwrite_x, ...]) | Compute the 2-D inverse discrete Fourier Transform.
`fftn`(x[, s, axes, norm, overwrite_x, ...]) | Compute the N-D discrete Fourier Transform.
`ifftn`(x[, s, axes, norm, overwrite_x, ...]) | Compute the N-D inverse discrete Fourier Transform.
`rfft`(x[, n, axis, norm, overwrite_x, ...]) | Compute the 1-D discrete Fourier Transform for real input.
`irfft`(x[, n, axis, norm, overwrite_x, ...]) | Computes the inverse of `rfft`.
`rfft2`(x[, s, axes, norm, overwrite_x, ...]) | Compute the 2-D FFT of a real array.
`irfft2`(x[, s, axes, norm, overwrite_x, ...]) | Computes the inverse of `rfft2`
`rfftn`(x[, s, axes, norm, overwrite_x, ...]) | Compute the N-D discrete Fourier Transform for real input.
`irfftn`(x[, s, axes, norm, overwrite_x, ...]) | Computes the inverse of `rfftn`
`hfft`(x[, n, axis, norm, overwrite_x, ...]) | Compute the FFT of a signal that has Hermitian symmetry, i.e., a real spectrum.
`ihfft`(x[, n, axis, norm, overwrite_x, ...]) | Compute the inverse FFT of a signal that has Hermitian symmetry.
`hfft2`(x[, s, axes, norm, overwrite_x, ...]) | Compute the 2-D FFT of a Hermitian complex array.
`ihfft2`(x[, s, axes, norm, overwrite_x, ...]) | Compute the 2-D inverse FFT of a real spectrum.
`hfftn`(x[, s, axes, norm, overwrite_x, ...]) | Compute the N-D FFT of Hermitian symmetric complex input, i.e., a signal with a real spectrum.
`ihfftn`(x[, s, axes, norm, overwrite_x, ...]) | Compute the N-D inverse discrete Fourier Transform for a real spectrum.

## Discrete Sin and Cosine Transforms (DST and DCT)

`dct`(x[, type, n, axis, norm, overwrite_x, ...]) | Return the Discrete Cosine Transform of arbitrary type sequence x.
`idct`(x[, type, n, axis, norm, overwrite_x, ...]) | Return the Inverse Discrete Cosine Transform of an arbitrary type sequence.
`dctn`(x[, type, s, axes, norm, overwrite_x, ...]) | Return multidimensional Discrete Cosine Transform along the specified axes.
`idctn`(x[, type, s, axes, norm, overwrite_x, ...]) | Return multidimensional Inverse Discrete Cosine Transform along the specified axes.
`dst`(x[, type, n, axis, norm, overwrite_x, ...]) | Return the Discrete Sine Transform of arbitrary type sequence x.
`idst`(x[, type, n, axis, norm, overwrite_x, ...]) | Return the Inverse Discrete Sine Transform of an arbitrary type sequence.
`dstn`(x[, type, s, axes, norm, overwrite_x, ...]) | Return multidimensional Discrete Sine Transform along the specified axes.
`idstn`(x[, type, s, axes, norm, overwrite_x, ...]) | Return multidimensional Inverse Discrete Sine Transform along the specified axes.

## Fast Hankel Transforms

`fht`(a, dln, mu[, offset, bias]) | Compute the fast Hankel transform.
`ifht`(A, dln, mu[, offset, bias]) | Compute the inverse fast Hankel transform.

## Helper functions

`fftshift`(x[, axes]) | Shift the zero-frequency component to the center of the spectrum.
`ifftshift`(x[, axes]) | The inverse of `fftshift`.
`fftfreq`(n[, d]) | Return the Discrete Fourier Transform sample frequencies.
`rfftfreq`(n[, d]) | Return the Discrete Fourier Transform sample frequencies (for usage with rfft, irfft).
`fhtoffset`(dln, mu[, initial, bias]) | Return optimal offset for a fast Hankel transform.
`next_fast_len` | Find the next fast size of input data to `fft`, for zero-padding, etc.
`set_workers`(workers) | Context manager for the default number of workers used in `scipy.fft`
`get_workers`() | Returns the default number of workers within the current context

## Backend control

`set_backend`(backend[, coerce, only]) | Context manager to set the backend within a fixed scope.
`skip_backend`(backend) | Context manager to skip a backend within a fixed scope.
`set_global_backend`(backend[, coerce, only, ...]) | Sets the global fft backend
`register_backend`(backend) | Register a backend for permanent use.