ifft: Inverse Fast Fourier Transform

View source: R/ifft.R

ifftR Documentation

Inverse Fast Fourier Transform

Description

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

Usage

ifft(x)

imvfft(x)

Arguments

x

Real or complex vector, array, or matrix.

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

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.

Author(s)

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

See Also

fft

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


gjmvanboxtel/gsignal documentation built on Nov. 22, 2023, 8:19 p.m.