Forums

DTMF detection with Goertzel

Started by ma July 13, 2005
"Steve Underwood" <steveu@dis.org> wrote in message 
news:db66g6$10h$1@nnews.pacific.net.hk...
> Clay wrote: > >> Sliding Goertzel is a neat way of having the Goertel output on a sample >> by sample basis. It is like having blocks where all but one sample >> overlap. Hower this algo is very efficient for computing this. Think >> about a DTMF dailer's digits being on for 65mSec and off for 35mSec. >> You will need to be able to clearly see the off times in between >> digits. What is the time for 205 samples at 8000Hz? Compare this with >> 35mSec. There was an article about Sliding Goertzels in Digital Signal >> Processing Magazine a year or two ago. > > You don't really need to determine the timing with that much accuracy. Running > a set of sliding Goertzels continuously is inefficient. It is more efficient > to use TKEO to determine that narrow band energy exists, and then use > something to analyse it. Goertzel is a candidate for that analysis. I've never > actually implemented that, but it seems like the right approach for shared > resource systems where the mean as well as the peak compute load is important.
What is TKEO?
Jon Harris wrote:

>"Steve Underwood" <steveu@dis.org> wrote in message >news:db66g6$10h$1@nnews.pacific.net.hk... > > >>Clay wrote: >> >> >> >>>Sliding Goertzel is a neat way of having the Goertel output on a sample >>>by sample basis. It is like having blocks where all but one sample >>>overlap. Hower this algo is very efficient for computing this. Think >>>about a DTMF dailer's digits being on for 65mSec and off for 35mSec. >>>You will need to be able to clearly see the off times in between >>>digits. What is the time for 205 samples at 8000Hz? Compare this with >>>35mSec. There was an article about Sliding Goertzels in Digital Signal >>>Processing Magazine a year or two ago. >>> >>> >>You don't really need to determine the timing with that much accuracy. Running >>a set of sliding Goertzels continuously is inefficient. It is more efficient >>to use TKEO to determine that narrow band energy exists, and then use >>something to analyse it. Goertzel is a candidate for that analysis. I've never >>actually implemented that, but it seems like the right approach for shared >>resource systems where the mean as well as the peak compute load is important. >> >> > >What is TKEO? > >
A quick bit of Googling confirms it is the Teager-Kaiser Energy Operator. :-) Regards, Steve
Hi Clay,

I have to design a tone signalling system for stereo 15-20 kHz digital 
audio channel. The customer need 8 binary flags (on/off).
I think about four tones from 16 to 17,5 khz, 500Hz spaced, and Goertzel 
detection algorithm.
16 tone pairs from left and right channel give 16 states I nedd for flags.
Is this a good idea ?
What is the minimal lenght of tone signal ?
Will be grateful for suggestions. :-)

Best regards

Roman Rumian
Speaking of DTMF,

I actually have a Bell 247B DTMF decoder  (discrete transistors, pot
cores, and relays)  still in serivce in a ham radio link in my
basement...

Anybody remember  those?

Man, have times changed....

:-)

Mark

Mark wrote:
> Speaking of DTMF,
> I actually have a Bell 247B DTMF decoder (discrete transistors, pot > cores, and relays) still in serivce in a ham radio link in my > basement...
No, but I remember that the original DTMF touch-tone phones used a one transistor circuit to generate them. They wanted to minimize the number of the least reliable component. -- glen
Roman Rumian wrote:
> Hi Clay, > > I have to design a tone signalling system for stereo 15-20 kHz digital > audio channel. The customer need 8 binary flags (on/off). > I think about four tones from 16 to 17,5 khz, 500Hz spaced, and Goertzel > detection algorithm. > 16 tone pairs from left and right channel give 16 states I nedd for flags. > Is this a good idea ? > What is the minimal lenght of tone signal ? > Will be grateful for suggestions. :-) > > Best regards > > Roman Rumian
Three bits determine which tone, and a fourth determines on/off. Without the on/off tone, you need eight tones for eight flags. I think that's the more reliable way. 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;
"Roman Rumian" <usun_torumian@agh.edu.pl> wrote in message 
news:db92at$97b$1@galaxy.uci.agh.edu.pl...
> Hi Clay, > > I have to design a tone signalling system for stereo 15-20 kHz digital > audio channel. The customer need 8 binary flags (on/off). > I think about four tones from 16 to 17,5 khz, 500Hz spaced, and Goertzel > detection algorithm. > 16 tone pairs from left and right channel give 16 states I nedd for flags. > Is this a good idea ? > What is the minimal lenght of tone signal ? > Will be grateful for suggestions. :-) > > Best regards > > Roman Rumian
Hello Roman, I guess a few questions are in order. Are those tones going to be coexisting with other sounds? Or is your channel going to be perfectly quiet with 96 dB S/N? Or what level of noise will your system have to be able to tolerate? Also are these tones going to be recorded on tape or some other mechanism where the playback will introduce a frequency error or amplitude variations (Wow, Flutter and Fade)? Standard DTMF allowed for something in the order of 1.5% frequency variation. Are you going to layer some protocol with error handling onto your communications mechanism? If not you can use long tone bursts and long detect times to protect against false triggering. DTMF's use of two simultaneous tones is a form of protection against false triggering. The twist requirement was another. If you will tell me more about your application, I may be able to help more. Some of DTMF's constraints came from the relatively narrow bandwidth of the channel and the slowness of human dialing. How fast do you need to send your data? Do you have a lot of data to send? Will a Bell 202 FSK modem and a UART work? Clay
"Steve Underwood" <steveu@dis.org> wrote in message 
news:db7nfq$m3s$1@home.itg.ti.com...
> Jon Harris wrote: > >>"Steve Underwood" <steveu@dis.org> wrote in message >>news:db66g6$10h$1@nnews.pacific.net.hk... >> >>>Clay wrote: >>> >>> >>>>Sliding Goertzel is a neat way of having the Goertel output on a sample >>>>by sample basis. It is like having blocks where all but one sample >>>>overlap. Hower this algo is very efficient for computing this. Think >>>>about a DTMF dailer's digits being on for 65mSec and off for 35mSec. >>>>You will need to be able to clearly see the off times in between >>>>digits. What is the time for 205 samples at 8000Hz? Compare this with >>>>35mSec. There was an article about Sliding Goertzels in Digital Signal >>>>Processing Magazine a year or two ago. >>>> >>>You don't really need to determine the timing with that much accuracy. >>>Running a set of sliding Goertzels continuously is inefficient. It is more >>>efficient to use TKEO to determine that narrow band energy exists, and then >>>use something to analyse it. Goertzel is a candidate for that analysis. I've >>>never actually implemented that, but it seems like the right approach for >>>shared resource systems where the mean as well as the peak compute load is >>>important. >> >>What is TKEO? > A quick bit of Googling confirms it is the Teager-Kaiser Energy Operator. :-) > > Regards, > Steve
Thanks. A little more Googling found this informative article: http://www.freescale.com/files/dsp/doc/app_note/AN2384.pdf -- Jon Harris SPAM blocker in place: Remove 99 (but leave 7) to reply
Hello Clay,

thank you for fast response !

Clay S. Turner napisa&#2013266099;(a):
(...)
> Hello Roman, > > I guess a few questions are in order. Are those tones going to be coexisting > with other sounds? Or is your channel going to be perfectly quiet with 96 dB > S/N?
Yes, this channel is quiet as I use 15 kHz lowpass FIR filter.
> Or what level of noise will your system have to be able to tolerate?
This is satellite 256kbit/s channel transporting MPEG Audio stream.
> Also are these tones going to be recorded on tape or some other mechanism > where the playback will introduce a frequency error or amplitude variations > (Wow, Flutter and Fade)?
No, this tones won't be recorded. I need them to just send state of 8 digital inputs to outputs on the receiver side. In near future, one of these bits will be used for serial transmission, so I ask for the save frequency of bit changes.
> Standard DTMF allowed for something in the order of > 1.5% frequency variation. Are you going to layer some protocol with error > handling onto your communications mechanism? If not you can use long tone > bursts and long detect times to protect against false triggering.
I do not want big amplitude long tones because they impoverish the pool of bits for the audio signal. Of course, I do not want errors, so maybe have to repeat tone some times (the transmission is one way)? State changes are very rare (once per few minutes), but time position of first slope is important, so sliding Goertzel aroused me. Think, that have to design system which will be able to send state changes of all bits simultaneously.
> DTMF's use > of two simultaneous tones is a form of protection against false triggering. > The twist requirement was another.
Yes, I know, but are they necessary in such a clean, digital situation ? I have 4 days to implement this system so complicated mechanisms are not welcome. :-) If you will tell me more about your
> application, I may be able to help more. Some of DTMF's constraints came > from the relatively narrow bandwidth of the channel and the slowness of > human dialing. How fast do you need to send your data? Do you have a lot of > data to send? Will a Bell 202 FSK modem and a UART work?
Not now, maybe for 1-2 months and with slow data rate (up to 1 kbit/s). Sampling frequency is 48kHz, and the tone frequencies may be (should be ?) chosen taking this into account. With best regards Roman Rumian
Hi Jerry,

Jerry Avins napisa&#2013266099;(a):
> Roman Rumian wrote: > >> Hi Clay, >> >> I have to design a tone signalling system for stereo 15-20 kHz digital >> audio channel. The customer need 8 binary flags (on/off). >> I think about four tones from 16 to 17,5 khz, 500Hz spaced, and >> Goertzel detection algorithm. >> 16 tone pairs from left and right channel give 16 states I nedd for >> flags. >> Is this a good idea ? >> What is the minimal lenght of tone signal ? >> Will be grateful for suggestions. :-) >> >> Best regards >> >> Roman Rumian > > > Three bits determine which tone, and a fourth determines on/off. Without > the on/off tone, you need eight tones for eight flags. I think that's > the more reliable way. > > Jerry
hm ... you mean " three tones determine which bit and fourth on/off" ? The problem is, that static presence of some (4 ?) tones in both (left and right) channel are unwanted, as they take valuable mpeg bits, but maybe short tone pulses are not safe ? Thank you ! Roman