Phone Key DTMF Decryption with Additive Noise

April 2022
EN.520.214 Signals and Systems

Objectives:

  • Use MATLAB to generate and decode the dual-tone frequency audio for 12 keys on the phone pad
  • Investigate the effects of additive noise, diffterent channel gains, and reverberation.
  • Test the decode() function extensively to find the maximum gain allowed for successful decryption
  • Skills Applied & Outcomes:

  • Signal processing: using energy threshold and FFT to separate phone key tones from noise.
  • Validate the audio time intervals in both the time- and frequency-domain.
  • The algorithm can correctly decode individual phone key characters 80%+ of the time with noise gain = 3 (when the noise was 3 times louder than the actual signal)
  • For a = 1.4, there 90%+ of the phone numbers (length 4-10 digits) encoded entirely correctly.
  • Most of my peers' algorithms were able to have noise gains up to 0.8 - 1.1.
  • Comments:

    This is one of the most challenging and complete individual projects I've done. I learned to do my best under a tight deadlind, maximize efficiency in a code/file organizations, and clarify my scientific writing.

    Accuracy vs. noise gain.

    Accuracy vs. key press duration.

    Accuracy vs. reverberation time.

    Noisy signal with alpha = 4; FFT of a single tone; phone key DTMF.

    Workflow of the algorithm: band-pass filer -> energy band binary labels -> FFT of each interval.

    Another illustration of the above steps.

    Randomly-generated phone key sequences and their decode outputs at various alpha values. Most digits are still correct.