Documentation

### This is machine translation

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

# ifft2

2-D inverse fast Fourier transform

## Syntax

``X = ifft2(Y)``
``X = ifft2(Y,m,n)``
``X = ifft2(___,symflag)``

## Description

example

````X = ifft2(Y)` returns the two-dimensional discrete inverse Fourier transform of a matrix using a fast Fourier transform algorithm. If `Y` is a multidimensional array, then `ifft2` takes the 2-D inverse transform of each dimension higher than 2. The output `X` is the same size as `Y`.```

example

````X = ifft2(Y,m,n)` truncates `Y` or pads `Y` with trailing zeros to form an `m`-by-`n` matrix before computing the inverse transform. `X` is also `m`-by-`n`. If `Y` is a multidimensional array, then `ifft2` shapes the first two dimensions of `Y` according to `m` and `n`.```

example

````X = ifft2(___,symflag)` specifies the symmetry of `Y`. For example, `ifft2(Y,'symmetric')` treats `Y` as conjugate symmetric.```

## Examples

collapse all

You can use the `ifft2` function to convert 2-D signals sampled in frequency to signals sampled in time or space. The `ifft2` function also allows you to control the size of the transform.

Create a 3-by-3 matrix and compute its Fourier transform.

`X = magic(3)`
```X = 3×3 8 1 6 3 5 7 4 9 2 ```
`Y = fft2(X)`
```Y = 3×3 complex 45.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 13.5000 + 7.7942i 0.0000 - 5.1962i 0.0000 - 0.0000i 0.0000 + 5.1962i 13.5000 - 7.7942i ```

Take the inverse transform of `Y`, which is the same as the original matrix `X`, up to round-off error.

`ifft2(Y)`
```ans = 3×3 8.0000 1.0000 6.0000 3.0000 5.0000 7.0000 4.0000 9.0000 2.0000 ```

Pad both dimensions of `Y` with trailing zeros so that the transform has size 8-by-8.

```Z = ifft2(Y,8,8); size(Z)```
```ans = 1×2 8 8 ```

For nearly conjugate symmetric matrices, you can compute the inverse Fourier transform faster by specifying the `'symmetric'` option, which also ensures that the output is real.

Compute the 2-D inverse Fourier transform of a nearly conjugate symmetric matrix.

```Y = [3+1e-15*i 5; 5 3]; X = ifft2(Y,'symmetric')```
```X = 2×2 4 0 0 -1 ```

## Input Arguments

collapse all

Input array, specified as a matrix or a multidimensional array. If `Y` is of type `single`, then `ifft2` natively computes in single precision, and `X` is also of type `single`. Otherwise, `X` is returned as type `double`.

Data Types: `double` | `single` | `int8` | `int16` | `int32` | `uint8` | `uint16` | `uint32` | `logical`
Complex Number Support: Yes

Number of inverse transform rows, specified as a positive integer scalar.

Data Types: `double` | `single` | `int8` | `int16` | `int32` | `uint8` | `uint16` | `uint32` | `logical`

Number of inverse transform columns, specified as a positive integer scalar.

Data Types: `double` | `single` | `int8` | `int16` | `int32` | `uint8` | `uint16` | `uint32` | `logical`

Symmetry type, specified as `'nonsymmetric'` or `'symmetric'`. When `Y` is not exactly conjugate symmetric due to round-off error, `ifft2(Y,'symmetric')` treats `Y` as if it were conjugate symmetric. For more information on conjugate symmetry, see Algorithms.

collapse all

### 2-D Inverse Fourier Transform

This formula defines the discrete inverse Fourier transform X of an m-by-n matrix Y:

`${X}_{p,q}=\frac{1}{m}\sum _{j=1}^{m}\frac{1}{n}\sum _{k=1}^{n}{\omega }_{m}^{\left(j-1\right)\left(p-1\right)}{\omega }_{n}^{\left(k-1\right)\left(q-1\right)}{Y}_{j,k}$`

ωm and ωn are complex roots of unity:

`$\begin{array}{l}{\omega }_{m}={e}^{2\pi i/m}\\ {\omega }_{n}={e}^{2\pi i/n}\end{array}$`

i is the imaginary unit. p runs from 1 to m and q runs from 1 to n.

## Algorithms

• The `ifft2` function tests whether the vectors in a matrix `Y` are conjugate symmetric in both dimensions. A vector `v` is conjugate symmetric when the ith element satisfies ```v(i) = conj(v([1,end:-1:2]))```. If the vectors in `Y` are conjugate symmetric in both dimensions, then the inverse transform computation is faster and the output is real.