N-D inverse fast Fourier transform


Y = ifftn(X)
Y = ifftn(X,siz)
y = ifftn(..., 'symmetric')
y = ifftn(..., 'nonsymmetric')


Y = ifftn(X) returns the n-dimensional inverse discrete Fourier transform (DFT) of X, computed with a multidimensional fast Fourier transform (FFT) algorithm. The result Y is the same size as X.

ifftn tests X to see whether it is conjugate symmetric. If so, the computation is faster and the output is real. An N1-by-N2-by- ... Nk array X is conjugate symmetric if

X(i1,i2, ...,ik) = conj(X(mod(N1-i1+1,N1)+1, mod(N2-i2+1,N2)+1, 
... mod(Nk-ik+1,Nk)+1))

for each element of X.

Y = ifftn(X,siz) pads X with zeros, or truncates X, to create a multidimensional array of size siz before performing the inverse transform. The size of the result Y is siz.

y = ifftn(..., 'symmetric') causes ifftn to treat X as conjugate symmetric. This option is useful when X is not exactly conjugate symmetric, merely because of round-off error.

y = ifftn(..., 'nonsymmetric') is the same as calling ifftn(...) without the argument 'nonsymmetric'.

Data Type Support

ifftn supports inputs of data types double and single. If you call ifftn with the syntax y = ifftn(X, ...), the output y has the same data type as the input X.

More About

expand all


For any X, ifftn(fftn(X)) equals X within roundoff error.


ifftn(X) is equivalent to

Y = X;
for p = 1:length(size(X))
    Y = ifft(Y,[],p);

This computes in-place the one-dimensional inverse DFT along each dimension of X.

The execution time for ifftn depends on the length of the transform. It is fastest for powers of two. It is almost as fast for lengths that have only small prime factors. It is typically several times slower for lengths that are prime or which have large prime factors.

    Note   You might be able to increase the speed of ifftn using the utility function fftw, which controls how MATLAB® software optimizes the algorithm used to compute an FFT of a particular size and dimension.

See Also

| | | |

Introduced before R2006a

Was this topic helpful?