DSPRelated.com
Forums

tone detection advice needed/wanted

Started by jacobfenton April 22, 2010
I am doing tone detection of 4 known frequencies using the Goertzel
algorithm. The tones have a large bandwidth that I must be able to detect
them, up to +/-4% of the tone value. To do this the Goertzel is set up to
have large bin width, which makes the SNR not so good. Is there perhaps
another approach that will have similar computation time as the Goertzel,
but allow for better SNR? 

Thanks.

-Jacob Fenton
On Apr 22, 12:25�pm, "jacobfenton"
<jacob.fenton@n_o_s_p_a_m.gmail.com> wrote:
> I am doing tone detection of 4 known frequencies using the Goertzel > algorithm. The tones have a large bandwidth that I must be able to detect > them, up to +/-4% of the tone value. To do this the Goertzel is set up to > have large bin width, which makes the SNR not so good. Is there perhaps > another approach that will have similar computation time as the Goertzel, > but allow for better SNR? > > Thanks. > > -Jacob Fenton
One approach might be to use a bank of bandpass filters around the frequencies of interest. Instead of having 4 fat filters, use 4 clusters of a few narrower filters (you probably want them to overlap a bit). You can keep the SNR at the output of each filter relatively high since they are still narrow. You would have more computations to do, however. Jason
>On Apr 22, 12:25=A0pm, "jacobfenton" ><jacob.fenton@n_o_s_p_a_m.gmail.com> wrote: >> I am doing tone detection of 4 known frequencies using the Goertzel >> algorithm. The tones have a large bandwidth that I must be able to
detect
>> them, up to +/-4% of the tone value. To do this the Goertzel is set up
to
>> have large bin width, which makes the SNR not so good. Is there perhaps >> another approach that will have similar computation time as the
Goertzel,
>> but allow for better SNR? >> >> Thanks. >> >> -Jacob Fenton > >One approach might be to use a bank of bandpass filters around the >frequencies of interest. Instead of having 4 fat filters, use 4 >clusters of a few narrower filters (you probably want them to overlap >a bit). You can keep the SNR at the output of each filter relatively >high since they are still narrow. You would have more computations to >do, however. > >Jason >
Yes, it seems other options I am looking at will require more computations.
On Apr 22, 12:25&#4294967295;pm, "jacobfenton"
<jacob.fenton@n_o_s_p_a_m.gmail.com> wrote:
> I am doing tone detection of 4 known frequencies using the Goertzel > algorithm. The tones have a large bandwidth that I must be able to detect > them, up to +/-4% of the tone value. To do this the Goertzel is set up to > have large bin width, which makes the SNR not so good. Is there perhaps > another approach that will have similar computation time as the Goertzel, > but allow for better SNR? > > Thanks. > > -Jacob Fenton
Try Vlad's method described here in his paper: http://www.abvolt.com/research/Multitone%20detect-IEEE.pdf IHTH, Clay
>I am doing tone detection of 4 known frequencies using the Goertzel >algorithm. The tones have a large bandwidth that I must be able to detect >them, up to +/-4% of the tone value. To do this the Goertzel is set up to >have large bin width, which makes the SNR not so good. Is there perhaps >another approach that will have similar computation time as the Goertzel, >but allow for better SNR?
Your SNR issues relate to the bandwidth of your 4 receivers. Whether they are implemented by the Goertzel algorithm or some other algorithm you are going to get comparable results. The only way to improve those results is to use further knowledge of the thing you are trying to detect. You don't make clear whether you are trying to detect the individual tones, or combinations, and you don't say anything about the tone burst duration or your required detection time. Greater knowledge of these things can make a big difference. If a sustained tone is to be detected, you may be able to look not just for it being within your 4% band, but being steady. If a short but well defined length of tone burst is to be detected, testing the length of the burst can make a big difference to detection reliability. If you are looking for combinations of tones there may be further qualities which you can look for. If they start out with accurate frequencies, but suffer up to 4% doppler shift, a valid combination will never be tone A near the low end of its 4% range + tone B near the high end of its range. Homing on the details of the signal in this heuristic way can greatly improve detection reliability. Steve
"jacobfenton" <jacob.fenton@n_o_s_p_a_m.gmail.com> schrieb im Newsbeitrag
news:WoGdnezIvZLx5U3WnZ2dnUVZ_gWdnZ2d@giganews.com...
>I am doing tone detection of 4 known frequencies using the Goertzel > algorithm. The tones have a large bandwidth that I must be able to detect > them, up to +/-4% of the tone value. To do this the Goertzel is set up to > have large bin width, which makes the SNR not so good. Is there perhaps > another approach that will have similar computation time as the Goertzel, > but allow for better SNR? > > Thanks. > > -Jacob Fenton
Hello Jacob, how about using a window in front of the Goertzel? Choosing the right window, you can control the bandwidth without changing the length of the Goertzel computation. Leaving the lenght of the Goertzel computation should give you better S/N ratio. BR Gerold
On 22 apr, 18:25, "jacobfenton" <jacob.fenton@n_o_s_p_a_m.gmail.com>
wrote:
> I am doing tone detection of 4 known frequencies using the Goertzel > algorithm. The tones have a large bandwidth that I must be able to detect > them,
The term 'tone' is usually used about (nearly) monochromatic signals. A 'tone with a wide bandwidth' is pretty much a contradiction in terms. What kinds of signal are you *really* looking for?
> up to +/-4% of the tone value.
What 'value' is this? Amplitude? Frequency? Something else?
> To do this the Goertzel is set up to > have large bin width, which makes the SNR not so good. Is there perhaps > another approach that will have similar computation time as the Goertzel, > but allow for better SNR?
It depends on what signals you are working with and what you attempt to do. Rune
Hopefully this is not what you meant by "Goertzel is set up to have large
bin width" but did you try:

and IIR filter with an adjustable BW around the frequencies of interest by
placing two poles just inside the unit circle: 
alpha*exp(j*(w-deltaw)) and alpha*exp(j*(w+deltaw)). alpha is close but
less than 1 and the 4% tolerance can be met by changing deltaw.
-k

>On 22 apr, 18:25, "jacobfenton" <jacob.fenton@n_o_s_p_a_m.gmail.com> >wrote: >> I am doing tone detection of 4 known frequencies using the Goertzel >> algorithm. The tones have a large bandwidth that I must be able to
detect
>> them, > >The term 'tone' is usually used about (nearly) monochromatic >signals. A 'tone with a wide bandwidth' is pretty much a >contradiction in terms. > >What kinds of signal are you *really* looking for? > >> up to +/-4% of the tone value. > >What 'value' is this? Amplitude? Frequency? Something else? > >> To do this the Goertzel is set up to >> have large bin width, which makes the SNR not so good. Is there perhaps >> another approach that will have similar computation time as the
Goertzel,
>> but allow for better SNR? > >It depends on what signals you are working with and what >you attempt to do. > >Rune >
>>I am doing tone detection of 4 known frequencies using the Goertzel >>algorithm. The tones have a large bandwidth that I must be able to
detect
>>them, up to +/-4% of the tone value. To do this the Goertzel is set up
to
>>have large bin width, which makes the SNR not so good. Is there perhaps >>another approach that will have similar computation time as the
Goertzel,
>>but allow for better SNR? > >Your SNR issues relate to the bandwidth of your 4 receivers. Whether they >are implemented by the Goertzel algorithm or some other algorithm you are >going to get comparable results. The only way to improve those results is >to use further knowledge of the thing you are trying to detect. > >You don't make clear whether you are trying to detect the individual
tones,
>or combinations, and you don't say anything about the tone burst duration >or your required detection time. Greater knowledge of these things can
make
>a big difference. If a sustained tone is to be detected, you may be able
to
>look not just for it being within your 4% band, but being steady. If a >short but well defined length of tone burst is to be detected, testing
the
>length of the burst can make a big difference to detection reliability.
If
>you are looking for combinations of tones there may be further qualities >which you can look for. If they start out with accurate frequencies, but >suffer up to 4% doppler shift, a valid combination will never be tone A >near the low end of its 4% range + tone B near the high end of its range. >Homing on the details of the signal in this heuristic way can greatly >improve detection reliability. > >Steve > > >
The tones are from an FM signal, so they are individual or combined, depending on how many tones are being sent. I will have to inquire more about the 4%, if its due to doppler or not, it is not specified in that detail. I appreciate your response.
>On 22 apr, 18:25, "jacobfenton" <jacob.fenton@n_o_s_p_a_m.gmail.com> >wrote: >> I am doing tone detection of 4 known frequencies using the Goertzel >> algorithm. The tones have a large bandwidth that I must be able to
detect
>> them, > >The term 'tone' is usually used about (nearly) monochromatic >signals. A 'tone with a wide bandwidth' is pretty much a >contradiction in terms. > >What kinds of signal are you *really* looking for? > >> up to +/-4% of the tone value. > >What 'value' is this? Amplitude? Frequency? Something else? > >> To do this the Goertzel is set up to >> have large bin width, which makes the SNR not so good. Is there perhaps >> another approach that will have similar computation time as the
Goertzel,
>> but allow for better SNR? > >It depends on what signals you are working with and what >you attempt to do. > >Rune >
The tone frequencies can change up to 4% and I have to still be able to detect them.