Assignment 1: Simulation of an 8-ary Digital Communication System
You are required to write, in MATLAB, a simulation of a digital communication system which uses 8-ary modulation (there are M=8 equiprobable transmit symbols). The system model is shown on the left-hand side of Figure 1. Transmission is over the 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).
Figure1: Left: Block diagram of the 8-ary digital communication system to be simulated. Right: Signal-space diagram for the 8-ary modulation scheme.
The following are the requirements:
Use your simulation to plot the symbol error rate (SER) versus 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 E_b/N_0 curve for the system. Plot BER on a log scale and E_b/N_0 in dB.
Your program should consist of a single m-file script, and should be appropriately annotated with comments. You should not use any procedures from the MATLAB communications toolbox.
Your assignment should be submitted via moodle, and should contain two files:
o YourMATLABsimulationm-file,and
o Ashortreport(inPDFformat)containingthederivationofthetheoretical
SER as well as the two system performance graphs mentioned above. A brief commentary about the methods you used and the results you obtained should also be included in this report. The answers to the specific questions asked above should also be stated clearly in your report.
And most importantly: The program you submit should be your own work. Programs will be scrutinized for evidence of copying. Programs in which copying is found will NOT be awarded a pass grade.
You may find the following MATLAB tips useful:
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.