Page 1 of 7

Coursework for CAN202 2024/25 S1

Summary of the coursework:

i. The coursework contributes to 20% of the final mark of CAN202.

ii. The maximum possible mark for this coursework is 100.

iii. There are three questions, where each question contains a number of sub-questions. 

iv. Assessed learning outcome: B.

v. Release date of the coursework: 7

th April 2025.

vi. Submission deadline: 23:59, 28

th April 2025.

vii. The usual late-submission policy may apply (i.e., 5 marks deduction per working day).

viii. No generative AI may be used when completing the coursework. 

ix. Please submit ONE PDF file that contains your report and FOUR .m files. See below for 

more information.

Please also read the following instructions for detailed guidance and requirements:

i. The coursework requires you to perform programming in MATLAB.

ii. Some MATLAB functions require additional toolboxes. You may need to install the following 

MATLAB Toolbox: Signal Processing Toolbox.

iii. In the .m files, you must arrange the codes according to the sequence of the sub-questions. 

Add comments such that 代写CAN202 Signal Processing Toolboxone can clearly identify the code designed for any sub-question; 

see appendix for an example.

iv. You must ensure that the .m files can be executed without any error message. If an error 

occurs during execution, then the corresponding sub-question and all following

programming sub-questions cannot earn more than 50% of their allocated marks (unless 

otherwise specified).

v. Unless otherwise specified, programming sub-questions without any executable code cannot 

earn more than 50% of their allocated marks.

vi. Any question that is not about programming can be answered by writing. Such writings 

should be clearly scanned and attached to the single PDF file that you are asked to submit. 

vii. When asked to provide plots (both in MATLAB-programming questions and analytical 

questions), please ensure that all axes are well defined and all labels and curves on the plots 

are readable to an old person.

viii. Clearly label questions’ indices. Label page numbers and the total page number in the PDF.

ix. Control the length of your answers as much as possible.

Questions will begin from the next page. Attempt ALL questions.

Page 2 of 7

  1. Double-sideband Suppressed-Carrier Amplitude Modulation (DSB-SC AM): 

In this question, you will use MATLAB and realize the modulation and demodulation of DSB SC AM. The modulating signal for this question can be found by running the command “load 

handel” in MATLAB. After running the command, you will see two variables “Fs” and “y” in 

the workspace. The variable “y” is the digital data of a piece of song “hallelujah, 

hallelujah, …”, and the variable “Fs” gives the sampling frequency in Hz that is used to 

generate the data in “y”. You can listen to the song by running the following command in 

MATLAB (make sure you adjust the volume of your loudspeaker to a safe and audible level): 

 “player = audioplayer(y, Fs); play(player);”

The value of “Fs” is 8192. This sampling frequency should practically satisfy the Nyquist 

sampling theorem, i.e., one may consider that the samples in “y” are taken by a sampling 

frequency that is at least twice as much as the “effective” bandwidth of the soundtrack. 

The carrier frequency that you must use for the DSB-SC AM signal is 𝑥 × 105 Hz, where 𝑥 is 

the last non-zero digit of your student ID. For example, if your student ID is 1234560, then 

you should use 6 × 105 Hz as the carrier frequency. The demodulation is done using 

coherent detection, i.e., the correct carrier signal is multiplied to the modulated signal, 

followed by a suitable lowpass filter. After the demodulation process, you should get the 

same piece of song as the modulating signal from “handel”. 

We will implement the above in MATLAB. When doing so, we are in fact simulating a digital 

DSB-SC AM system. The carrier frequency is significantly larger than the bandwidth of the 

modulating signal, and the highest frequency component of the modulated signal will be 

much larger than the bandwidth of the modulating signal. Sampling the modulated signal 

with insufficient sampling frequency would cause frequency aliasing (as suggested by the 

Nyquist sampling theorem). As a result, we must sample the modulated signal with a much 

higher frequency than “Fs” from “handel”. 

Based on the above information, create a .m script named as “Q1_partA_abcdefg.m” for

the sub-questions from a to i below, where abcdefg is your student ID:

a. In MATLAB, load handel and play the soundtrack. Report what you hear. (1 mark)

b. What is the maximum bandwidth of the soundtrack in “handel” such that the 

Nyquist sampling theorem is still satisfied? (1 mark)

c. Plot a block diagram that shows how a DSB-SC AM signal is generated and how 

coherent detection is performed. Note that the bandwidth in Q1-a should be used to

guide your design.11 (3 marks)

d. Use the MATLAB function “fft” to plot the magnitude spectrum of the signal “y” 

from “handel”. You must supply both the code and the resulting plot in the report. 

Also, your plot must satisfy the following:

(1) Clearly label the frequency axis in Hz.

(2) Plot the spectrum such that the 0 Hz is at the middle of the frequency plot. In 

other words, show both the “negative” and positive frequencies in the plot. 

Consider the use of the MATLAB function “fftshift”.

(3) Justify why the range of the frequency axis in your plot is correct (in relation to 

the sampling frequency that you use to perform the discrete Fourier transform).

(4 marks)

Page 3 of 7

e. It is sufficient to use the following sampling frequency to sample the DSB-SC 

modulated signal without frequency aliasing, i.e.,

 “Fs_new = ceil( (Fs/2+fc) / Fs 2 ) Fs;”

where fc is the carrier frequency you should use. Provide sufficient reasonings in the 

report on why Fs_new is sufficient to avoid frequency aliasing.1111111111(2 marks)

f. Insert more samples to “y” from “handel” such that the sampling frequency is 

changed from “Fs” to “Fs_new”. You may use the MATLAB function “resample”. 

1 (2 marks)

g. Plot the frequency spectrum of the signal in Q1-f using the MATLAB function “fft”, 

where the requirements listed in Q1-d must be satisfied. Compare the spectrum plot 

in this question to the spectrum in Q1-d and comment on your observation. 

 (4 marks)

h. Perform DSC-SC AM using the signal generated in Q1-f and a cosine carrier signal of 

the correct frequency (see rubric in the previous page). 1111111111111 (2 marks)

i. Plot the frequency spectrum of the signal generated in Q1-h. Your answer to this 

question must satisfy the requirements as specified in Q1-d. 111111 (2 marks)

j. Multiply the signal in Q1-h by the same carrier signal used for DSB-SC AM and plot 

the frequency spectrum of the resultant signal. Your answer to this question must 

satisfy the requirements as specified in Q1-d. You may need to revise the sampling 

frequency. 11111111111111111111111 (4 marks)

k. Apply lowpass filtering to the signal generated in Q1-j such that the frequency 

spectrum of the filtered signal resembles the spectrum of “y”. You may consider the 

use of the MATLAB function “lowpass”. (2 marks)

l. Down-convert the sampling frequency of the signal generated in Q1-k to 8192 Hz. 

Then, play the down-converted signal in MATLAB. Discuss whether you have heard 

the same soundtrack as the one originated from “handel”. Note that your code must 

run and play in order to get marks for this sub-question. (3 marks)

It is possible to use a non-sinusoidal periodic signal as a carrier signal. In this case, the to-be modulated periodic signal is a periodic sawtooth wave that can be decomposed into an 

infinite number of sine waves (by means of the Fourier series). The sawtooth waveform 𝑠(𝑡)

is illustrated in Figure 1, where the Fourier series representation is given as

𝑠(𝑡) =

𝐴

2

𝐴

𝜋

𝑛=1 𝑛

1

sin (

2𝜋𝑛𝑡

𝑇

) .

After applying a suitable bandpass filter to 𝑠(𝑡), one may obtain a desired carrier signal. 

Figure 1 A periodic sawtooth wave

Page 4 of 7

Use another .m script named as “Q1_partB_abcdefg.m” to answer the sub-questions from 

m to p below, where abcdefg is your student ID.

m. In MATLAB, generate a periodic sawtooth wave using the MATLAB function 

“sawtooth” using a sufficiently high sampling frequency. Then, apply a suitable filter 

such that a sinusoidal wave of the desired carrier frequency (see rubric) appears at 

the output of the filter. Plot the output signal of the filter and verify that the output 

signal is indeed a desired carrier signal. You may use MATLAB functions “lowpass” or 

“bandpass” for designing the filter. (4 marks)

n. Use the signal generated in Q1-m as the carrier and generate the DSB-SC AM signal, 

where the signal generated in Q1-f should be used as the modulating signal. 

 (2 marks)

o. In MATLAB, mix the signal in Q1-n with a suitable sinusoidal wave and apply a 

suitable lowpass filter to obtain a baseband signal. Plot the frequency spectrum of 

the filtered signal, where the spectrum plot must satisfy the requirements in Q1-d. 

(4 marks)

p. Down-sample the signal generated in Q1-o and play the signal. Comment on 

whether you hear the same piece of song as that in Q1-a. Your code must be able to 

play the down-sampled version of the signal from Q1-o. (3 marks)

(Question 1 carries 43 marks)

  1. Superheterodyne Receiver: 

In this question, you will implement a superheterodyne receiver in MATLAB to demodulate 

one piece of music from the signal that is stored in the file “soundtrack.mat”. The file 

“soundtrack.mat” should be downloaded from LMO. 

Specifically, there are 10 pieces of music that are modulated by DSB-SC AM. Each piece of 

music lasts for 23 seconds, where the music signal has a bandwidth of 5000 Hz and a 

sampling frequency of Fs=10000 Hz. According to the last digit of your student ID, you 

should demodulate the bandpass music signal that has a carrier frequency as specified in the 

table below:

Carrier Frequency Last Digit of Student ID

1.0 × 105 Hz 0

1.2 × 105 Hz 1

1.4 × 105 Hz 2

1.6 × 105 Hz 3

1.8 × 105 Hz 4

2.0 × 105 Hz 5

2.2 × 105 Hz 6

2.4 × 105 Hz 7

2.6 × 105 Hz 8

2.8 × 105 Hz 9

The signal “soundtrack” in “soundtrack.mat” are constructed by adding all 10 pieces of the 

DSB-SC AM signals, where the sampling frequency of “soundtrack” is 1140000 Hz and is 

stored as “Fs_new”. 

The baseband version of the 10 pieces of the music can be found in “music.zip”. You should 

download this file from LMO. Your task is to answer the sub-questions below which will 

enable you to demodulate the signal located at the carrier frequency as suggested by the 

table above. You must construct a superheterodyne receiver in MATLAB to perform the 

demodulation, where you must use the intermediate frequency of 𝑓𝑖 = 5 × 104 Hz.

Create a .m script named as “Q2_abcdefg.m” for answering the following sub-questions, 

where abcdefg is your student ID:

a. Plot the frequency spectrum of the signal in “soundtrack”, where you must fulfill the 

requirements in Q1-d.111111111111111111111 (4 marks)

b. Observe the frequency spectrum in Q2-a and identify the 10 modulated signals by 

specifying the carrier frequencies and the bandwidths.1 (2 marks)

c. What is the minimum required bandwidth of a communication channel such that the 

signal in “soundtrack” can be transmitted? Support your answer with evidence. 

111111111!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1!!!!!!!!!11 (2 marks)

d. For demodulation, using a superheterodyne receiver, you should first convert the 

target DSB-SC AM signal from the carrier frequency in the above table to 𝑓𝑖

, then use 

coherent detector to obtain the baseband music signal. Draw a block diagram that 

contains three filters and two mixers to achieve the demodulation, where you must 

specify the functionality of each component in the block diagram.1 (5 marks)

e. Write a piece of MATLAB code that realizes the demodulation process in Q2-d.

Specifically, you must fulfill the following requirements:

(1) Provide a frequency spectrum plot at the output of each mixer and also each 

filter (5 spectra in total). The spectra figures must satisfy the requirements in Q1-d.

(2) Make sure that the sampling frequency of the signal at the coherent detector 

output is 10000 Hz. 

(3) Play the signal at the output of the coherent detector and state if you hear a 

piece of guzheng music. 11

111111111111111!111!1 (14 marks)

f. Compare the sound you get from Q2-e to the 10 pieces of music in “music.zip”. You 

should un-zip “music.zip” and listen to each of the 10 music. Do you find one piece 

that is the same as the one from Q2-e? Are there any differences? State your answer 

and provide justifications.!!!!!!!!!!!1 (2 marks)

g. State both the last digit of your student ID and the name of the music file that best 

matches the sound you obtain from Q2-e. Note that there is a single correct 

answer.111!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! (1 mark)

(Question 2 carries 30 marks)

Page 5 of 7

Page 6 of 7

  1. Frequency Modulation (FM): 

In this question, you are asked to study the following FM signal, i.e.,

𝑥𝐹𝑀(𝑡) = cos (2𝜋𝑓𝑐

𝑡 +

2𝜋

𝛽

𝑓𝑚

∫ cos(2𝜋𝑓𝑚𝑡)

0

𝑡

) ,

where 𝑓𝑐 = 5 × 105 Hz and 𝑓𝑚 = 104 Hz. The value of 𝛽 that you should use depends on the 

last digit of your student ID; see the table below.

Last 

digit

0 1 2 3 4 5 6 7 8 9

𝛽 2 2.2 2.4 2.6 2.8 3 3.2 3.4 3.6 3.8

You need to generate a digital version of 𝑥𝐹𝑀(𝑡) with a sampling frequency of 107 Hz. 

Create a .m script named as “Q3_abcdefg.m” for answering the following sub-questions, 

where abcdefg is your student ID:

a. Select the 𝛽 value according to the above table. Then, based on the 𝛽 value, obtain 

the theoretical frequency spectrum expression for 𝑥𝐹𝑀(𝑡), assuming that 𝑥𝐹𝑀(𝑡)

lasts forever. You should use the MATLAB function “besselj” to evaluate the 

numerical value of the relevant Bessel functions of the first kind. 1111111 (3 marks)

b. In MATLAB, create and plot the signal 𝑥𝐹𝑀(𝑡) for 3 × 10−4

second, where you must 

use the settings as mentioned previously. 1!!!!!!!!11111 (2 marks)

c. In MATLAB, plot the frequency spectrum of the signal in Q3-b using the MATLAB 

function “fft”, where the frequency spectrum plot must satisfy the requirements in 

Q1-d.11 (4 marks)

d. Verify that the results in Q3-a and Q3-c agree with each other. 1 (2 marks)

e. In MATLAB, apply differentiation to the signal in 

𝑥

Q3-b and plot the resultant signal

𝐹𝑀′(𝑡). You may use the MATLAB function “gradient” for differentiation. Verify that

the envelope of the signal 𝑥𝐹𝑀′(𝑡) is oscillating at a frequency of 𝑓𝑚 Hz.11 (3 marks)

f. In MATLAB, apply a hard limiter to the signal in Q3-b, where the amplitude of the 

hard limiter output is limited to the range of [−0.1, 0.1]. Then, plot the output signal 

of the hard limiter. 11111111111111111111111111111111111 (3 marks)

g. Obtain the frequency spectrum of the output signal of the above hard limiter using 

the MATLAB function “fft”, where the spectrum must satisfy the requirements as

specified in Q1-d. Then, compare this spectrum with the spectrum obtained from 

Q3-c and discuss any differences.11111111111111111111111111111111 (6 marks)

h. Based on the result in Q3-g, apply a suitable bandpass filter to the output signal of 

the hard limiter such that the bandpass-filtered signal resembles 𝑥𝐹𝑀(𝑡). Verify your 

result by examining the frequency spectrum of the bandpass-filtered signal.

(4 marks)

(Question 3 carries 27 marks)

– End of Questions –

See Appendix next page

Appendix:

The following provides a guideline on how you may format the .m file. Other formatting is 

acceptable as long as one can clearly identify the codes for each sub-question.


xs6m32vf
1 声望0 粉丝