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