21ELEC14C - Signals and Systems - Project - Resit
21ELEC14C - Signals and Systems - Project - Resit
Instructions to Students
Project Description
Signals are part of our daily lives. We work with a wide variety of signals on a day-today
basis whether we realize it or not. A signal is defined as any natural quantity that varies
according to one or more independent variables such as time or space. Time is usually the
independent variable, but other variables like frequency can also be considered. Examples
of signals are a sound, an image, an electrical current or voltage, a transmitted message, and
many others. From a mathematical point of view, a signal is described by a function of one
or more independent variables. According to the number of independent variables, a signal
is characterized as a one-dimensional (1-D), a two-dimensional (2-D), or a
multidimensional signal.
Frequency assignments for the digits on a telephone keypad are shown in Figure below.
Page 2/3
The goal of this project is to develop a DTMF synthesizer function for MATLAB.
1) Develop a function named ss_dtmf1(..) to produce the signal for one digit. The syntax
of the function should be
x = ss_dtmf1 (n, t)
The first argument “n” is the digit for which the DTMF signal is to be generated. Let
values n = 0 through n = 9 represent the corresponding keys on the keypad. Map the
remaining two keys “*” and “#” to values n = 10 and n = 11 respectively. Finally, the
value n = 12 should represent a pause, that is, a silent period. The vector “t” contains
the time instants at which the DTMF signal x (t) is evaluated and returned in vector
“x”.
number: The phone number to be dialed, entered as a vector. For example, to dial
the number 555-1212, the vector ” number” would be entered as number =
[5,5,5,1,2,1,2]
dt: The time increment 𝛥𝑡 to be used in computing the amplitudes of the DTMF
signal.
nd: Parameter to control the duration of the DTMF signal for each digit. The duration
of each digit should be
𝑇𝑑 = 𝑛𝑑 𝛥𝑡
np: Parameter to control the duration of pause between consecutive digits. The
duration of pause should be
𝑇𝑝 = 𝑛𝑝 𝛥𝑡
The function ss_dtmf(..) should use the function ss_dtmf1(..) to produce the signals
xk (t) for each digit (and the pauses between digits) and append them together to create
the signal x (t).
3) Write a script to test the function ss_dtmf(..) with the number 555-1212. Use a time-
increment of 125 microseconds corresponding to 8000 values per second. The duration
of each digit should be 200 milliseconds with 80 millisecond pauses between digits.
4) Play back the resulting signal x (t) using the sound(..) function.
Page 3/3
Please note, the more insightful discussions you propose, the higher grade you get from this
project. Comparative analysis, through results and graphs, indicates your understanding.
Adding comments in codes allows us to understand your design approach.
Deliverables
At the end of the project, each student should submit the following:
• Report containing task description, MATLAB codes, and plots with clear
comments.
• All ".m" files generated by MATLAB (soft & hard copies).
• A sound file (soft copy) containing the results.
Due Dates
You need to strictly follow these due dates to get a full credit:
• Submission: by the end of xxth Week.
Page 4/3