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 in MSP430F5418

Other Parts Discussed in Thread: MSP430F5418, MSP430F5418A, MSP430F5529, MSP430F5659, MSP430FR6989

Hi .

I'm using MSP430F5418. My  process to  implement Fast Fourier Transform for 64samples.I have intialised clock  for 16MHz.

Time taken for completing the process was 16ms. Time taken for the process was so high.  Help to overcome this issue.

Thanks in advance

regards

Kay

  • Hi kanagaraj,

    you can increase the clock frequency to 18MHz. If this still isn't enough you I would recommend using a MSP430F5418A (25MHz main clock possible) or use a TMS320F28x series device instead (40MHz +).

    And, what about your software? Have you tested the various optimisation levels to see if your FFT performs better?

    Rgds
    aBUGSworstnightmare 

  • Thanks for u kind reply Yes for the 16 samples it requires only 8ms. Is there any sample code available to calculate of FFT in short time in msp430 family. Is there any already time required for the calculation of FFT in Msp430 family? -Kay
  • Hello,

    Regarding software optimization, I would suggest You look at the DSPLIB (C6000 for example, but I think it exists for all dsp families) for implementation reference. You cannot use in since you are using MSP430, but if You analyze the functions that written in C, you can get some implementation tips, such as bit reversing and using twiddle factor.

    I am adding this library to this post, in case You dont have it. It is a TI open source, so all the copyrights reserved to them and etc...

    Anyway, the functions you need to look at are transfer DSPF_sp_cfftr2_dit() and bit reversing DSPF_sp_bitrev_cplx(). They are executed in this order.

    Reverse FFT is DSPF_sp_icfftr2_dif() and it executed after DSPF_sp_bitrev_cplx().

     

    Regards

    Arye

     

    dsplib_v11.zip
  • MSP430 chips do not have hardware for floating-point calculation. Using software floating-point routines to do calculation is very slow. There are FFT algorithms that use fixed-point calculations. Using those will drastically speed it up. Or else, use a different micro.

  • Sorry, my mistake, You should look in libraries of C64 - it is a fixed point DSP.

  • Unless you want to make a calculation with a sampling frequency above 100KHz, you do not need to use a DSP to make FFT calculation and thus derive the spectrum of the sampled signal.

    In this example I made a 1024-point FFT analysis with the evaluation board that uses the MSP430F5529 CPU (with only 8KB of RAM) but you can extend the number of points up to 4096 using CPUs with multiple RAMs. the MSP430F5659 model.

    Again in the same example you can see how the code composer environment allows to view CPU port portions of the CPU and then to see in real time the sampled signal spectrum chart.

  • can you share your code ? i have to implement same with MSP430FR6989.

**Attention** This is a public forum