Re: [Asterisk] DTMF noise

From: David D. Hagood (wowbagger@sktc.net)
Date: Thu Jan 09 2003 - 07:42:19 EST


Thomas Tonino wrote:

> The original idea does one better by splitting high and low bands first.

<snip>

> But it may be more expensive computationally than doing twice the number
> of Goertzel filters.

Not really - the Goertzel filter is a fairly cheap filter. A filter to
split the low band frequencies off from the high band, then doing the 8
Goertzel filters for tone detection burns more MIPS than just doing the
8 Goertzel filters. Furthurmore, the result is the same - you get the
energies in the 8 tones.

> Harmonics seem like a bad idea. In between frequencies are better, but
> using the total band energy must be the most sure way to detect
> interference.
>

Not really. The problem with the total energy approach is that the least
amount of real noise will prevent tone detection, and if you set the
threshold high enough that white noise does not prevent tone detection
then you get falsing in voice.

If you have 1mW/Hz of white noise, then that is 2700 mW of noise power
across the band. With voice, you get one of two types of "noise" -
either voiced signals with lots of energy at harmonicly related
frequencies, or unvoiced fricatives ("s", "f") that are basically white
noise. A voiced signal with a total power of 2000 mW of power and a
fundemental at one of the tone frequencies might have 1000 mW of power
at the tone energy, and the remaining 1000 mW on the harmonics. Yet, if
your noise threshold is set to not be blocked by the white noise case
(2700 mW of power), then it would accept the voice case (1000 mW of power).

The 16 filter algorithm is the one we use in radio - it lets us pick a
tone out of a staticy signal without falsing on voice.

It helps to think of looking at the signal on an audio spectrum analyzer
- a DTMF tone looks like 2 peaks. If the signal in question has more
than 2 peaks, it isn't DTMF.

-
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/



This archive was generated by hypermail 2b29 : Wed Jan 15 2003 - 22:00:28 EST