FPGA Intellectual Property
PCI Express*, Networking and Connectivity, Memory Interfaces, DSP IP, and Video IP

FFT output?

Altera_Forum
Honored Contributor II
1,418 Views

This is probably going to be a simple question, but have been unable to find documentation to explain it. I'm running a 512 point 24 bit width data streaming FFT. My output is 24 bits with 6 bits of exponent. 

 

How is the data being represented? Is it floating point? 

 

How can i convert it to 32 bit floating point? 

 

Thanks, 

 

Ben
0 Kudos
3 Replies
Altera_Forum
Honored Contributor II
310 Views

Normally, FFTs on FPGAs would be done in fixed point. If this is the case then exponent is the wrong word to use. 

 

Fixed point numbers are just unsigned/signed integers offset by 2^n. In this case, with 24 bits, 6 magnitude (I assume) then this number represents 0-64 (or -32 to (just under) +32) with an accuracy to the nearest 2^-18. 

 

it could still be a floating point, but I doubt it. Fixed point offers very good accuracy but sacrifices the range of data. But as it is basically just all integers it can be done very easily.
0 Kudos
Altera_Forum
Honored Contributor II
310 Views

The altera documentation states it uses block floating point for the FFT.  

 

so what your saying is, and if my data is x"DEADBE" with an exponent "011100" (28 or -4) than it would shift my value down by 4? and my signal would be x"DEADB.E"  

 

sorry im a little confused, not sure if that makes sense.
0 Kudos
Altera_Forum
Honored Contributor II
310 Views

 

--- Quote Start ---  

The altera documentation states it uses block floating point for the FFT.  

 

so what your saying is, and if my data is x"DEADBE" with an exponent "011100" (28 or -4) than it would shift my value down by 4? and my signal would be x"DEADB.E"  

 

sorry im a little confused, not sure if that makes sense. 

--- Quote End ---  

 

 

It might actually be floating point then, just with an 6 bit exponent and 17 bit mantissa instead of the standard 8/23. This reduces logic requirements on the chip. It basically sacrifices range and accuracy so that it uses less resources (and possibly clock faster too).
0 Kudos
Reply