in [DSP]

Prev: simple questions about the DFT and its limits of integration
Next: CYCLOSTATOIONARITY BASED FREQUENCY ESITMATION?
From: Rune Allnor on 6 May 2010 05:01 On 6 Mai, 03:18, "Peter K." <koots... (a)gmail.com> wrote:> On 5 May, 05:41, Rune Allnor <all... (a)tele.ntnu.no> wrote:> > > One has one of two options to achiev that kind of thing: > > > 1) Compute only parts of the peridogram > > 2) Use a model-based frequency estimator > > > Both apporaches rely on prior knowledge / assumptions / > > prejudice / hearsay about what the spectrum actually looks > > like, and what one will find. > > Exactly. > > > The problem with such approaches is that they are not > > awfully robust with respect to flawed prior assumptions: > > If the spectrum line is not in the band where one computes > > the partial periodogram, one will not find it. If the data > > do not comply to whatever parametric model the estimator > > is based on, the computed numbers are little more than > > mumbo-jumbo. > > Agreed. If the signal ain't a sine wave in noise, you'll get > garbage. But then anything will give you garbage in that case if you > estimate the "frequency". No, not necessarily. In the case of a non-sinusoidal-but-still-narrow-band signal, that most likely would throw the parametric estimators off their balance, results from periodogram-based estimators might still make some sort of sense: - The max coefficient in the periodogram (with or without weighting or filtering) *is* the max coefficient - The neighbourhood around the max coefficient can be investigated wrt peak sharpness etc - The periodogram can be investigated wrt spectrum flatness So the periodgram is far more robust than the alternatives. All it takes is a slight rephrasing of the task: Instead of 'estimate the dominant frequency', which might be ill-posed, depending on the signal characteristics, one says 'find the max spectral coefficient'. Which is well-posed if a sinusoidal is present. ( Of course, that convenient argument breaks down if there are more than one sinusoidal present, but that's a different story. ) Rune
From: brent on 6 May 2010 07:38 On May 3, 11:13 am, Vladimir Vassilevsky <nos... (a)nowhere.com> wrote:> Let's say I have an FFT of the given size N, and I want to get an > estimate of a frequency of a noisy tone (input SNR ~ 1/N). > Increasing FFT size is not an option. > > I can do the following processing: > > 1) Average the magnitudes for every bin through several FFTs, then do a > curve fit through max_bin, max_bin-1, max_bin+1 to find the peak. > > 2) Do the FFT, then estimate the frequency by one of the estimators > described in [1], then do a weighted average of the result of the > estimator through several FFTs. > > 3) Do several FFTs progressively shifting the input by the frequency > from 0 to 1/2 of bin spacing, do some post-processing. > > 4) Anything else? > > What do you think? > > [1] "Fast, Accurate Frequency Estimators" > E. Jacobsen, P. Kootsookos > p.107 "Streamlining digital Signal Processing" > edited by R. Lyons > (c)IEEE 2007 > > //------------------------------ > > Vladimir Vassilevsky > DSP and Mixed Signal Design Consultanthttp://www.abvolt.com If you do two successive FFT's you can compare the results and see how much phase travel has occured between the two FFT's. frequency = d(phase)/dt
From: Ron N. on 6 May 2010 20:25 On May 5, 2:41 am, Rune Allnor <all... (a)tele.ntnu.no> wrote:> On 5 Mai, 05:35, "Peter K." <koots... (a)gmail.com> wrote:> > On 3 May, 12:43, Rune Allnor <all... (a)tele.ntnu.no> wrote:> > > > I haven't read Eric and Peter's piece, so I don't know what they > > > say about the subject. With that proviso: > > > > 'Fast' and 'accurate' are contradictions in terms. Any estimator > > > might be *either* fast *or* accurate, but no one estimator will > > > be both. > > > Yes and no. > > > Unbiased estimators can generally only be as accurate as the Cramer- > > Rao Lower bound (CRLB) on the variance of such estimators. > > > There exist many frequency estimators that meet this bound. > > > The ones that Eric and I wrote about meet the CRLB and are faster to > > calculate than a periodogram. > > One has one of two options to achiev that kind of thing: > > 1) Compute only parts of the peridogram > 2) Use a model-based frequency estimator > > Both apporaches rely on prior knowledge / assumptions / > prejudice / hearsay about what the spectrum actually looks > like, and what one will find. > > The problem with such approaches is that they are not > awfully robust with respect to flawed prior assumptions: > If the spectrum line is not in the band where one computes > the partial periodogram, one will not find it. If the data > do not comply to whatever parametric model the estimator > is based on, the computed numbers are little more than > mumbo-jumbo. If you have multiple frames of data, and you know the frame offsets, then just combining these frames into one periodogram appears to throw away information (the frame offsets, and relative bin phases between frame pairs). Reducing the amount of information thrown away would, from an information theoretic point of view, seem to allow improvement in any "frequency" estimate. There appear to be at least 3 recommendation posted here for variants of this phase vocoder approach, rephrased in different ways (measuring delta phase versus frame offset). This method also allows a very low compute cost method for testing a frequency hypothesis (1-bin complex Goertzel plus power measurement of the adjacent frame for both relative phase plus a sanity check). IMHO. YMMV. -- rhn A.T nicholson d.0.t C-o-M http://www.nicholson.com/rhn/dsp.html
From: Vladimir Vassilevsky on 7 May 2010 17:10
John wrote: > On May 3, 11:13 am, Vladimir Vassilevsky <nos... (a)nowhere.com> wrote:> >>Let's say I have an FFT of the given size N, and I want to get an >>estimate of a frequency of a noisy tone (input SNR ~ 1/N). >>Increasing FFT size is not an option. >> >>I can do the following processing: >> >>1) Average the magnitudes for every bin through several FFTs, then do a >>curve fit through max_bin, max_bin-1, max_bin+1 to find the peak. [...] > A ML solution is to do FFT #1, wait a fixed time interval, and do FFT > #2 of new data. The phase change of the bin of interest from FFT #1 to > FFT #2, combined with the know delay, gives the fine frequency. Watch > out for wraps though. Neat and simple. Thank you, John. Actually, the problem is blind estimation of the carrier frequency of PSK signal at marginally low SNR, and the carrier offset is comparable to the baud rate. I dot it working, but the acquisition time is ~hundreds of symbols. Vladimir Vassilevsky DSP and Mixed Signal Design Consultant http://www.abvolt.com |