Signal Processing
The audio files dial0.wav, dial1.wav, ..., dial9.wav contain telephone dial (signalling)
tones for the numbers 0 through 9. Use the code provided in wavproc.m to read the .wav
files. Play through the PC speakers using MATLAB’s sound function.
Part (a) — 25 Marks
Each number is signalled using two simultaneous tones (DTMF, as mentioned above). Note
that the sample rate is 8kHz. Write code to calculate and plot the Fourier Transform
magnitude for each of the ten individual digits, with a correctly scaled frequency axis. In
your report, include:
1. Two representative time-domain waveforms.
2. Two representative frequency-domain waveforms.
Part (b) — 25 Marks
Show the frequency of the components, explain how you derived them from the FFT, and
compare them to what is expected from the standard DTMF frequency pair allocation.
(a) Waveforms correct & plotted correctly 25
(b) Frequencies correct & compared 25
Total 50
. . . / 5
Signal Processing Understanding the Fourier Transform Page 5
Question 2 — 50 Marks
This question asks you to determine a sequence of keys dialled – firstly clean, then noisecorrupted.
Part (a) — 10 Marks
By reading the wave file in blocks and calculating the Fourier Transform of each block,
design an algorithm and construct the code to determine the particular key sequence dialled
from the wave file alone. Test your code using the file dial0123. The determination must
be fully automatic, and must not rely on the waveforms being an exact length. In your
report, show the output of your code, clearly indicating that it has correctly determined the
sequence of keys.
Part (b) — 10 Marks
A further set of longer dial tones is provided, according to the naming convention:
dialu<c|n>.wav
where
dialu signifies “unknown dial sequence”
d is a single digit signifying the unknown file number
c|n is either “c” for “clean signal” or “n” for noisy signal
For example, dialu2n.wav is the third1 noise-corrupted unknown dial sequence. Note,
however, that the “n” file does not correspond to the “c” file — in other words, dialu3n.wav
does not necessarily contain the same key sequence as dialu3c.wav. Note also that the keys
dialled includes digits as well as the standard star (*) and hash (#) keys.
Test your code, unaltered, from the previous question for the case of a noise-corrupted
signal. For the digit “d”, use the last digit of your student number. For example, if your
student number is 0123456789, use the file dialu9n.wav. In your report, show the output
of your code, clearly indicating what your code has determined the sequence of keys to be.
Part (c) — 30 Marks
Include your MATLAB coding, and give a brief description of how you designed it, how it
works, and the salient (important) features