Forums

Burst tone detection of unknown frequency

Started by Jay Fenton June 19, 2007
Hi,

I've been trying to find the most optimal algorithm to detect a
sustained burst of
tone at an unknown (but higher than speech) frequency in realtime, for
use in
voicemail detection (think long beep). I don't have much experience in
the signal
processing realms, and would appreciate any appropriate pointers.

Am I right in thinking that Goertzel is only suited to the detection
of a known
frequency, and not a range? What's the most performant way of doing
this?

Thanks in advance.

--
Regards,

Jay Fenton

The best way to handle this is to listen on the line before actually 
dialing, and apply the following routine, which I provide free of charge 
for unrestricted use:

bVoicemailDetected = TRUE;
if(bVoicemailDetected == FALSE)
	Dial();

John

Jay Fenton wrote:
> Hi, > > I've been trying to find the most optimal algorithm to detect a > sustained burst of > tone at an unknown (but higher than speech) frequency in realtime, for > use in > voicemail detection (think long beep). I don't have much experience in > the signal > processing realms, and would appreciate any appropriate pointers. > > Am I right in thinking that Goertzel is only suited to the detection > of a known > frequency, and not a range? What's the most performant way of doing > this? > > Thanks in advance. > > -- > Regards, > > Jay Fenton >
On Jun 19, 8:47 am, Jay  Fenton <jay.fen...@gmail.com> wrote:
> Hi, > > I've been trying to find the most optimal algorithm to detect a > sustained burst of > tone at an unknown (but higher than speech) frequency in realtime, for > use in > voicemail detection (think long beep). I don't have much experience in > the signal > processing realms, and would appreciate any appropriate pointers. >
US Patent 7124075 http://www.google.com/patents?id=dB97AAAAEBAJ
> Thanks in advance.
You are very welcome
Jay Fenton wrote:
> Hi, > > I've been trying to find the most optimal algorithm to detect a > sustained burst of > tone at an unknown (but higher than speech) frequency in realtime, for > use in > voicemail detection (think long beep). I don't have much experience in > the signal > processing realms, and would appreciate any appropriate pointers. > > Am I right in thinking that Goertzel is only suited to the detection > of a known > frequency, and not a range? What's the most performant way of doing > this? > > Thanks in advance.
You do know something about the frequency. It is higher than audio and within the passband of your channel. You seem to say that it is of constant frequency ans therefore only its presence is informative. Would a bandpass filter do? Jerry -- Engineering is the art of making what you want from things you can get. &macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;

Jay Fenton wrote:

> Hi, > > I've been trying to find the most optimal algorithm to detect a > sustained burst of > tone at an unknown (but higher than speech) frequency in realtime, for
There are two kinds of the most optimal algorithms: 1. Do it yourself 2. Hire somebody else When you will be bored with method#1, give me a call. Vladimir Vassilevsky DSP and Mixed Signal Design Consultant http://www.abvolt.com
On Jun 19, 8:47 am, Jay  Fenton <jay.fen...@gmail.com> wrote:
> Hi, > > I've been trying to find the most optimal algorithm to detect a > sustained burst of > tone at an unknown (but higher than speech) frequency in realtime, for > use in > voicemail detection (think long beep). I don't have much experience in > the signal > processing realms, and would appreciate any appropriate pointers. > > Am I right in thinking that Goertzel is only suited to the detection > of a known > frequency, and not a range? What's the most performant way of doing > this? > > Thanks in advance. > > -- > Regards, > > Jay Fenton
What information are you trying to get? Do you want to know the frequency, or do you want to filter it out? If you want to suppress it, you could use an adaptive notch filter; the LMS algorithm is pretty simple. If you want to identify the frequency, it's a little tougher. The Goertzel algorithm does search for specific frequencies, which is why it's often used for DTMF detection. You could do an FFT and search for peaks, but it's more computationally intensive. If the range you want to search is small enough, you could use a highpass/ bandpass filter to pick out the region you want to search in, decimate to get the signal back to baseband, then perform the FFT on the decimated samples. This will take fewer computations, but you would need to do some math to figure out what frequency the peaks initially corresponded to. Jason
On Jun 19, 5:47 am, Jay  Fenton <jay.fen...@gmail.com> wrote:
> I've been trying to find the most optimal algorithm to detect a > sustained burst of > tone at an unknown (but higher than speech) frequency in realtime, for > use in > voicemail detection (think long beep). I don't have much experience in > the signal > processing realms, and would appreciate any appropriate pointers.
Laughing. I used to answer my phone, saying something like: "Hi, I'm actually home, you can talk to me instead of leaving a message, BeeeeeeP! "; and hear the automated calling machines hang up if I vocalized a clean enough beep tone. IMHO. YMMV. -- rhn A.T nicholson d.0.t C-o-M
> What information are you trying to get? Do you want to know the > frequency, or do you want to filter it out?
I want to know the frequency, but only for the purpose of tracking the tones duration (and even then, it doesn't need to be with a high degree of accuracy).
> If the range you want to search is small enough, you could use a highpass/ > bandpass filter to pick out the region you want to search in, decimate > to get the signal back to baseband, then perform the FFT on the > decimated samples. This will take fewer computations, but you would > need to do some math to figure out what frequency the peaks initially > corresponded to.
Interesting, I'll look into that approach. Thanks for the help.
On Jun 19, 7:44 pm, "Ron N." <rhnlo...@yahoo.com> wrote:
> On Jun 19, 5:47 am, Jay Fenton <jay.fen...@gmail.com> wrote: > > > I've been trying to find the most optimal algorithm to detect a > > sustained burst of > > tone at an unknown (but higher than speech) frequency in realtime, for > > use in > > voicemail detection (think long beep). I don't have much experience in > > the signal > > processing realms, and would appreciate any appropriate pointers. > > Laughing. I used to answer my phone, saying something like: > "Hi, I'm actually home, you can talk to me instead of leaving a > message, BeeeeeeP! "; and hear the automated calling machines > hang up if I vocalized a clean enough beep tone.
Ahh, is that why I got a cold response from some.. I swear there's not an automated calling machine in sight :) We're just not that obnoxious.
> > processing realms, and would appreciate any appropriate pointers. > > US Patent 7124075 > > http://www.google.com/patents?id=dB97AAAAEBAJ
Okay, slightly less optimal than the patented version ;)