DSPRelated.com
Forums

RE: DTMF Decoder

Started by shahram heidari March 20, 2002
Hi Franck

Thank you so much for your response. I will appreciate
if you send me some part of your code about following
topics, if it is possible for you, and also answer me:

1. It is used multiplying factor (1/8) while the
number of sample is 16, x(n),...x(n+15). Which of them
is correct, 8 or 16 sample ?

2. Is the specified length of buffer (8 or 16 after
clarification item 1) sufficient for preventation of
overflow without preventation of overflow in
energy(Zero delay autocorelation) in N2 (processing
length of input) samples in input ?

3. Althogh it is a much more expectation from you, but
if you can, please explain me how can I measure and
calculate GAIN_THR o input and following thresholds,
as well. (I am a speech coding specialist and this the
first time I am trying on DTMF algorithm).

THR_SIG1 Threshold for possible tone
THR_SIG2 Threshold for definite tone
THR_PA Threshold for pause energy
THR_STDTWI Threshold for standard twist
THR_REVTWI Threshold for reverse twist
THR_ROWREL Threshold for row's relative peak ratio
THR_ROW2nd Threshold for row's 2nd harmonic ratio
THR_COLREL Threshold for col's relative peak ratio
THR_COL2nd Threshold for col's 2nd harmonic ratio

With the best regards
shahram
--- Hocquet Franck <> wrote:
> Hi Shahram,
>
> As I experienced implementation of very well working
> DTMF
> in TI C54x, you can try the following algorithm,
> which is
> a part of my decoder. I have it in assembler if you
> are interested :
>
> ;The accumulation of each filter output is
> endangered by a possible
> overflow.
> ;An early overflow is prevented with an additional
> gain control, which
> protects
> ;the Goertzel filters from strong signal inputs.
> This gain control operates
> on a
> ;buffer of input samples and estimates the peak
> amplitude of upcoming
> samples.
> ;If the estimation exceeds a desired peak amplitude,
> the input samples are
> attenuated,
> ;i.e. multiplied by a factor inverse proportional to
> the peak amplitude
> estimation.
> ;
> ; Description:
> ; ------------
> ; Control gain of the input sample x(n)
> ; On a 8 samples length buffer of input samples, the
> average peak
> ; amplitude GAIN_amp is computed using the last 8
> samples. The current
> ; input samples are then attenuated using the foll
> formulas:
> ;
> ; GAIN_const = (1/2)SQRT(2)
> ; GAIN_amp =
>
GAIN_const*(1/8)*[abs(x(n))+abs(x(n+1))+...+abs(x(n+15))]
> ;
> ; if( GAIN_AMP > GAIN_THR )
> ; y(n) = (GAIN_THR/GAIN_AMP) * x(n)
> ; else
> ; y(n) = x(n)
> ;
> ; The only thing you have to do then is to set
> correctly GAIN_THR (depending
> ; of your input signal caracteristic that you should
> know)
>
> Hope that helps.
> Regards,
>
> Franck HOCQUET
> Field Application Engineer
> EBV Elektronik
> Paris, FRANCE > -----Original Message-----
> From: shahram heidari
> [mailto:]
> Sent: mardi 12 mars 2002 02:11
> To:
> Subject: [speechcoding] DTMF Decoder > Dear Friends
>
> I am working to simulation and implementation of
> multichannel dtmf encoder/decoder on ADSPs. I have
> found many documents and codes, which among them,
> TI's
> application notes is more completed. But in DTMF
> decoding stage before Goertzel Block the design
> should
> have a gain and amplitude control of input for
> preventation of variable in Goertzel algorithm. I
> converted this part of the TI's TMSC54x code to c++
> but it is not sufficient and some overflow will
> happen. If each of you have any experince or idea, I
> will appreciate to propose me.
>
> shahram heidari
> Field Application Engineer
> BBS Electronics Pte Ltd
> Singapore >
> ------------------------ Yahoo! Groups Sponsor
>
> _____________________________________
> Note: If you do a simple "reply" with your email
> client, only the author of
> this message will receive your answer. You need to
> do a "reply all" if you
> want your answer to be distributed to the entire
> group.
>
> _____________________________________
> About this discussion group:
>
> To Join:
>
> To Post:
>
> To Leave:
>
> Archives:
> http://www.yahoogroups.com/group/speechcoding
>
> Other DSP-Related Groups: http://www.dsprelated.com > ">http://docs.yahoo.com/info/terms/
>


__________________________________________________