Contact US

Log In

Come Join Us!

Are you an
Engineering professional?
Join Eng-Tips Forums!
  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It's Free!

*Eng-Tips's functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

Posting Guidelines

Promoting, selling, recruiting, coursework and thesis posting is forbidden.

Students Click Here



Hey all,

I am trying to decode a dtmf signal which according to the time plots in Matlab comprises of 5 digits. My problem is that i can't seem to find a way of detecting the start and end of the individual tones in the wavefile. I don't intend to use a fixed tone length, as this is not pratical when  someone presses the key for a longer time. I also do not intend to use a fixed individual tone sample length, although chances are that it might be fixed in the wavefile i have. Could someone please advise on how i can pick up the silent portions between the tones?

hope it all makes sense


hi IRstuff,

Self-schooling DSP, and have been checking on time and frequency domain analysis techniques like thresholding,segmentation and the like but all seem to apply a fixed tone length and sample length- which can work well sometimes- i have been hitting hard on how i can automatically pick-up the silent portions (samples) of the dtmf signal- of which i admit i got stuck- help appreciated



The simplest solution, which is also what the actual circuitry uses, is some sort of thresholding function, either fixed, variable, or adaptive.


FAQ731-376: Eng-Tips.com Forum Policies


hi IRstuff
I tried to implement thresholding, but the problem is the time magnitude of the dtmf will not be necessarily at zero or near zero when the next number is pressed. in other words the preceding time domain value of the dtmf could be any value, although of course steady (not oscillatory) during the silent period. is there a method of taking advantage of the fact that the dtmf signal will be non-oscillatory during the silent period?

thanks- help appreciated



settled on block oriented matlab fft - ofcourse you are right thresholding is about amplitude. maybe i failed to put it across clearly, my problem was on knowing/detecting where the silence periods were. nways thats not necessary when i process the wave file in frame by frame.obviously it does affect my frequency resolution.



???? I'm still confused...  The "silent" periods are when the signal does not go above the threshold, by definition.  

The only trick is determining the threshold in the first place.  You can either pick a fixed value, based on some observation of actual signals, or, you could come up with some sort of adaptive threshold, like something that produces a constant false alarm rate (CFAR).  You add enough fading memory to ensure that individual tones don't bump up the threshold too fast.


FAQ731-376: Eng-Tips.com Forum Policies

Red Flag This Post

Please let us know here why this post is inappropriate. Reasons such as off-topic, duplicates, flames, illegal, vulgar, or students posting their homework.

Red Flag Submitted

Thank you for helping keep Eng-Tips Forums free from inappropriate posts.
The Eng-Tips staff will check this out and take appropriate action.

Reply To This Thread

Posting in the Eng-Tips forums is a member-only feature.

Click Here to join Eng-Tips and talk with other members! Already a Member? Login


Close Box

Join Eng-Tips® Today!

Join your peers on the Internet's largest technical engineering professional community.
It's easy to join and it's free.

Here's Why Members Love Eng-Tips Forums:

Register now while it's still free!

Already a member? Close this window and log in.

Join Us             Close