The Radix-2 implementation supports bit-reversed processing, fixed or floating-point data,
and allows the block to provide portable C-code generation using the Simulink Coder. The dimension *M* of the
*M*-by-*N* input matrix must be a power of
two. To work with other input sizes, use the Pad block to pad or truncate these dimensions to powers of two, or if
possible choose the FFTW implementation.

With Radix-2 selected, the block implements one or more of the following
algorithms:

#### Radix-2 Algorithms for Real and Complex Signals

Complexity of Input | Output Ordering | Algorithms Used for FFT Computation |
---|

Complex | Linear | Bit-reversed operation and radix-2
DIT |

Complex | Bit-reversed | Radix-2 DIF |

Real | Linear | Bit-reversed operation and radix-2 DIT in
conjunction with the half-length and double-signal
algorithms |

Real | Bit-reversed | Radix-2 DIF in conjunction with the half-length and
double-signal algorithms |

The efficiency of the FFT algorithm can be enhanced for real input signals by
forming complex-valued sequences from the real-valued sequences prior to the
computation of the DFT. When there are 2*N*+1 real input channels, the FFT block forms these complex-valued
sequences by applying the double-signal algorithm to the first
2*N* input channels, and the half-length algorithm to the
last odd-numbered channel.

For real input signals with fixed-point data types, different numerical results might
appear in the output of the last odd-numbered channel, even when all input
channels are identical. This numerical difference results from differences in
the double-signal algorithm and the half-length algorithm.

You can eliminate this numerical difference in two ways:

For more information on the double-signal algorithm, see [2],
“Efficient Computation of the DFT of Two Real Sequences” on page
475. For more information on the half-length algorithm, see [2],
“Efficient Computation of the DFT of a 2N-Point Real Sequence” on
page 476.

#### Radix-2 Optimization for the Table of Trigonometric Values

In certain situations, the block’s Radix–2 algorithm computes all the possible
trigonometric values of the twiddle factor

where *K* is the greater value of either
*M* or *N* and $$k=0,\cdots ,K-1$$. The block stores these values in a table and retrieves them
during simulation. The number of table entries for fixed-point and
floating-point is summarized in the following
table:

Number of
Table Entries for N-Point FFT |
---|

floating-point | 3*N*/4 |

fixed-point | *N* |