Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
16 years ago

FFT output?

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

3 Replies

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    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.
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    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.
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    --- 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).