Skip to content

DTMF v1.0

Compare
Choose a tag to compare
@eoommaa eoommaa released this 14 Jul 19:16
· 33 commits to main since this release
043aca0

Dual-Tone Multi-Frequency (DTMF)

  • DTMF projects using DFT and Goertzel algorithm based implementations developed in MATLAB

  • DTMF tone - A signal representing a digit, consisting the sum of two sinusoids or tones with frequencies from two exclusive groups (low and high group frequency)

  • DTFT tones for Digits 0-9 are sampled at Fs = 8192 Hz

    A DTMF signal is expressed as $d_N[n] = sin(2 \times \pi \times \frac {f_{L}}{F_s} \times n) + sin(2 \times \pi \times \frac {f_{H}}{F_s} \times n)$ in Hz.

DFT Based Implementation

MATLAB codes: dtmf_a.m, dtmf_f.m, dtmf_g.m, dtmf_h.m, dtmf_h.m, & dtmf_i.m

  • A: DTMF tones corresponding to Digits 0-9 using the MATLAB function sound
    • Matrix stores each DTMF tone as a pair of frequencies defined as $[f_L, f_H]$
  • F: Index $k$ for DTMF digits by computing 2048 samples of $X(e^{j\omega})$ using the MATLAB function fft
  • G: Energy spectrum of DTMF for Digit 8 by computing $|D_8(e^{j\omega_k})|^2$ using the MATLAB function fft
    • Tabulated magnitude & energy and plotted energy spectrum for Digits 0-9
  • H & I: Decoding touch-tone signals to phone numbers
    • ttdecode - Fixed length of 1000 samples for digits and 100 samples for silence
    • ttdecode2 - Varying length digits and silence
      • MATLAB code loads touch.mat to decode two input signals stored as vectors named hardx1 and hardx2

Goertzel Algorithm Based Decoder Implementation

MATLAB code: dtmf_goertzel_alg.m

  • DFT magnitude and energy spectrum of DTMF for Digit 8 by computing $|D_8[k]|$ and $|D_8[k]|^2$ using the MATLAB function goertzel
    • Tabulated DFT magnitude & energy and plots for Digits 0-9