Re: [Asterisk] DTMF noise

David D. Hagood (wowbagger@sktc.net)
Wed, 08 Jan 2003 06:43:10 -0600


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/