ifft function

Inverse Fast Fourier Transform

Inverse Fast Fourier Transform

Compute the inverse Fast Fourier Transform compatible with 'Matlab' and 'Octave'.

ifft(x) imvfft(x)

Arguments

  • x: Real or complex vector, array, or matrix.

Returns

When x is a vector, the value computed and returned by ifft is the univariate inverse discrete Fourier transform of the sequence of values in x. Specifically, y <- ifft(x) is defined as stats::fft(x, inverse = TRUE) / length(x). The stats::fft function called with inverse = TRUE replaces exp(-2 * pi...) with exp(2 * pi) in the definition of the discrete Fourier transform (see fft).

When x contains an array, ifft computes and returns the normalized inverse multivariate (spatial) transform. By contrast, imvfft takes a real or complex matrix as argument, and returns a similar shaped matrix, but with each column replaced by its normalized inverse discrete Fourier transform. This is useful for analyzing vector-valued series.

Details

The 'fft' function in the 'stats' package can compute the inverse FFT by specifying inverse = TRUE. However, that function does not divide the result by length(x), nor does it return real values when appropriate. The present function does both, and is this compatible with 'Matlab' and 'Octave' (and differs from the 'ifft'

function in the 'signal' package, which does not return real values).

Examples

res <- ifft(stats::fft(1:5)) res <- ifft(stats::fft(c(1+5i, 2+3i, 3+2i, 4+6i, 5+2i))) res <- imvfft(stats::mvfft(matrix(1:20, 4, 5)))

See Also

fft

Author(s)

Geert van Boxtel, G.J.M.vanBoxtel@gmail.com .

  • Maintainer: Geert van Boxtel
  • License: GPL-3
  • Last published: 2024-09-11