Searching \ for 'DTMF decoding with a PIC (sigma-delta)' in subject line. ()
Make payments with PayPal - it's fast, free and secure! Help us get a faster server
FAQ page: www.piclist.com/techref/pots/dtmf.htm?key=dtmf
Search entire site for: 'DTMF decoding with a PIC (sigma-delta)'.

Truncated match.
PICList Thread
'DTMF Decoding with a PIC (sigma-delta)'
2000\05\23@174944 by Walter Banks

picon face
This may have some merit. A few years ago we looked at software
based DTMF decoders that would meet CCITT spec's. What we found was
that using a FFT to get a power spectrum we needed a A/D converter
between 10 and 12 bits,  a processor with 10 MIPs and a hardware multiply.

DTMF generation in the same system was accomplished by synthesizing
the sigma-delta signal in software and sending it out a single bit with
a RC low pass filter. The sample rate on the sigma-delta transmitter
was 7200 Hz.

The whole application was written in C of course.

Walter Banks


> From: Peter L. Peres <spam_OUTplpTakeThisOuTspamACTCOM.CO.IL>
>
> Just a thought: How complicated would it be to implement a sigma-delta
> converter using the PIC itself, an analog switch and the preamp
comparator
> ? I think that the 2 component frequencies can be detected easier from
the
> differential of the signal envelope (which is the output of the
> sigma-delta) than from zero crossings. Perhaps without Fourier. If there
> would be enough time, then the PIC could manipulate the switch to cancel
> out one of the frequencies and detect the other by period measurement. I
> mean, a sigma-delta whose sample & zero frequency would be varied in
> suitable ways. Maybe using the differential AND the zero crossings would
> yield a better starting data set.

2000\05\23@212847 by Scott Dattalo

face
flavicon
face
On Tue, 23 May 2000, Walter Banks wrote:

> This may have some merit. A few years ago we looked at software
> based DTMF decoders that would meet CCITT spec's. What we found was
> that using a FFT to get a power spectrum we needed a A/D converter
> between 10 and 12 bits,  a processor with 10 MIPs and a hardware multiply.
>
> DTMF generation in the same system was accomplished by synthesizing
> the sigma-delta signal in software and sending it out a single bit with
> a RC low pass filter. The sample rate on the sigma-delta transmitter
> was 7200 Hz.

FFT's and A/D converters certainly require this power. One of the beauties of
the zero-crossing / 1-bit A/D converter approach is that you don't have to worry
"too" much about the dynamic range of the signal. You are after all, looking at
zero crossings and those occur whether the signal swings +/-1 Volt or +/- 10mV.
But I'd being lying if I said that you didn't have to worry about it at all. The
simple analog circuit to which I alluded the other day addresses this issue.
Essentially what's needed is an AGC stage.


> The whole application was written in C of course.

Then thrown in the sea afterwards? :)

{Quote hidden}

I've got a 'sigma-delta' A/D converter on my web page (which coincidently, was
introduced to me by Walter). The problem is that it's SLOW.

http://www.dattalo.com/technical/software/software.html

What could be done though, is to generate a low frequency analog signal to
cancel much of the "noise" below the DTMF band. For example, a pwm'd low pass
filtered analog signal could be subtracted from the DTMF such that the low
frequencies are suppressed somewhat. But this is not as easy as it sounds.
Basically, this is a sort of 'echo-cancellation' technique that requires a fair
amount of signal processing in it's on right. Furthermore you'd need a technique
for detecting 'low frequencies' present among the DTMF tones using only the zero
crossing info.

Another sigma-delta approach would be to try to generate a signal that cancels
the DTMF tone and then measure the signal that was generated. For example, a
simple method would be to generate a pwm wave form that is the opposite polarity
of the DTMF zero-crossing signal. In other words, every time the DTMF signal is
measured low, make the pwm output high and vice versa. Sum these two signals
through two resistors and perhaps a capacitor to ground (at the junction). The
frequencies of the PWM signal that's generated by this algorithm should be
proportional to the frequencies of the DTMF signal - more or less. I haven't
tried this, but it seems doable.

Scott

2000\05\23@214303 by Bob Ammerman

picon face
Just a quick note:

Somewhere I recently found a reference to a paper (PHd thesis?) on the web
that describes decoding DTMF using a relatively low power microcontroller. I
think, in fact, that the reference might be buried on our very own PICLIST
archive. I seen to remember that they used some pretty sophisticated
adaptive signal processing algorithms, but that their raw CPU requirements
were very modest.

Good luck,

Bob Ammerman
RAm Systems

2000\05\23@224611 by Plunkett, Dennis

flavicon
face
{Quote hidden}

       Yes the amount of processing power to decide the DTMF tone is
"smallish", however, the external ADC is excessive, and on top of that we
have only a 20mS period in which to decide what DTMF tone it is! (Worst
case), with levels down to -26dBmO
       An FFT may seem to be the solution, but IIR filters are even faster,
the problem here is the quantisation noise.
       To remove the noise at the input and improve the detection quality
(50/60Hz is a big problem) we can inject a random noise into the summing
junction of a 2nd order adaptive filter to control the coefficent adjustment
(The same can be done with the 50Hz), this will also let us provide a step
function for the received data (Gain / AGC). But unless that the PIC is free
for other tasks, it is often better to use a DTMF chip. TI have an app note
on implementing a 30 channel DTMF detector on a 320, take a look at it, you
will see that the filtering side is not excessive.

       Dennis

2000\05\24@094657 by Walter Banks

picon face
> > This may have some merit.
> > A few years ago we looked at software based DTMF decoders
> > that would meet CCITT spec's.
> >
> FFT's and A/D converters certainly require this power. One of the
> beauties of the zero-crossing you don't have to worry"too" much
> about the dynamic  range of the signal.
> Essentially what's needed is an AGC stage.
>
> I've got a 'sigma-delta' A/D converter on my web page (which
> coincidently, was introduced to me by Walter).
> The problem is that it's SLOW.

Sigma-delta is slow for a single conversion but after that it
is a continuos conversion on each update Sigma-delta has
a large dynamic range which is why we used it. It is quite
easy to get about 12 bits of conversion. The frequency
response of continuos SD is a function of sample frequency..
What you have is a fast converter whose results are time shifted.
Testing a single bit on one of the accumulation registers
gives zero crossing detection. Then use the zero crossing
algothrim to decode the DTMF tones.

As several PICster's have pointed out software DTMF decoding
that meets CCITT spec's is mostly the ability to deal with large
dynamic ranges in the incoming signal.

> Then thrown in the sea afterwards? :)

No far too useful to discard. Portable on any processor with the required
spec's It was actually developed and used in commercial modem
software by our sister company.. :))


Walter Banks

2000\05\24@113234 by David VanHorn

flavicon
face
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1


>        Yes the amount of processing power to decide the DTMF tone is
>"smallish", however, the external ADC is excessive, and on top of that we
>have only a 20mS period in which to decide what DTMF tone it is! (Worst
>case), with levels down to -26dBmO

???  DTMF dialing is speced at 10 dps, which is usually implemented as 50mS
on, 50mS off.  I've not seen any decoders that work reliably with less than
40mS



- --
Are you an ISP?  Tired of spam?
http://www.spamwhack.com  A pre-emptive strike against spam!

Where's Dave? http://www.findu.com/cgi-bin/find.cgi?kc6ete-9

-----BEGIN PGP SIGNATURE-----
Version: PGPfreeware 6.5.2 for non-commercial use <http://www.pgp.com>

iQA/AwUBOSwP3IFlGDz1l6VWEQIk8ACgomeiZlYVRHVQPyBnuwLjuC4zOOAAn05q
zzWVxCSkmJ+s9RfTw7ZRV8IW
=lT5U
-----END PGP SIGNATURE-----

2000\05\24@143841 by Peter L. Peres

flavicon
face
Hi Scott, Walter,

Scott, your intro on DFT is excellent ! I have thought of a slightly
different scheme for the hardware (using a comparator between the C and
the PIC, comparing with 1/2 Vcc).

I am going to make an application that uses a PIC to communicate to
another PIC over a phone line, to talk FM to each other. It would be nice
to make it possible to have the receiver be a modem using perhaps the old
Bell 202 (?) standard for Rx only (300 or 600 Bps). I do not think that
there will be enough 'room' in the PIC for a receiver for the same
standard. I hope to rely on the phone line/central for filtering
square wave FM beyond my line transformer and a simple RC low-pass <g>. I
have no room for magic sine waves or other such things.

Now, how does one dial DTMF with a PIC ? Sine wave lookup table, the
algorythm on your page, Microchip's application note wrt DTMF
dialing or something else ?

Am I grossly mistaken if I say that one can make a DTMF dial tone set that
is pretty far from standard wrt. harmonics 9but accurate in frequency and
amplitude ratio) and still get away with it ? In other words, if I send
two plain square waves out through two RC lowpasses and sum them then
might a receiver see what I want it to see or is this too far off the
standard ? I think that it will see what I want it to see if I supply even
a minimum of low-pass. Has anyone tried this ?

thanks,

       Peter

2000\05\24@154042 by rleggitt

picon face
> Am I grossly mistaken if I say that one can make a DTMF dial tone set that
> is pretty far from standard wrt. harmonics 9but accurate in frequency and
> amplitude ratio) and still get away with it ? In other words, if I send
> two plain square waves out through two RC lowpasses and sum them then
> might a receiver see what I want it to see or is this too far off the
> standard ? I think that it will see what I want it to see if I supply even
> a minimum of low-pass. Has anyone tried this ?
Only in every pre-DSP modem ever made. Also every alarm system. :)

2000\05\24@190654 by Plunkett, Dennis

flavicon
face
No it is not, the nominal tone length is 40mS, with some telecomunication
Auhs asking for 20mS. Note that the longer the line and the more the noise
the shorter the detection period required. Talk to Alcatel and AT&T about
this, also see Austell TS003/3/7 and 26? (Not sure about that one)

Dennis



> {Original Message removed}

2000\05\24@211725 by David Huisman

flavicon
face
The idea of using 2 square waves that are low pass filtered and then summed
is used often. You just need to adjust the gain of each signal relative to
each other to get the required 2dB pre-emphasis on the high group tones, and
the absolute level at the line less than maximum allowable (-5dBm I think
???) You need to check the levels according to the local telecom approval
authority.

Regards
David Huisman
Orbit Communications
http://www.orbitcoms.com
NSW
Australia

2000\05\25@080143 by Scott Dattalo

face
flavicon
face
On Thu, 25 May 2000, David Huisman wrote:

> The idea of using 2 square waves that are low pass filtered and then summed
> is used often. You just need to adjust the gain of each signal relative to
> each other to get the required 2dB pre-emphasis on the high group tones, and
> the absolute level at the line less than maximum allowable (-5dBm I think
> ???) You need to check the levels according to the local telecom approval
> authority.

Check out Eric Smith's DTMF dialer:

http://www.brouhaha.com/~eric/pic/dtmf.html

Scott

2000\05\26@123823 by Dan Mulally

flavicon
face
----- Original Message -----
From: "Peter L. Peres" <EraseMEplpspam_OUTspamTakeThisOuTACTCOM.CO.IL>
To: <PICLISTspamspam_OUTMITVMA.MIT.EDU>
Sent: Wednesday, May 24, 2000 12:42 PM
Subject: Re: DTMF decoding with a PIC (sigma-delta)


{Quote hidden}

DTMF tones were intentionally selected to minimize interference due to
harmonics and intermod products so you may be fine. There is a method to
generate single tones from digital functions using Walsh functions. I'm not
sure how easy it is to use for multiple tones.

Dan

2000\05\26@124444 by Dan Mulally

flavicon
face
----- Original Message -----
From: "Peter L. Peres" <@spam@plpKILLspamspamACTCOM.CO.IL>
To: <KILLspamPICLISTKILLspamspamMITVMA.MIT.EDU>
Sent: Wednesday, May 24, 2000 12:42 PM
Subject: Re: DTMF decoding with a PIC (sigma-delta)


{Quote hidden}

DTMF tones were intentionally selected to minimize interference due to
harmonics and intermod products so you may be fine. There is a method to
generate single tones from digital functions using Walsh functions. I'm not
sure how easy it is to use for multiple tones.

Dan

More... (looser matching)
- Last day of these posts
- In 2000 , 2001 only
- Today
- New search...