Become an expert in R — Interactive courses, Cheat Sheets, certificates and more!
Get Started for Free

ifft

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

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

gsignal

Signal Processing

v0.3-1
GPL-3
Authors
Geert van Boxtel [aut, cre] (Maintainer), Tom Short [aut] (Author of 'signal' package), Paul Kienzle [aut] (Majority of the original sources), Ben Abbott [ctb], Juan Aguado [ctb], Muthiah Annamalai [ctb], Leonardo Araujo [ctb], William Asquith [ctb], David Bateman [ctb], David Billinghurst [ctb], Juan Pablo Carbajal [ctb], André Carezia [ctb], Vincent Cautaerts [ctb], Eric Chassande-Mottin [ctb], Luca Citi [ctb], Dave Cogdell [ctb], Carlo de Falco [ctb], Carne Draug [ctb], Pascal Dupuis [ctb], John W. Eaton [ctb], R.G.H Eschauzier [ctb], Andrew Fitting [ctb], Alan J. Greenberger [ctb], Mike Gross [ctb], Daniel Gunyan [ctb], Kai Habel [ctb], Kurt Hornik [ctb], Jake Janovetz [ctb], Alexander Klein [ctb], Peter V. Lanspeary [ctb], Bill Lash [ctb], Friedrich Leissh [ctb], Laurent S. Mazet [ctb], Mike Miller [ctb], Petr Mikulik [ctb], Paolo Neis [ctb], Georgios Ouzounis [ctb], Sylvain Pelissier [ctb], Francesco Potortì [ctb], Charles Praplan [ctb], Lukas F. Reichlin [ctb], Tony Richardson [ctb], Asbjorn Sabo [ctb], Thomas Sailer [ctb], Rolf Schirmacher [ctb], Rolf Schirmacher [ctb], Ivan Selesnick [ctb], Julius O. Smith III [ctb], Peter L. Soendergaard [ctb], Quentin Spencer [ctb], Doug Stewart [ctb], P. Sudeepam [ctb], Stefan van der Walt [ctb], Andreas Weber [ctb], P. Sudeepam [ctb], Andreas Weingessel [ctb]
Initial release
2021-05-02

We don't support your browser anymore

Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.