| Electronics > Projects, Designs, and Technical Stuff |
| Signal processing - getting exact frequency from short ADC sample |
| << < (7/18) > >> |
| Kalvin:
--- Quote from: hamster_nz on December 14, 2019, 07:32:19 pm ---Made some bogus data, with an amplitude of +/- 75% at 10,000.0 Hz and 10,000.1 Hz. You can draw your own conclusions: <snip> --- End quote --- If you look at the samples from hamster_nz's original post, you should get the idea how difficult this will be with such short data even without any noise involved. |
| ogden:
--- Quote from: Marco on December 14, 2019, 09:15:15 pm ---You can't accurately know amplitude until you accurately know frequency. --- End quote --- :palm: |
| Kleinstein:
For pulsed acoustic data, I would assume there would be quite some idle time after the 2 ms pulse, just to wait for echos to decay. So the overall data rate would not be that high, maybe getting data for 1% of the time. Depending on the µC / CPU used there could be enough time to do the full least squares fit and thus get very close to the best possible (at least in case of additive white noise) result. A general nonlinear least square fit takes quite some time. However specialized to estimating DC offset, amplitude, phase and frequency the computations are not that bad anymore. In the right form (as cos and sine part) only the frequency is a nonlinear parameter so the iterations can be quite effective (exact for the amplitudes and DC offset). |
| Marco:
--- Quote from: ogden on December 15, 2019, 09:44:52 pm --- :palm: --- End quote --- What? Do you want to calculate it from variance? AFAICS that will have more noise than an ideal estimate from a discrete Fourier transform at the exact frequency ... and there's not a lot of room for less than ideal estimates. You don't even really need the renormalization, but the phase based approaches using single sample lag autocorrelation need a lot of hacks to make it work well regardless. In fact to get close to the error bound they tend to only work for frequencies near zero. So it's usually a two step process, first do a bad estimate, mix down to near DC, then try again. A lot more code than Macleod's discrete Fourier domain approach (assuming you use someone else's Fourier transform code). |
| mark03:
--- Quote from: Marco on December 15, 2019, 06:14:05 pm ---They are ridiculously over complex for a single sinusoid. The 5 bin discrete fourier based method in the paper is within 0.6 dB of optimal ... as I said, something much more complex doesn't make a whole lot of sense. --- End quote --- Well, this is not my area of expertise, but I am skeptical. Macleod casts the problem as finding "the parameters (frequency, amplitude, and phase)" which would seem to rule out many techniques at the outset. Here we only care about accurate frequency estimation. Also, Macleod's only mention of the subspace methods in the paper is to dismiss them as computationally expensive. Finally, I know that these methods are used in other settings with only one tone, e.g. NMR. In fact, I run a proton-precession magnetometer (not my design) which uses the so-called "filter diagonalization method" for accurately estimating the frequency of the decaying precession signal. I'm quite sure it would not work with a simple FFT + interpolator approach. |
| Navigation |
| Message Index |
| Next page |
| Previous page |