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.

Help for FFT point on C6713 platform.

Dear All

 

I am using c6713 dsk with CCS software. it's sampling frequency minimum 8KHz , max 99KHz & 256 FFT point. I want to process real signal 0.5Hz to 10 Hz. Is it possible to process or do FFT for this frequency band ? If not, how can i do it ...

Your kind help  will be highly appreciated.

Regards

Gopal Sarkar, Kolkata

 

  • You can perform an FFT on data representing any frequency range. Greater record length in your FFT will give you greater frequency resolution. You could achieve this either by downsampling (don't forget about antialiasing) or by taking more points in your FFT (why do you make a point of mentioning 256 points?) 

    However, the aic23 on the c6713 DSK is ac-coupled and to look at frequencies below 10Hz you're going to have to make some kind of alternative hardware arrangements (possibly use a different ADC).

    Donald

  • Hi Donald

    Thank you for your kind response. you have asked to me that why i mentioned about 256 FFT point, because in my dsk kit (C6713 dsk) maximum limitation of FFT point 256 has been declared in guide documentation. For FFT , suppose i mention sampling frequency 8KHz  in my program and with FFT calculation, my discrete interval will be 31.25 Hz. So, I remain that  it is not possible to do FFT below 31.25 Hz .

    As per your suggestion, If i want to process below 10hz, i have to change hardware(ADC), but kindly tell me, is FFT point(256)  depend on ADC hardware ? If not, how i do FFT with 1 or 2 Hz  on C6713 dsk ?

    Wish your kind cooperation.

    Regards

    Gopal Sarkar

    Kolkata

     

     

     

  • Gopal,

    I am mystified that the c6713 DSK documentation should quote a 256 point limit on FFTs.
    Can you point me to where that is stated?

    In any event, the ADC hardware does not limit the number of points you can use in an FFT.
    Any limit on the number of points in an FFT is going to be due to other constraints in your
    application, e.g. how often do you want to calculate an FFT, how fast is your processor, how
    much memory do you have, how is the FFT function coded.
    Are you writing your own FFT routine or using a function supplied from elsewhere?

    To go back to my previous message, the minimum sample rate for the aic23 on the DSK is 8kHz.
    If you want good frequency resolution in your FFT you need a good record length. Clearly you
    are aware of this since you note that a 256-point FFT at 8kHz will have a frequency resolution
    of 31.25 Hz. One way of getting better resolution (clearly you are aware of this) is to increase
    the number of FFT points. As I've said earlier, I can't see why you can't use more than 256 points.

    In theory, another option would be to downsample from your 8kHz sampling rate. You'd need to apply a low pass
    antialiasing filter (in software) to the (8kHz) samples before using every nth sample (to downsample
    n times). For example, you could downsample 64 times and use a 256 point FFT to get a frequency
    resolution of 0.49Hz. Your antialiasing filter would have to be designed to pretty stringent specifications.

    In the context of the C6713 DSK it might be more practical to place a hardware antialiasing filter
    before the ADC input.

    However, as I said earlier, there is hardware ac-coupling implemented before the aic23 input on the DSK
    that you would have to bypass whichever approach you take.

    Donald

  • Hi

     

    My processor TMS320C6713 dsk - 225MHz.

    SDRAM    -  16Mbytes.

    Flash Memory    - 512 Kbytes.

    I run my FFT algorithm with my C code using CCS software and i can do FFT easily  with 32, 64 ,128 & 256 points. If i do FFT with 512 or more points , it show error message to exceed FFT point. 

    I think my dsk hardware does not support more than 256 point for FFT . You have said to me another option that "You could downsample 64 times and use a 256 point FFT to get a frequency resolution of 0.49 Hz ". I don't know how downsample 64 times & get a frequency resolution 0.49 HZ. Kindly give me details about it...

     

    Thank you

    Gopal ..

     

  • Downsampling x64 can be achieved by using every 64th sample and ignoring/discarding the others. If you apply this to a sequence of samples collected at 8kHz then your new sampling rate

    will be 8kHz/64 = 125Hz. If you apply a 256 point FFT to those samples then its frequency resolution will be 125/256 = 0.49Hz.

    Your DSK hardware can support more than 256 points in an FFT.

    You imply that you have written the code to compute the FFT (your algorithm with your C code). What length of FFT is your code intended to handle? Where does the error message you refer to come from?

  • Thank you very much for your kind idea about my low frequency FFT process. I have done 64 down sample (fs=8KHz) and get result successfully. but one silly problem , i am facing that after down sample, it runing  slowly. How it possible  to run fast with my same dsk kit ...

    wish your kind cooperation..

    Regards

    Gopal Sarkar

    Kolkata

  • Hi Gopal,

    You need to explain in more detail what you mean by running slowly.

    Regards,

    Donald

  • Hi Donald

    I have done down sample 64 with sampling frequency 8KHz. For my 256 point values, i need to process 256x64 point discrete values. B'cos i want to do FFT with 256 points.So,  i need to take real discrete values 256x64 for 256 point values for every FFT. It takes a long times to process 256x64 point values for every FFT. Ultimate, every different of real signal (suppose 1.2Hz to 1.7Hz), it take time to update for new one & feel slowly.

    Hope that My above description will help to understand my problem.

    Your kind help will be highly appreciated.

    Regards

    Gopal

  • Unfortunately, your description doesn't help me understand your problem. Are you computing 256-point or (256x64)-point FFTs? I had envisaged that you wanted to compute 256-point FFTs on (consecutive?) blocks of time-domain samples (sampled at  125Hz) - you wanted to compute a 256-point FFT result every  2.048 seconds. That should be well within the capabilities of the C6713 DSK but will depend on how efficient your FFT program/function is.

    Are you trying to compute FFTs more frequently (using overlapping blocks of samples)? How fast can you compute a 256-point FFT? Are you using a DSPLIB FFT function?

     

    Donald

  • Hi Gopal,

     

    Can you please provide me sampling and FFT code used by you for doing that project ? I am trying to sample analog signal and taking the FFT of the signal but couldn't manage to do it. I am a kind of new to processor world and therefore having problem in getting the concepts.

    I will really appreciate your help.

     

    BR,

    Bas

  • Hi Donald,

                       After long days, i am sending mail to you. Your last suggestion  about  down sample process for low frequency signal process with FFT have been done successfully & my problem is solved now. Thanks a lots again.

    One question again to you, if i want to process high signal above 1 MHz(Analog) , how it possible to process for FFT  with my using dsk  TMS320C6713 hardware.  Another, If i use input signal as a digital input, how to insert it to dsk for FFT process.

    Hope that your kind suggestion will me again & solve my problem.

    Wait for your great reply.

     

    Gopal Sarkar

    Research Worker