Inverse fast Fourier transform (IFFT) of input
DSP System Toolbox / Transforms
The IFFT block computes the inverse fast Fourier transform (IFFT) across the
first dimension of an N-D input array. The block uses one of two
possible FFT implementations. You can select an implementation based on the FFTW library
or an implementation based on a collection of Radix-2 algorithms. To allow the block to
choose the implementation, you can select Auto
. For more
information about the FFT implementations, see Algorithms.
When you specify an FFT length not equal to the length of the input vector (or first dimension of the input array), the block implements zero-padding, truncating, or modulo-M (FFT length) data wrapping. This occurs before the IFFT operation. For an IFFT with P ≤ M:
y = ifft(u,M) % P ≤ M
Wrapping:
y(:,L) = ifft(datawrap(u(:,L),M)) % P > M; L = 1,...,N
Truncating:
y (:,L) = ifft(u,M) % P > M; L = 1,...,N
Tip
When the input length, P, is greater than the FFT length, M, you may see magnitude increases in your IFFT output. These magnitude increases occur because the IFFT block uses modulo-M data wrapping to preserve all available input samples.
To avoid such magnitude increases, you can truncate the length of your input sample, P, to the FFT length, M. To do so, place a Pad block before the IFFT block in your model.
[1] Orfanidis, S. J. Introduction to Signal Processing. Upper Saddle River, NJ: Prentice Hall, 1996, p. 497.
[2] Proakis, John G. and Dimitris G. Manolakis. Digital Signal Processing, 3rd ed. Upper Saddle River, NJ: Prentice Hall, 1996.
[3] FFTW (http://www.fftw.org
)
[4] Frigo, M. and S. G. Johnson, “FFTW: An Adaptive Software Architecture for the FFT,”Proceedings of the International Conference on Acoustics, Speech, and Signal Processing, Vol. 3, 1998, pp. 1381-1384.