# Inverse FFT (Real) (G Dataflow)

Version:

Computes the inverse discrete Fourier transform (IDFT) of a sequence. You can use this node when the input sequence is the Fourier transform of a real time-domain signal.

## FFT{x}

The complex valued input sequence, which should be conjugated centrosymmetric except for the first element. This node uses only the anterior half of FFT {x}.

This input can be a 1D or 2D array of complex double-precision, floating-point numbers.

## shift?

A Boolean that determines whether the DC component is at the center of the FFT of the input sequence.

 True The DC component is at the center of the FFT{x}. False The DC component is not at the center of the FFT{x}.

How This Input Affects 1D FFT

The following table illustrates the pattern of the elements of FFT{x} with various length of the FFT, when shift? is False. Y is FFT{x} and n is the length of the FFT:

n is even (k = n/2) n is odd (k = (n-1)/2)
Array Element Corresponding Frequency Array Element Corresponding Frequency
Y0 DC component Y0 DC component
Y1 $\mathrm{\Delta }f$ Y1 $\mathrm{\Delta }f$
Y2 $2\mathrm{\Delta }f$ Y2 $2\mathrm{\Delta }f$
Y3 $3\mathrm{\Delta }f$ Y3 $3\mathrm{\Delta }f$
$\begin{array}{c}\cdot \\ \cdot \\ \cdot \end{array}$ $\begin{array}{c}\cdot \\ \cdot \\ \cdot \end{array}$ $\begin{array}{c}\cdot \\ \cdot \\ \cdot \end{array}$ $\begin{array}{c}\cdot \\ \cdot \\ \cdot \end{array}$
Yk-2 $\left(k-2\right)\mathrm{\Delta }f$ Yk-2 $\left(k-2\right)\mathrm{\Delta }f$
Yk-1 $\left(k-1\right)\mathrm{\Delta }f$ Yk-1 $\left(k-1\right)\mathrm{\Delta }f$
Yk Nyquist Frequency Yk $k\mathrm{\Delta }f$
Yk+1 $-\left(k-1\right)\mathrm{\Delta }f$ Yk+1 $-k\mathrm{\Delta }f$
Yk+2 $-\left(k-2\right)\mathrm{\Delta }f$ Yk+2 $-\left(k-1\right)\mathrm{\Delta }f$
$\begin{array}{c}\cdot \\ \cdot \\ \cdot \end{array}$ $\begin{array}{c}\cdot \\ \cdot \\ \cdot \end{array}$ $\begin{array}{c}\cdot \\ \cdot \\ \cdot \end{array}$ $\begin{array}{c}\cdot \\ \cdot \\ \cdot \end{array}$
Yn-3 $-3\mathrm{\Delta }f$ Yn-3 $-3\mathrm{\Delta }f$
Yn-2 $-2\mathrm{\Delta }f$ Yn-2 $-2\mathrm{\Delta }f$
Yn-1 $-\mathrm{\Delta }f$ Yn-1 $-\mathrm{\Delta }f$

The following table illustrates the pattern of the elements of FFT{x} with various length of the FFT, when shift? is True. Y is FFT{x} and n is the length of the FFT:

n is even (k = n/2) n is odd (k = (n-1)/2)
Array Element Corresponding Frequency Array Element Corresponding Frequency
Y0 -(Nyquist Frequency) Y0 $-k\mathrm{\Delta }f$
Y1 $-\left(k-1\right)\mathrm{\Delta }f$ Y1 $-\left(k-1\right)\mathrm{\Delta }f$
Y2 $-\left(k-2\right)\mathrm{\Delta }f$ Y2 $-\left(k-2\right)\mathrm{\Delta }f$
Y3 $-\left(k-3\right)\mathrm{\Delta }f$ Y3 $-\left(k-3\right)\mathrm{\Delta }f$
$\begin{array}{c}\cdot \\ \cdot \\ \cdot \end{array}$ $\begin{array}{c}\cdot \\ \cdot \\ \cdot \end{array}$ $\begin{array}{c}\cdot \\ \cdot \\ \cdot \end{array}$ $\begin{array}{c}\cdot \\ \cdot \\ \cdot \end{array}$
Yk-2 $-2\mathrm{\Delta }f$ Yk-2 $-2\mathrm{\Delta }f$
Yk-1 $-\mathrm{\Delta }f$ Yk-1 $-\mathrm{\Delta }f$
Yk DC component Yk DC component
Yk+1 $\mathrm{\Delta }f$ Yk+1 $\mathrm{\Delta }f$
Yk+2 $2\mathrm{\Delta }f$ Yk+2 $2\mathrm{\Delta }f$
$\begin{array}{c}\cdot \\ \cdot \\ \cdot \end{array}$ $\begin{array}{c}\cdot \\ \cdot \\ \cdot \end{array}$ $\begin{array}{c}\cdot \\ \cdot \\ \cdot \end{array}$ $\begin{array}{c}\cdot \\ \cdot \\ \cdot \end{array}$
Yn-3 $\left(k-3\right)\mathrm{\Delta }f$ Yn-3 $\left(k-2\right)\mathrm{\Delta }f$
Yn-2 $\left(k-2\right)\mathrm{\Delta }f$ Yn-2 $\left(k-1\right)\mathrm{\Delta }f$
Yn-1 $\left(k-1\right)\mathrm{\Delta }f$ Yn-1 $k\mathrm{\Delta }f$

How This Input Affects 2D FFT

The illustration below shows the effect of shift? on the 2D FFT result:

2D input signals FFT without shift FFT with shift

Default: False

## error in

Error conditions that occur before this node runs. The node responds to this input according to standard error behavior.

Default: No error

## x

The inverse real FFT of the complex valued input sequence.

## error out

Error information. The node produces this output according to standard error behavior.

## Algorithm Definition for 1D Inverse FFT

For a 1D, N-sample, frequency domain sequence Y, the inverse discrete Fourier transform (IDFT) is defined as:

${X}_{n}=\frac{1}{N}\underset{k=0}{\overset{N-1}{\sum }}Yk{e}^{j2\pi kn/N}$

for n = 0, 1, 2, ..., N-1.

## Algorithm Definition for 2D Inverse FFT

For a 2D, M-by-N frequency domain array Y, the inverse discrete Fourier transform (IDFT) is defined as:

$X\left(m,n\right)=\frac{1}{MN}\underset{u=0}{\overset{M-1}{\sum }}\underset{v=0}{\overset{N-1}{\sum }}Y\left(u,v\right){e}^{j2\pi mu/M}{e}^{j2\pi nv/N}$

for m = 0, 1, ..., M-1, n=0, 1, ..., M-1.

## Conjugated Centrosymmetric Property of 1D Inverse Real FFT

When shift? is False and FFT{x} is the Fourier transform of a 1D real time-domain signal with length N, the posterior half part of FFT{x} can be constructed by the anterior half part. The centrosymmetric relationship between the anterior and posterior half part of FFT{x} can be written as

${f}_{N-1}={{f}_{i}}^{*},\text{\hspace{0.17em}}i=1,\text{\hspace{0.17em}}2,\text{\hspace{0.17em}}...,\text{\hspace{0.17em}}⌊\frac{N}{2}⌋$

where fi is the element in FFT{x}.

This node uses only the anterior half part, from f0 to $f_⌊\frac{N}{2}⌋$ to perform the inverse real FFT, where $⌊•⌋$ means the floor operation.

## Conjugated Centrosymmetric Property of 2D Inverse Real FFT

When shift? is False and FFT{x} is the Fourier transform of a 2D real time-domain signal with M rows and N columns, the lower half part of FFT{x} can be constructed by the upper half part. The centrosymmetric relationship between the upper and lower half part of FFT{x} can be written as

$\left\{\begin{array}{c}{f}_{M-i,j}={f}_{i,N-j}^{*}\text{\hspace{0.17em}}i=1,\text{\hspace{0.17em}}2,\text{\hspace{0.17em}}...,\text{\hspace{0.17em}}⌊\frac{M}{2}⌋,\text{\hspace{0.17em}}j=1,\text{\hspace{0.17em}}2,\text{\hspace{0.17em}}...,\text{\hspace{0.17em}}N-1\\ {f}_{M-i,j}={f}_{i,j}^{*}\text{\hspace{0.17em}}i=1,\text{\hspace{0.17em}}2,\text{\hspace{0.17em}}...,\text{\hspace{0.17em}}⌊\frac{M}{2}⌋,\text{\hspace{0.17em}}j=0\end{array}$

where fi,j is the element in FFT{x}.

This node uses only the upper half part, from f0,0 to $f_⌊\frac{M}{2}⌋,N-1$ to perform the inverse real FFT, where $⌊•⌋$ means the floor operation.

Where This Node Can Run:

Desktop OS: Windows

FPGA: Not supported