Possible exponent values, Possible exponent values -2 – Altera FFT MegaCore Function User Manual
Page 44

After every pass through a radix-2 or radix-4 engine in the FFT core, the addition and multiplication
operations cause the data bits width to grow. In other words, the total data bits width from the FFT
operation grows proportionally to the number of passes. The number of passes of the FFT/IFFT computa‐
tion depends on the logarithm of the number of points.
A fixed-point FFT needs a huge multiplier and memory block to accommodate the large bit width growth
to represent the high dynamic range. Though floating-point is powerful in arithmetic operations, its
power comes at the cost of higher design complexity such as a floating-point multiplier and a floating-
point adder. BFP arithmetic combines the advantages of floating-point and fixed-point arithmetic. BFP
arithmetic offers a better signal-to-noise ratio (SNR) and dynamic range than does floating-point and
fixed-point arithmetic with the same number of bits in the hardware implementation.
In a block-floating-point FFT, the radix-2 or radix-4 computation of each pass shares the same hardware,
with the data being read from memory, passed through the core engine, and written back to memory.
Before entering the next pass, each data sample is shifted right (an operation called "scaling") if there is a
carry-out bit from the addition and multiplication operations. The number of bits shifted is based on the
difference in bit growth between the data sample and the maximum data sample detected in the previous
stage. The maximum bit growth is recorded in the exponent register. Each data sample now shares the
same exponent value and data bit width to go to the next core engine. The same core engine can be reused
without incurring the expense of a larger engine to accommodate the bit growth.
The output SNR depends on how many bits of right shift occur and at what stages of the radix core
computation they occur. In other words, the signal-to-noise ratio is data dependent and you need to know
the input signal to compute the SNR.
Possible Exponent Values
Depending on the length of the FFT/IFFT, the number of passes through the radix engine is known and
therefore the range of the exponent is known. The possible values of the exponent are determined by the
following equations:
P = ceil{log
4
N}, where N is the transform length
R = 0 if log
2
N is even, otherwise R = 1
Single output range = (–3P+R, P+R–4)
Quad output range = (–3P+R+1, P+R–7)
These equations translate to the values in
.
Table 4-1: Exponent Scaling Values for FFT / IFFT
N
P
Single Output Engine
Quad Output Engine
Max
Min
Max
64
3
–9
–1
–8
–4
128
4
–11
1
–10
–2
256
4
–12
0
–11
–3
512
5
–14
2
–13
–1
1,024
5
–15
1
–14
–2
4-2
Possible Exponent Values
UG-FFT
2014.12.15
Altera Corporation
Block Floating Point Scaling