This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

fft optimized code for c6455?

Other Parts Discussed in Thread: TMS320C6455

Hi,

   I've read somewhere that tms320c6455 has optimized assembly instructions for FFT; I'm looking for some (optimized) FFT code... I've found this page:

 

http://focus.ti.com/dsp/docs/dspfindtoolswresults.tsp?sectionId=3&tabId=1620&familyId=1397&toolTypeId=1&go=Go

 

but it seems there are no FFT libraries for TMS320C645x DSP... or am I missing something?

 

Thanks,

Francesco Montorsi

 

  • Hi Francesco,

    The DSP Library that you are looking for is:

    http://focus.ti.com/docs/toolsw/folders/print/sprc265.html

    C6455 has a C64x+ core, so you would use the above DSPLIB made for the core. The page above contains the download link and the link to the User's guide that has the list of functions (it contains fft).

  • Mariana said:

    Hi Francesco,

    The DSP Library that you are looking for is:

    http://focus.ti.com/docs/toolsw/folders/print/sprc265.html

    C6455 has a C64x+ core, so you would use the above DSPLIB made for the core. The page above contains the download link and the link to the User's guide that has the list of functions (it contains fft).

    thank you very much for the hint. I've got now a running FFT.

    However I'm a bit in trouble with other mathematical functions like sqrt(). If I try to do for example:

     

     float x = sqrt(4.0);

     

    x gets assigned zero....    I understand that my DSP (c6455) is fixed-point but since the compiler doesn't warn me when I use floats/doubles I thought that it was going to use internal routines to emulate floating-point support... am I missing something?

    Is there a library which allows me to compute sine/cosine/sqrt  of a number on a fixed-point DSP?

     

    Thanks again,

    Francesco

     

  • I reproduced it and the problem occurred to me to a "int" as well as to a "float".

    I solved the problem by adding:

    #include "math.h"

    at the beginning of the file that call the sqrt function.

     

     

  • Thanks for the tip! Including the math.h header solved the problem (strange that the compiler doesn't warn me about math.h being not included and about sqrt() being an "undefined function"...)

    I've now got my FFT/IFFT running and I can also plot the magnitude of the spectrum now thanks to the working sqrt()!

     

    Thank you very much,

    Francesco Montorsi