Date Assigned: Tuesday, February 17, 2004
Date Due: Thursday, February 26, 2004
The "touch-tones" that we use to place a telephone call
are encoded using the dual-tone multifrequency (DTMF) code.
Each button on the telephone is encoded by a sum of two
equal-amplitude sine waves, with frequencies
as shown in the following table.
Frequency (Hz) | 1209 | 1336 | 1477 |
697 | 1 | 2 | 3 |
770 | 4 | 5 | 6 |
852 | 7 | 8 | 9 |
941 | * | 0 | # |
An audio file that plays each tone for 0.5 seconds is available by clicking here. The sequence is 123456789*0#.
Suppose that you are designing a system to decode the DTMF signals. How long must the DTMF signal stay "on" in order for your decoder to reliably distinguish between the 12 signals? You would like to design a system that requires a signal duration that is as small as possible. We will examine this question from three viewpoints. First, we will use Fourier transform analysis to estimate the required duration of the signals. Then we will use MATLAB to verify and further refine our estimate. Finally, we will use the Fast Fourier Transform (FFT) to analyze sampled DTMF signals. This exercise will also help introduce you to MATLAB and the FFT.
Analytical Approach
A DTMF signal with duration T seconds can be modeled as
a sum of two cosine signals with frequencies
fr and fc, multiplied by a rectangle function.
For example, the DTMF signal for "1" is
Questions:
We can use MATLAB to plot the amplitude spectra
of DTMF signals.
An example MATLAB program
dtmf_ft.m
can be downloaded from the Web page for this assignment.
Note that the sinc function in MATLAB is defined as
sinc(x) = sin(pi x)/(pi x), while the Lathi
text defines the sinc function as
sinc(x) = sin(x)/(x).
To run this program on the Sun computers or PCs:
Run the program for various choices of signal duration T.
You should be able to verify and possibly refine your
estimate of the minimum duration T that you determined
above.
Please discuss how these results relate to your analysis
in the previous section.
In this section,
we will analyze data files that contain samples of DTMF signals.
Three different values of signal duration T are used in
the data files.
The sampling rate is 8192 samples per second,
so samples are spaced by 1/8192 seconds.
Your results in this section should agree with your previous analysis.
Begin by downloading the following 15 data files.
Each data set (A, B, and C) uses a different value for T.
A sample MATLAB program that uses the FFT to plot the amplitude spectrum
of a data set is available at
dtmf_fft.m
Please answer the following questions for each data set A, B, and C.
Plotting Fourier Transforms with MATLAB
Analysis of Sampled DTMF Signals with the FFT
If you would like to generate DTMF signals with a different
duration T, you can use the MATLAB program
dtmf_gen.m