# Legacy discrete Fourier transforms (`scipy.fftpack`)

Warning

This submodule is now considered legacy, new code should use `scipy.fft`.

## Fast Fourier Transforms (FFTs)

`fft`(x[, n, axis, overwrite_x]) | Return discrete Fourier transform of real or complex sequence.
`ifft`(x[, n, axis, overwrite_x]) | Return discrete inverse Fourier transform of real or complex sequence.
`fft2`(x[, shape, axes, overwrite_x]) | 2-D discrete Fourier transform.
`ifft2`(x[, shape, axes, overwrite_x]) | 2-D discrete inverse Fourier transform of real or complex sequence.
`fftn`(x[, shape, axes, overwrite_x]) | Return multidimensional discrete Fourier transform.
`ifftn`(x[, shape, axes, overwrite_x]) | Return inverse multidimensional discrete Fourier transform.
`rfft`(x[, n, axis, overwrite_x]) | Discrete Fourier transform of a real sequence.
`irfft`(x[, n, axis, overwrite_x]) | Return inverse discrete Fourier transform of real sequence x.
`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, shape, axes, norm, overwrite_x]) | Return multidimensional Discrete Cosine Transform along the specified axes.
`idctn`(x[, type, shape, axes, norm, overwrite_x]) | Return multidimensional 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, shape, axes, norm, overwrite_x]) | Return multidimensional Discrete Sine Transform along the specified axes.
`idstn`(x[, type, shape, axes, norm, overwrite_x]) | Return multidimensional Discrete Sine Transform along the specified axes.

## Differential and pseudo-differential operators

`diff`(x[, order, period, _cache]) | Return kth derivative (or integral) of a periodic sequence x.
`tilbert`(x, h[, period, _cache]) | Return h-Tilbert transform of a periodic sequence x.
`itilbert`(x, h[, period, _cache]) | Return inverse h-Tilbert transform of a periodic sequence x.
`hilbert`(x[, _cache]) | Return Hilbert transform of a periodic sequence x.
`ihilbert`(x) | Return inverse Hilbert transform of a periodic sequence x.
`cs_diff`(x, a, b[, period, _cache]) | Return (a,b)-cosh/sinh pseudo-derivative of a periodic sequence.
`sc_diff`(x, a, b[, period, _cache]) | Return (a,b)-sinh/cosh pseudo-derivative of a periodic sequence x.
`ss_diff`(x, a, b[, period, _cache]) | Return (a,b)-sinh/sinh pseudo-derivative of a periodic sequence x.
`cc_diff`(x, a, b[, period, _cache]) | Return (a,b)-cosh/cosh pseudo-derivative of a periodic sequence.
`shift`(x, a[, period, _cache]) | Shift periodic sequence x by a: y(u) = x(u+a).

## 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]) | DFT sample frequencies (for usage with rfft, irfft).
`next_fast_len`(target) | Find the next fast size of input data to `fft`, for zero-padding, etc.

Note that `fftshift`, `ifftshift` and `fftfreq` are numpy functions exposed by `fftpack`; importing them from `numpy` should be preferred.

## Convolutions (`scipy.fftpack.convolve`)

`convolve`(x,omega,[swap_real_imag,overwrite_x]) | Wrapper for `convolve`.
`convolve_z`(x,omega_real,omega_imag,[overwrite_x]) | Wrapper for `convolve_z`.
`init_convolution_kernel`(…) | Wrapper for `init_convolution_kernel`.
`destroy_convolve_cache` |

scipy.fft.register_backend scipy.fftpack.fft