There's been a fair amount of discussion in this newsgroup about the various ways to measure the frequency of a tone burst (time between zero crossings, interpolated fft, padded fft, phase vocoder, autocorrelation, etc.), given the assumption of its presence somewhere in time. How about the flip side of the time-frequency trade-off, the various algorithms to measure the location of a tone burst in time (e.g. when it start or stops and/or its duration), given that you know its approximate frequency? One simple way is to emulate an old-fashioned analog method: a bandpass filter, a rectifier (absolute value), a low-pass or averaging filter, and some sort of threshold detector. Are there better methods (in terms of accuracy, noise rejection, compute efficiency, etc.)? What google search terms would one use to find papers on such algorithms? Thanks. -- Ron Nicholson rhn AT nicholson DOT com http://www.nicholson.com/rhn/ #include <canonical.disclaimer> // only my own opinions, etc.

# tone burst time measurements?

Started by ●August 27, 2005

Reply by ●August 27, 20052005-08-27

"Ronald H. Nicholson Jr." <rhn@mauve.rahul.net> wrote in message news:deqe1n$6br$1@blue.rahul.net...> There's been a fair amount of discussion in this newsgroup about the > various ways to measure the frequency of a tone burst (time between zero > crossings, interpolated fft, padded fft, phase vocoder, autocorrelation, > etc.), given the assumption of its presence somewhere in time. > > How about the flip side of the time-frequency trade-off, the various > algorithms to measure the location of a tone burst in time (e.g. when > it start or stops and/or its duration), given that you know its > approximate frequency? > > One simple way is to emulate an old-fashioned analog method: a bandpass > filter, a rectifier (absolute value), a low-pass or averaging filter, > and some sort of threshold detector. Are there better methods (in terms > of accuracy, noise rejection, compute efficiency, etc.)? What google > search terms would one use to find papers on such algorithms?One thing that comes to mind is the Goertzel algorithm. The modified version, which ignores phase and just computes magnitude, is very computationally efficient (about the same as a second order IIR filter). And basically you get the bandpass filter, rectifier and averaging filter all in one. One possible downside is that it is a block-based algorithm, so your time resolution is going to be limited to your block size (basically, you get one magnitude output per block). Furthermore, in terms of noise rejection, the longer the block, the narrower the filter is (better noise rejection), but of course the worse your time resolution is. So that is an inherit trade-off. There is also a sliding version of the Goertzel algorithm, which would give you an magnitude output every sample. Perhaps that would be a better choice if you need a high degree of time accuracy? -- Jon Harris SPAM blocker in place: Remove 99 (but leave 7) to reply