public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Andrew McGregor <andrew@indranet.co.nz>
To: Wolfgang Fritz <wolfgang.fritz@gmx.net>, linux-kernel@vger.kernel.org
Subject: Re: [Asterisk] DTMF noise
Date: Thu, 09 Jan 2003 08:48:03 +1300	[thread overview]
Message-ID: <70200000.1042055283@localhost.localdomain> (raw)
In-Reply-To: <3E1C4872.7080508@gmx.net>



--On Wednesday, January 08, 2003 16:49:06 +0100 Wolfgang Fritz 
<wolfgang.fritz@gmx.net> wrote:


> That is done in the isdn_audio DTMF detection but did not work very well
> with a number of phone sets I tested which seem to generate DTMF tones
> with strong harmonics. They may be out of spec but they exist.

Distortion :-)  Unfortunately, this stuff is cheap analog and even harmonic 
distortion will create havoc with that algorithm.

By the way, if you happened to be trying this with Quicknet hardware, there 
is a major overhaul to the driver coming that reduces the distortion levels 
in the analog stages of the hardware immensely.  (I suspect not as the 
thread is about isdn)

> I have a patch which adds a simple energy comparison and some
> plausablility checks to the DTMF eval code but does not look at the
> harmonics. That improved the detection with above phone sets.
>
> Maybe it would be better to reenable harmonic checks but comparing
> harmonic levels to the level of the fundamental instead of using
> absolute values as in the present implementation.

It certainly would.  And be relatively generous about the relative amount 
of harmonic allowed; something like 30%.  If you use absolute levels, 
you're at the mercy of noise and level calibration errors, both of which 
you have to assume are present.  If you require the relative level to be 
too low, you're at the mercy of distortion.

> OTOH I don't think its a good approach to check harmonics anyway but to
> check other non DTMF frequencies in the main speech band and only accept
> a DTMF if a DTMF frequency pair is present but no signal on the non DTMF
> frequencies (no signal = xxx dB below the detected DTMF levels).
>
> There exists a long text about DTMF detection somewhere on the net (I may
> have the link in the office but I'm on vacation now). What I remember is
> that a "correct" DTMF detection requires much more computing power as the
> present i4l implementation needs (much longer audio samples for the
> goertzel filter, a larger number of frequencies to check) and a standard
> test procedure with a lot of test cases which are not available to mortal
> humans (audio tapes from Bellcore IIRC)

There is a pretty good text linked in the source :-)

It's also near the top of a google for goertzel filter dtmf.

What I don't get is why the kernel links to this text, but implements one 
of the algorithms that the conclusion of that paper rejects as unable to 
satisfy the standard for DTMF detection?  Maybe the original implementor 
wanted to avoid doing matrix math in the kernel, or couldn't understand 
what to do.  The best algorithm was only twice as expensive in CPU, for 
dramatically better reliability and standards compliance.

Andrew



  parent reply	other threads:[~2003-01-08 19:39 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20030107140012$1b66@gated-at.bofh.it>
     [not found] ` <20030107150006$4896@gated-at.bofh.it>
2003-01-07 19:08   ` [Asterisk] DTMF noise Thomas Tonino
2003-01-07 22:46     ` Roy Sigurd Karlsbakk
2003-01-08  7:51       ` Thomas Tonino
2003-01-08 12:43         ` David D. Hagood
2003-01-08 13:04           ` Matti Aarnio
2003-01-08 15:49           ` Wolfgang Fritz
2003-01-08 16:30             ` Wolfgang Fritz
2003-01-08 19:48             ` Andrew McGregor [this message]
2003-01-08 22:19             ` Jamie Lokier
2003-01-09 12:51             ` David D. Hagood
2003-01-09 13:31               ` Wolfgang Fritz
2003-01-09 23:32                 ` David D. Hagood
2003-01-10  6:52                   ` Matti Aarnio
2003-01-10 12:42                     ` David D. Hagood
2003-01-10 12:03                 ` Roy Sigurd Karlsbakk
2003-01-08 20:22           ` Thomas Tonino
2003-01-09 12:42             ` David D. Hagood
2003-01-07 13:55 Roy Sigurd Karlsbakk
2003-01-07 14:49 ` [Asterisk] " Mark Spencer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=70200000.1042055283@localhost.localdomain \
    --to=andrew@indranet.co.nz \
    --cc=linux-kernel@vger.kernel.org \
    --cc=wolfgang.fritz@gmx.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox