Learn R Programming

gsignal (version 0.3-7)

ifft: Inverse Fast Fourier Transform

Description

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

Usage

ifft(x)

imvfft(x)

Value

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.

Arguments

x

Real or complex vector, array, or matrix.

Author

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

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).

See Also

Examples

Run this code
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)))

Run the code above in your browser using DataLab