Messages in this thread | | | Date | Wed, 08 Jan 2003 06:43:10 -0600 | From | "David D. Hagood" <> | Subject | Re: [Asterisk] DTMF noise |
| |
Thomas Tonino wrote: > Roy Sigurd Karlsbakk wrote: > >> so - we DO NOT need a 'simplistic' DTMF decoder. > > > You need a good one. But good can be simplistic, is what I'm saying. > > DTMF was designed to be easy to decode reliably. Complex doesn't > automatically mean better. >
I haven't looked at the code, but I'd recommend using a bank of Goertzel filters -
http://www.google.com/search?hl=en&lr=&ie=ISO-8859-1&q=Goertzel+filter+DTMF&btnG=Google+Search
The basic idea is that you have 8 filters (for the 4 row and 4 column frequencies), as well as 8 filters looking at the first harmonic of the 8 frequencies. You then compare the energies in each frequency - if you see significant energy in the harmonic filter bank, discard the signal. That prevents you from detecting speech as DTMF, since speech will usually have harmonics that a good DTMF signal won't.
Since the Goertzel filters are simple, they can be implemented in fixed point math rather than floating point. At work, we've done this on a Motorola 56301 DSP, which is a fixed-point DSP. I think there's an app note from Moto on this - I'll check when I get into work today.
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |