Electronics > Projects, Designs, and Technical Stuff
Signal processing - getting exact frequency from short ADC sample
nctnico:
--- Quote from: Berni on December 18, 2019, 05:45:26 pm ---
--- Quote from: nctnico on December 18, 2019, 10:12:16 am ---
--- Quote from: Berni on December 18, 2019, 08:48:17 am ---But since telling the exact zero crossing and amplitude of a noisy sine wave is a lot trickier it would still need a narrow bandpass filter in front in order to get the same amount of noise resilience. This comes with its computational cost and group delay.
--- End quote ---
Not really. A single 2nd order IIR filter section (4 multiplies and 4 additions) is probably good enough. Averaging several cycles takes care of the rest of the noise. About 2 decades ago I implemented a DTMF decoder in an FPGA which uses zero cross detection (frequency counters) to detect the tones. Worked like a charm and didn't need any complex math.
--- End quote ---
Yep and that is already more computation than is needed to quadrature mix the signal where filtering and phase extraction both happen in one go.
--- End quote ---
I'm not quite sure whether that is true because you'll still be aliasing the noise allover the place. And quadrature mixing doesn't do anything for averaging readings from multiple periods (which is a big advantage of using zero crossing). There is only so much you can do with signal processing; at some point it is better to use an algorithm which looks at the signal in the time-domain to make sense of it.
bson:
My guess would be cross-correlation (auto-correlation) is a more productive starting point than FFT... In fact the whole thing sounds like it would have solutions in echo detection.
mark03:
This thread has been really interesting to follow. EE version of a Rorschach test :-DD
SiliconWizard:
--- Quote from: mark03 on December 19, 2019, 06:49:34 pm ---This thread has been really interesting to follow. EE version of a Rorschach test :-DD
--- End quote ---
Ahah, sounds pretty close. ;D
ogden:
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version