Electronics > Projects, Designs, and Technical Stuff
Signal processing - getting exact frequency from short ADC sample
(1/18) > >>
daqq:
Hi guys,

I'm playing around with signals, I wanted to ask whether it's possible to measure a small frequency shift on a short pulse of a signal.

Assuming that I have data sampled at 100ksps @ 12bit, ignoring timing jitter, the sample size is 2ms (200 samples), is there any method that would enable me to determine the shift of a frequency of sine sampled using this with a large, 0.1Hz resolution? Basically doppler stuff, with the base signal being a pulsed sine at 10kHz. The expected shift is pretty small, 1 to 2 Hz max. I've tried playing with the raw data, using my naive applications of some methods (fft, as well as brute force correlation with a bunch of sines at different phases and different frequencies) it seems the best I can do is a difference of 3Hz-ish so far.

My question is, is it even possible? If so, could you tell me the name of the methods I should look at?

Thanks,

David
EEEnthusiast:
David
For sampled signals, the resolution frequency is given by the formula Fres = Fs/N where Fs is the sampling frequency and N is the number of samples. You can calculate this directly as per your signals.

essentially for a 1Msps ADC, you need to capture 1Million samples to get 1Hz resolution.
iMo:
Sure you can, with a reciprocal counter (with TIC for higher resolution).
daqq:

--- Quote ---Sure you can, with a reciprocal counter (with TIC for higher resolution).
--- End quote ---
Thanks, unfortunately I'm stuck with the data sampled by the ADC. I know that it can be done using some other methods (high resolution Time to Digital converters and such or even simple timers clocked fast).

--- Quote ---For sampled signals, the resolution frequency is given by the formula Fres = Fs/N where Fs is the sampling frequency and N is the number of samples. You can calculate this directly as per your signals.

essentially for a 1Msps ADC, you need to capture 1Million samples to get 1Hz resolution.
--- End quote ---
Are you sure about this? Assuming 100Hz, sampled at 1Msps, with 1M samples, the signal will look pretty differently if it's shifted by 0.1Hz. I have a gut feeling that using some kind of sine fitting you should be able to get the 0.1Hz out of there.
tszaboo:
What you have is a window function. Window function makes samples outside the window 0. You have a rectangular window, which is not very useful. Probably a Hamming window would be much nicer, where the frequency in question would "pop out" nicer. Check this:
https://en.wikipedia.org/wiki/Window_function
Your frequency resolution is the bin size. You need a certain amount of data to have a bin. It 200/2=100 bins for you, well not really, Lets say it is 64, or 128. Your sample rate it 100KSPS, so each bin is 781 Hz or 1.562KHz (Fs/N). Thats not very useful. Clearly, you need to decrease the sample rate or increase the sample size. For both, you need the signal to be stable for longer. So FFT is not how you do it.
Navigation
Message Index
Next page
There was an error while thanking
Thanking...

Go to full version
Powered by SMFPacks Advanced Attachments Uploader Mod