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.

Sampling and FFT data processing question

Other Parts Discussed in Thread: ADS42B49EVM

Heys everyone,

I hope this is the right place to post this kind of question as I've been redirected from the HSADC forum, anyways, I'll cut to the chase.

I'm waiting for my ADS42B49EVM to arrive, so I've started researching (codewise) about how to implement the processing of the data adquisition of a certain signal. The thing is that I've been checking the CMSIS DSP library to use with, however, I'm having some difficulty understanding how this algorithm can actually be used to process all the data I'll acquire. 

The signal being processed is a 10MHz signal, therefore I'm going to sample at a frequency of 50MHz (50MSPS) to have a nice signal precision and resolution. 

My question rises after thinking about this: If I have 50MSPS (let's say my signal needs to be processed every 5ms):

5ms/1000ms = 0.005.

50 000 000 * 0.005 = 250 000 samples exist in those 5ms.

If I want to do a spectral analysis, and process every 5ms those 250 000 samples using an FFT; how can I use the CMSIS DSP library's FFT function?

I ask this since the limit for the function is 4096, and documentation says that the output gives the DC component, fundamental frequency, first harmonic, etc. but if I get 4096 values from the ADC (ADS42B49EVM), then process them by doing an FFT, I wouldn't have enough data to check if the frequency changed in that time lapse wouldn't I (because there would only be the first 4096 samples considered, and what about the other 245 904 samples?)

Any advice or suggestion to guide me on this?

I'm pretty confused on how to implement this, and questions just keep rising.

Thank you, Alan.

  • Hi Alan,

    I'm not sure this is a question for the ADS42B49EVM apps team as it is an application question about the FFT function in the Cortex DSP library. Perhaps this would be better addressed to the Cortex ARM folks? Are you targeting a specific processor? That may help as well to get it to the right team.

    In general if you want to process the entire signal you will need to have an FFT capable of running this large data set. The FFT of a given buffer size will only give you the information of the signal in that time frame, if your signal frequency changes within that buffer you will not be able to detect it as the FFT will show some avg power of the different frquencies. If the tone is changing you will see some power in each of the frequency bins. To detect a frequency change you need to decide how accurately (time resolution) you want to resolve the frequency and decide your buffer based on that. You would then do FFT based on this and determine the frequency of your signal from buffer to buffer and moitor if the frequency changes from buffer to buffer.

    You could store the 250k samples to memory and then process only 4096 samples at a time and determine at which buffer you detect a frequency change.

    Ken.