This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English version of the page.

Note: This page has been translated by MathWorks. Please click here
To view all translated materials including this page, select Japan from the country navigator on the bottom of this page.

vision.IFFT System object

Two–dimensional inverse discrete Fourier transform


The vision.IFFT object computes the inverse 2D discrete Fourier transform (IDFT) of a two-dimensional input matrix. The object uses one or more of the following fast Fourier transform (FFT) algorithms depending on the complexity of the input and whether the output is in linear or bit-reversed order:

  • Double-signal algorithm

  • Half-length algorithm

  • Radix-2 decimation-in-time (DIT) algorithm

  • Radix-2 decimation-in-frequency (DIF) algorithm

  • An algorithm chosen by FFTW [1], [2]


Starting in R2016b, instead of using the step method to perform the operation defined by the System object™, you can call the object with arguments, as if it were a function. For example, y = step(obj,x) and y = obj(x) perform equivalent operations.


H = vision.IFFT returns a 2D IFFT object, H, with the default property and value pair settings.

H = vision.IFFT(Name,Value) returns a 2D IFFT object, H, with each property set to the specified value. You can specify additional name-value pair arguments in any order as (Name1, Value1,...,NameN,ValueN).



FFT implementation

Specify the implementation used for the FFT as one of Auto | Radix-2 | FFTW. When you set this property to Radix-2, the FFT length must be a power of two.


Indicates whether input is in bit-reversed order

Set this property to true if the order of 2D FFT transformed input elements are in bit-reversed order. The default is false, which denotes linear ordering.


Indicates whether input is conjugate symmetric

Set this property to true if the input is conjugate symmetric. The 2D DFT of a real valued signal is conjugate symmetric and setting this property to true optimizes the 2D IFFT computation method. Setting this property to false for conjugate symmetric inputs results in complex output values with nonzero imaginary parts. Setting this property to true for non conjugate symmetric inputs results in invalid outputs. This property must be false for fixed-point inputs. The default is true.


Divide output by FFT length

Specify if the 2D IFFT output should be divided by the FFT length. The value of this property defaults to true and divides each element of the output by the product of the row and column dimensions of the input matrix.

 Fixed-Point Properties


stepCompute 2D inverse discrete Fourier transform
Common to All System Objects

Create System object with same property values


Expected number of inputs to a System object


Expected number of outputs of a System object


Check locked states of a System object (logical)


Allow System object property value changes


Use the 2D IFFT object to convert an intensity image.

 hfft2d = vision.FFT;
 hifft2d = vision.IFFT;

% Read in the image
 		xorig = single(imread('cameraman.tif'));

% Convert the image from the spatial 
% to frequency domain and back
 		Y = step(hfft2d, xorig);
		xtran = step(hifft2d, Y);

% Display the newly generated intensity image
 		imshow(abs(xtran), []); 


This object implements the algorithm, inputs, and outputs described on the 2-D IFFT block reference page. The object properties correspond to the Simulink® block parameters.


[2] 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.

Extended Capabilities

Introduced in R2012a