You are on page 1of 4

ECE301 Project #2

Dual Tone Multiple Frequencies (DTMF) Detection


In telecommunication systems, the DTMF signal is one of standard signals used in telecommunication systems.
Each key on the keypad generates a pair of tones. One is in the low-frequency group, another is in the high-
frequency group. The table below briefly describes the frequency information of DTMF signals. More details
can be found online or the posted reference.
Table 1. DTMF Keypad

1209 Hz 1336 Hz 1477 Hz 1633 Hz


697 Hz 1 2 3 A
770 Hz 4 5 6 B
852 Hz 7 8 9 C
941 Hz * 0 # D

Dataset Option #1 : Spooky ! Mysterious Phone Dialing Sound in Disney VHS Tapes

Check out this video: https://youtu.be/CrMiiNdjnbY .

Dataset Option #2:


There are 3 datasets recorded using MATLAB. All are sampled with 𝑓𝑠 = 44.1 𝑘𝐻𝑧 and 16 bits per sample. Related MATLAB
codes for recording are included in the ece301_load.m for your reference. All data are saved in all_datasets.mat. Running
ece301_load.m generates the plots below and plays those data through the computer speaker. The same 10-digit phone
number is dialed in all datasets. The tone signal for each digit lasts around 160 millisecond (ms).

Dataset#1: Clean signal with tones


Dataset#2: tone signals with light over-talk

Dataset#3: tone signals with heavy over-talk

According to the definition of discrete time Fourier transform (DTFT) and inverse discrete time Fourier transform (IDTFT),
+∞
DTFT: X(ω) = ∑𝑛=−∞ 𝑥(𝑛)𝑒 −𝑗𝜔𝑛

1 𝜋
IDTFT: 𝑥(𝑛) = 2𝜋 ∫−𝜋 X(ω)𝑒 𝑗𝜔𝑛 𝑑ω

Sinc X(ω) has a continuous variable ω , It includes infinite numbers. In digital systems, X(k) where 0 ≤ k ≤ M − 1 is computed to
represent X(ω). What would be the right choice for M will be discussed in lectures of discrete Fourier transform (DFT) and Fast Fourier
transform (FFT). A segmented signal from dataset#1 is processed for the purpose of demonstration. Running concept_demo.m
generates the figures below.
M = 44100

With peaks at 1211 Hz and 854 Hz, the 5th digit is the number 7

M = 5000

With peaks at 1208 Hz and 855 Hz, the 5th digit is the number 7
The dataset #1 is provided to test your MATLAB codes and understand the concept. The dataset2 and dataset3
are corrupted data with the “sean” noise. In order to detect the dialed numbers from these two datasets, one
may have to segment the data carefully, then examine its frequency information.
Task: Write your MATLAB codes to perform DTMF detection on the recorded data. You may choose option #1
or #2 for the data used in your project. Two students per group.

Submission Requirements:

(1) Demonstrate your work to the course instructor / Record your demon
(2) Submit all your MATLAB codes
(3) Submit the detected digits from your dataset
(4) Submit an “independent work” statement

You might also like