ifft {gsignal} | R 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
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)))