Course Outline
Outcomes of this course
Upon completion of this course, students should be equipped to tackle many of the currently open research problems in the field of communications engineering. Participants will have acquired at least the following skills:
- Mapping and manipulating the complicated mathematical expressions that appear frequently in communications engineering literature.
- Utilising the programming capabilities offered by MATLAB to reproduce the simulation results of other papers or, at minimum, approach these results closely.
- Creating simulation models for self-proposed ideas.
- Employing acquired simulation skills efficiently in conjunction with powerful MATLAB capabilities to design optimised MATLAB codes. This includes minimising code run time while economising memory space.
- Identifying the key simulation parameters of a given communication system, extracting them from the system model, and studying the impact of these parameters on the performance of the system considered.
Course Structure
The material provided in this course is highly interrelated. It is recommended that students do not skip levels; instead, they should attend and deeply understand each prior level before progressing to the next to ensure the continuity of the acquired knowledge. The course is structured into three levels, starting from an introduction to MATLAB programming and culminating in complete system simulation, as follows.
Communications Mathematics with MATLAB
Sessions 01-06
After completing this section, students will be able to evaluate complicated mathematical expressions and easily construct appropriate graphs for different data representations, such as time and frequency domain plots, BER plots, and antenna radiation patterns.
Fundamental concepts
- The concept of simulation.
- The importance of simulation in communications engineering.
- MATLAB as a simulation environment.
- Matrix and vector representation of scalar signals in communications mathematics.
- Matrix and vector representations of complex baseband signals in MATLAB.
MATLAB Desktop
- Tool bar.
- Command window.
- Work space.
- Command history.
Variable, vector and matrix declaration
- MATLAB pre-defined constants.
- User-defined variables.
- Arrays, vectors and matrices.
- Manual matrix entry.
- Interval definition.
- Linear space.
- Logarithmic space.
- Variable naming rules.
Special matrices
- The ones matrix.
- The zeros matrix.
- The identity matrix.
Element-wise and matrix-wise manipulation
- Accessing specific elements.
- Modifying elements.
- Selective elimination of elements (Matrix truncation).
- Adding elements, vectors or matrices (Matrix concatenation).
- Finding the index of an element inside a vector or a matrix.
- Matrix reshaping.
- Matrix truncation.
- Matrix concatenation.
- Left to right and right to left flipping.
Unary matrix operators
- The Sum operator.
- The expectation operator.
- Min operator.
- Max operator.
- The trace operator.
- Matrix determinant |.|.
- Matrix inverse.
- Matrix transpose.
- Matrix Hermitian.
Binary matrix operations
- Arithmetic operations.
- Relational operations.
- Logical operations.
Complex numbers in MATLAB
- Complex baseband representation of passband signals and RF up-conversion, including a mathematical review.
- Forming complex variables, vectors and matrices.
- Complex exponentials.
- The real part operator.
- The imaginary part operator.
- The conjugate operator (.)*.
- The absolute operator |.|.
- The argument or phase operator.
MATLAB built in functions
- Vectors of vectors and matrix of matrix.
- The square root function.
- The sign function.
- The "round to integer" function.
- The "nearest lower integer function".
- The "nearest upper integer function".
- The factorial function.
- Logarithmic functions (exp, ln, log10, log2).
- Trigonometric functions.
- Hyperbolic functions.
- The Q(.) function.
- The erfc(.) function.
- Bessel functions Jo (.).
- The Gamma function.
- Diff, mod commands.
Polynomials in MATLAB
- Polynomials in MATLAB.
- Rational functions.
- Polynomial derivatives.
- Polynomial integration.
- Polynomial multiplication.
Linear scale plots
- Visual representations of continuous time-continuous amplitude signals.
- Visual representations of stair case approximated signals.
- Visual representations of discrete time – discrete amplitude signals.
Logarithmic scale plots
- dB-decade plots (BER).
- decade-dB plots (Bode plots, frequency response, signal spectrum).
- decade-decade plots.
- dB-linear plots.
2D Polar plots
- (planar antenna radiation patterns).
3D Plots
- 3D radiation patterns.
- Cartesian parametric plots.
Optional Section (given upon the demand of the learners)
- Symbolic differentiation and numerical differencing in MATLAB.
- Symbolic and numerical integration in MATLAB.
- MATLAB help and documentation.
MATLAB files
- MATLAB script files.
- MATLAB function files.
- MATLAB data files.
- Local and global variables.
Loops, conditions flow control and decision making in MATLAB
- The for end loop.
- The while end loop.
- The if end condition.
- The if else end conditions.
- The switch case end statement.
- Iterations, converging errors, multi-dimensional sum operators.
Input and output display commands
- The input(' ') command.
- disp command.
- fprintf command.
- Message box msgbox.
Signals and Systems Operations
Sessions 07-14
The main objectives of this section are as follows:
- Generating random test signals which are necessary to test the performance of different communication systems.
- Integrating many elementary signal operations to implement a single communication processing function, such as encoders, randomizers, interleavers, and spreading code generators at the transmitter, as well as their counterparts at the receiving terminal.
- Interconnecting these blocks properly to achieve a communications function.
- Simulation of deterministic, statistical and semi-random indoor and outdoor narrowband channel models.
Generation of communications test signals
- Generation of a random binary sequence.
- Generation of a random integer Sequences.
- Importing and reading text files.
- Reading and playback of audio files.
- Importing and exporting images.
- Image as a 3D matrix.
- RGB to gray scale transformation.
- Serial bit stream of a 2D gray scale image.
- Sub-framing of image signals and reconstruction.
Signal Conditioning and Manipulation
- Amplitude scaling (gain, attenuation, amplitude normalization…etc.).
- DC level shifting.
- Time scaling (time compression, rarefaction).
- Time shift (time delay, time advance, left and right circular time shift).
- Measuring the signal energy.
- Energy and power normalization.
- Energy and power scaling.
- Serial-to-parallel and parallel-to-serial conversion.
- Multiplexing and de-multiplexing.
Digitization of Analog Signals
- Time domain sampling of continuous time baseband signals in MATLAB.
- Amplitude quantization of analog signals.
- PCM encoding of quantized analog signals.
- Decimal-to-binary and binary-to-decimal conversion.
- Pulse shaping.
- Calculation of the adequate pulse width.
- Selection of the number of samples per pulse.
- Convolution using the conv and filter commands.
- The autocorrelation and cross-correlation of time limited signals.
- The Fast Fourier Transform (FFT) and IFFT operations.
- Viewing a baseband signal spectrum.
- Effect of sampling rate and the proper frequency window.
- Relation between the convolution, correlation and the FFT operations.
- Frequency domain filtering, low pass filtering only.
Auxiliary Communications Functions
- Randomizers and de-randomizers.
- Puncturers and de-puncturers.
- Encoders and decoders.
- Interleavers and de-interleavers.
Modulators and demodulators
- Digital baseband modulation schemes in MATLAB.
- Visual representation of digitally modulated signals.
Channel Modelling and Simulation
- Mathematical modeling of the channel effect on the transmitted signal
- Addition – additive white Gaussian noise (AWGN) channels.
- Time domain multiplication – slow fading channels, Doppler shift in vehicular channels.
- Frequency domain multiplication – frequency selective fading channels.
- Time domain convolution – channel impulse response.
Examples of deterministic channel models
- Free space path loss and environment dependent path loss.
- Periodic Blockage Channels.
Statistical Characterization of Common Stationary and Quasi-Stationary Multipath Fading Channels
- Generation of a uniformly distributed RV.
- Generation of a real valued Gaussian distributed RV.
- Generation of a complex Gaussian distributed RV.
- Generation of a Rayleigh distributed RV.
- Generation of a Ricean distributed RV.
- Generation of a Lognormally distributed RV.
- Generation of an arbitrary distributed RV.
- Approximation of an unknown probability density function (PDF) of an RV by a histogram.
- Numerical calculation of the cumulative distribution function (CDF) of an RV.
- Real and complex additive white Gaussian noise (AWGN) Channels.
Channel Characterization by its Power Delay Profile
- Channel characterization by its power delay profile.
- Power normalization of the PDP.
- Extracting the channel impulse response from the PDP.
- Sampling the channel impulse response by an arbitrary sampling rate, mismatched sampling and delay.
- quantization.
- The problem of mismatched sampling of the channel impulse response of narrow band channels.
- Sampling a PDP by an arbitrary sampling rate and fractional delay compensation.
- Implementation of several IEEE standardized indoor and outdoor channel models.
- (COST – SUI - Ultra Wide Band Channel Models…etc.).
Link Level Simulation of Practical Comm. Systems
Sessions 15-24
This section of the course addresses the most critical issue for research students: how to reproduce the simulation results of other published papers through simulation.
Bit Error Rate Performance of Baseband Digital Modulation Schemes
- Performance comparison of different baseband digital modulation schemes in AWGN channels (Comprehensive comparative study via simulation to verify theoretical expressions); scatter plots, bit error rate.
- Performance comparison of different baseband digital modulation schemes in different stationary and quasi-stationary fading channels; scatter plots, bit error rate (Comprehensive comparative study via simulation to verify theoretical expressions).
- Impact of Doppler shift channels on the performance of baseband digital modulation schemes; scatter plots, bit error rate.
- Helicopter-to-Satellite Communications
- Paper (1): Low-Cost Real-Time Voice and Data System for Aeronautical Mobile Satellite Service (AMSS) – Problem statement and analysis.
- Paper (2): Pre-Detection Time Diversity Combining with Accurate AFC for Helicopter Satellite Communications – The first proposed solution.
- Paper (3): An Adaptive Modulation Scheme for Helicopter-Satellite Communications – A performance improvement approach.
Simulation of Spread Spectrum Systems
- Typical Architecture of spread spectrum based Systems.
- Direct sequence spread spectrum based Systems.
- Pseudo random binary sequence (PBRS) generators
- Generation of Maximal length sequences.
- Generation of gold codes.
- Generation of Walsh codes.
- Time hopping spread spectrum based Systems.
- Bit Error Rate Performance of spread spectrum based systems in AWGN channels
- Impact of coding rate r on the BER performance.
- Impact of the code length on the BER performance.
- Bit Error Rate Performance of spread spectrum based Systems in multipath Slow Rayleigh Fading Channels with Zero Doppler Shift.
- Bit error rate performance analysis of spread spectrum based systems in high mobility fading enviroments.
- Bit error rate performance analysis of spread spectrum based systems in the presence of multi-user interference.
- RGB image transmission over spread spectrum systems.
- Optical CDMA (OCDMA) systems
- Optical orthogonal codes (OOC).
- Performance limits of OCDMA systems; bit error rate performance of synchronous and asynchronous OCDMA systems.
Ultra wide band SS systems
OFDM Based Systems
- Implementation of OFDM systems using the Fast Fourier Transform.
- Typical Architecture of OFDM based Systems.
- Bit Error Rate Performance of OFDM Systems in AWGN channels
- Impact of coding rate r on the BER performance.
- Impact of the cyclic prefix on the BER performance.
- Impact of the FFT size and subcarrier spacing on the BER performance.
- Bit Error Rate Performance of OFDM Systems in multipath Slow Rayleigh Fading Channels with Zero Doppler Shift.
- Bit Error Rate Performance of OFDM Systems in multipath Slow Rayleigh Fading Channels with CFO.
- Channel Estimation in OFDM Systems.
- Frequency Domain Equalization in OFDM Systems
- Zero Forcing Equalizer.
- MMSE Equalizers.
- Other Common Performance Metrics in OFDM Based Systems (Peak – to – Average Power Ratio, Carrier – to – Interference Ratio…etc.).
- Performance analysis of OFDM based systems in high mobility fading enviroments (as a simulation project consisting of three papers)
- Paper (1): Inter carrier interference mitigation.
- Paper (2): MIMO-OFDM Systems.
Optimization of a MATLAB Simulation Project
The aim of this section is to learn how to build and optimise a MATLAB simulation project to simplify and organise the overall simulation process. Furthermore, memory space and processing speed are considered to avoid memory overflow problems in limited storage systems or long run times arising from slow processing.
- Typical Structure of a small scale simulation projects.
- Extraction of simulation parameters and theoretical to simulation mapping.
- Building a Simulation Project.
- Monte Carlo Simulation Technique.
- A Typical Procedure for Testing a Simulation Project.
- Memory Space Management and Simulation Time Reduction Techniques
- Baseband vs. Passband Simulation.
- Calculation of the adequate pulse width for truncated arbitrary pulse shapes.
- Calculation of the adequate number of samples per symbol.
- Calculation of the Necessary and Sufficient Number of Bits to Test a System.
GUI programming
Having a MATLAB code free from debugs and working properly to produce correct results is a significant achievement. However, a set of key parameters in a simulation project controls the For this reason and more, an extra lecture on "Graphical User Interface (GUI) Programming" is provided to place control over various parts of your simulation project at your fingertips, rather than requiring users to dive into long source codes full of commands. Moreover, having your MATLAB code masked with a GUI helps present your work in a way that facilitates combining multiple results in one master window and makes it easier to compare data.
- What is a MATLAB GUI.
- Structure of MATLAB GUI function file.
- Main GUI components (important properties and values).
- Local and global variables.
Note: The topics covered in each level of this course include, but are not limited to, those stated in each level. Moreover, the items of each particular lecture are subject to change depending on the needs of the learners and their research interests.
Requirements
To successfully acquire the extensive knowledge embedded in this course, trainees should possess a general background in common programming languages and techniques. A deep understanding of undergraduate courses in communications engineering is strongly recommended.
Testimonials (2)
The many examples and the building of the code from start to finish.
Toon - Draka Comteq Fibre B.V.
Course - Introduction to Image Processing using Matlab
Many useful exercises, well explained