EEEN3009J Digital Communications 2023/2024
Assignment 1 - M-ary Digital Communication System
You are required to use MATLAB for simulating a digital communication system that uses M-ary modulation (you can assume M=8; there are M = 8 equiprobable transmit symbols). The system model is shown on the left- hand side of Figure 1. Transmission is over an Additive White Gaussian noise (AWGN) channel. The signal space diagram for the modulation scheme is shown on the right-hand side of Figure 1. Note that it is sufficient to simulate the equivalent vector channel (you do not need to simulate the waveforms). You are required to complete two scenarios specified below to accomplish this task.
Figure 1
Assignment Requirements:
Scenario 1 (50%):
-
Write a code for simulating the 8-ary communication system.
-
Use your simulation to plot the Symbol Error Rate (SER) versus the Es=N0 curve for the system. Plot
SER on a log scale and Es=N0 in dB.
-
Then, on the same graph, plot the theoretical SER curve for the system. To do this, you will need to
derive an expression for the probability of symbol error for this system as a function of Es=N0.
-
Choose a bit to symbol mapping for the transmitter. Describe your mapping clearly, and explain why
you chose this particular mapping.
-
On a new graph, plot the Bit Error Rate (BER) versus the Eb=N0 curve for the system. Plot BER on a
log scale and Eb=N0 in dB. From this curve, estimate the value of Eb=N0 above which the system BER
lies below 10-4 (or if this takes too long a time, 10-3).
Important: Do not use any procedures or constructs from either the Simulink library or the
Communication toolbox for this scenario.
Tips:
• The function rand generates a random number which is uniformly distributed between 0 and
1. Thus, for example, b = rand < 0.5 generates a random bit b.
-
The function randn generates a Gaussian-distributed random number with mean 0 and variance 1. Thus, multiplying this number by σ produces a Gaussian-distributed random number with mean 0 and variance σ2.
-
The function semilogy(x,y) plots x against y, rather like plot(x,y), except that it uses a log scale for the y-axis.
Scenario 2 (50%):
-
Use the Simulink library to generate the error rate curves and constellation diagram specified in
Scenario 1.
-
Extend your work to simulate the constellation of a 16-ary communication system.
-
Comment on the efficiency of communication systems when the M value is increasing.