Get in Touch

Course Outline

• Course Outcomes
Upon completion of this course, students should be able to tackle many of the currently open research problems in communications engineering, having acquired at least the following skills:


• Map and manipulate complex mathematical expressions frequently encountered in communications engineering literature.

• Utilise the programming capabilities offered by MATLAB to reproduce the simulation results of published papers, or at least approximate these results.

• Develop simulation models for self-proposed ideas.


• Efficiently employ acquired simulation skills in conjunction with MATLAB's powerful capabilities to design optimised MATLAB code that minimises run time while conserving memory space.

• Identify key simulation parameters within a given communication system, extract them from the system model, and analyse their impact on system performance.

• Course Structure

The material provided in this course is highly interrelated. It is not recommended that a student progress to a new level unless they have attended and thoroughly understood the preceding level, ensuring the continuity of acquired knowledge. The course is structured into three levels, progressing from an introduction to MATLAB programming to complete system simulation, as follows:

Level 1: Communications Mathematics with MATLAB
Sessions 01-06

Upon completing this section, students will be able to evaluate complex mathematical expressions and easily construct appropriate graphs for various data representations, such as time and frequency domain plots, BER plots, antenna radiation patterns, and more.

Fundamental Concepts

1. The concept of simulation
2. The importance of simulation in communications engineering
3. MATLAB as a simulation environment
4. Matrix and vector representation of scalar signals in communications mathematics
5. Matrix and vector representations of complex baseband signals in MATLAB


MATLAB Desktop

6. Tool bar
7. Command window
8. Workspace
9. Command history

Variable, Vector, and Matrix Declaration

10. MATLAB pre-defined constants
11. User-defined variables
12. Arrays, vectors, and matrices
13. Manual matrix entry
14. Interval definition
15. Linear space
16. Logarithmic space
17. Variable naming rules

Special Matrices

18. The ones matrix
19. The zeros matrix
20. The identity matrix

Element-wise and Matrix-wise Manipulation

21. Accessing specific elements
22. Modifying elements
23. Selective elimination of elements (Matrix truncation)
24. Adding elements, vectors, or matrices (Matrix concatenation)
25. Finding the index of an element inside a vector or a matrix
26. Matrix reshaping
27. Matrix truncation
28. Matrix concatenation
29. Left-to-right and right-to-left flipping

Unary Matrix Operators

30. The Sum operator
31. The expectation operator
32. Min operator
33. Max operator
34. The trace operator
35. Matrix determinant |.|
36. Matrix inverse
37. Matrix transpose
38. Matrix Hermitian
39. …etc

Binary Matrix Operations

40. Arithmetic operations
41. Relational operations
42. Logical operations

Complex Numbers in MATLAB

43. Complex baseband representation of passband signals and RF up-conversion: a mathematical review
44. Forming complex variables, vectors, and matrices
45. Complex exponentials
46. The real part operator
47. The imaginary part operator
48. The conjugate operator (.)*
49. The absolute operator |.|
50. The argument or phase operator

MATLAB Built-in Functions

51. Vectors of vectors and matrix of matrix
52. The square root function
53. The sign function
54. The "round to integer" function
55. The "nearest lower integer" function
56. The "nearest upper integer" function
57. The factorial function
58. Logarithmic functions (exp, ln, log10, log2)
59. Trigonometric functions
60. Hyperbolic functions
61. The Q(.) function
62. The erfc(.) function
63. Bessel functions Jo (.)
64. The Gamma function
65. Diff and mod commands

Polynomials in MATLAB

66. Polynomials in MATLAB
67. Rational functions
68. Polynomial derivatives
69. Polynomial integration
70. Polynomial multiplication

Linear Scale Plots

71. Visual representations of continuous time-continuous amplitude signals
72. Visual representations of stair-case approximated signals
73. Visual representations of discrete time – discrete amplitude signals

Logarithmic Scale Plots

74. dB-decade plots (BER)
75. decade-dB plots (Bode plots, frequency response, signal spectrum)
76. decade-decade plots
77. dB-linear plots

2D Polar Plots
78. (Planar antenna radiation patterns)


3D Plots

79. 3D radiation patterns
80. Cartesian parametric plots

Optional Section (provided upon learner demand)

81. Symbolic differentiation and numerical differencing in MATLAB
82. Symbolic and numerical integration in MATLAB
83. MATLAB help and documentation

MATLAB Files

84. MATLAB script files
85. MATLAB function files
86. MATLAB data files
87. Local and global variables

Loops, Conditional Flow Control, and Decision Making in MATLAB

88. The for-end loop
89. The while-end loop
90. The if-end condition
91. The if-else-end conditions
92. The switch-case-end statement
93. Iterations, converging errors, multi-dimensional sum operators

Input and Output Display Commands

94. The input(' ') command
95. disp command
96. fprintf command
97. Message box (msgbox)


Level 2: Signals and Systems Operations (24 hrs)
Sessions 07-14

The main objectives of this section are as follows:

• Generate random test signals necessary to evaluate the performance of various communication systems.

• Integrate multiple elementary signal operations to implement a single communication processing function, such as encoders, randomisers, interleavers, and spreading code generators, at the transmitter, as well as their counterparts at the receiving terminal.

• Interconnect these blocks properly to achieve a specific communications function.

• Simulate deterministic, statistical, and semi-random indoor and outdoor narrowband channel models.


Generation of Communications Test Signals

98. Generation of a random binary sequence
99. Generation of random integer sequences
100. Importing and reading text files
101. Reading and playback of audio files
102. Importing and exporting images
103. Image as a 3D matrix
104. RGB to grey-scale transformation
105. Serial bit stream of a 2D grey-scale image
106. Sub-framing of image signals and reconstruction


Signal Conditioning and Manipulation

107. Amplitude scaling (gain, attenuation, amplitude normalisation, etc.)
108. DC level shifting
109. Time scaling (time compression, rarefaction)
110. Time shift (time delay, time advance, left and right circular time shift)
111. Measuring signal energy
112. Energy and power normalisation
113. Energy and power scaling
114. Serial-to-parallel and parallel-to-serial conversion
115. Multiplexing and de-multiplexing

Digitisation of Analog Signals

116. Time domain sampling of continuous time baseband signals in MATLAB
117. Amplitude quantisation of analog signals
118. PCM encoding of quantised analog signals
119. Decimal-to-binary and binary-to-decimal conversion
120. Pulse shaping
121. Calculation of the adequate pulse width
122. Selection of the number of samples per pulse

123. Convolution using the conv and filter commands
124. Autocorrelation and cross-correlation of time-limited signals
125. Fast Fourier Transform (FFT) and IFFT operations
126. Viewing a baseband signal spectrum
127. Effect of sampling rate and the proper frequency window
128. Relation between convolution, correlation, and FFT operations
129. Frequency domain filtering (low-pass filtering only)

Auxiliary Communications Functions

130. Randomisers and de-randomisers
131. Puncturers and de-puncturers
132. Encoders and decoders
133. Interleavers and de-interleavers

Modulators and Demodulators

134. Digital baseband modulation schemes in MATLAB
135. Visual representation of digitally modulated signals


Channel Modelling and Simulation

136. Mathematical modelling 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

137. Free space path loss and environment-dependent path loss
138. Periodic Blockage Channels


Statistical Characterisation of Common Stationary and Quasi-Stationary Multipath Fading Channels

139. Generation of a uniformly distributed Random Variable (RV)
140. Generation of a real-valued Gaussian distributed RV
141. Generation of a complex Gaussian distributed RV
142. Generation of a Rayleigh distributed RV
143. Generation of a Ricean distributed RV
144. Generation of a Lognormally distributed RV
145. Generation of an arbitrarily distributed RV
146. Approximation of an unknown probability density function (PDF) of an RV by a histogram
147. Numerical calculation of the cumulative distribution function (CDF) of an RV
148. Real and complex additive white Gaussian noise (AWGN) Channels


Channel Characterisation by its Power Delay Profile

149. Channel characterisation by its power delay profile
150. Power normalisation of the PDP
151. Extracting the channel impulse response from the PDP
152. Sampling the channel impulse response by an arbitrary sampling rate, mismatched sampling, and delay quantisation
153. The problem of mismatched sampling of the channel impulse response of narrowband channels
154. Sampling a PDP by an arbitrary sampling rate and fractional delay compensation
155. Implementation of several IEEE standardised indoor and outdoor channel models
156. (COST – SUI – Ultra Wide Band Channel Models, etc.)

Level 3: Link Level Simulation of Practical Comm. Systems (30 hrs)
Sessions 15-24

This section addresses a 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

1. 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.

2. Performance comparison of different baseband digital modulation schemes in various stationary and quasi-stationary fading channels; scatter plots, bit error rate (Comprehensive comparative study via simulation to verify theoretical expressions).

3. Impact of Doppler shift channels on the performance of baseband digital modulation schemes; scatter plots, bit error rate.

Helicopter-to-Satellite Communications

4. Paper (1): Low-Cost Real-Time Voice and Data System for Aeronautical Mobile Satellite Service (AMSS) – Problem statement and analysis
5. Paper (2): Pre-Detection Time Diversity Combining with Accurate AFC for Helicopter Satellite Communications – The first proposed solution
6. Paper (3): An Adaptive Modulation Scheme for Helicopter-Satellite Communications – A performance improvement approach

Simulation of Spread Spectrum Systems

1. Typical Architecture of spread spectrum based Systems
2. Direct sequence spread spectrum based Systems
3. Pseudo-random binary sequence (PBRS) generators
• Generation of Maximal length sequences
• Generation of Gold codes
• Generation of Walsh codes

4. Time hopping spread spectrum based Systems
5. Bit Error Rate Performance of spread spectrum based systems in AWGN channels
• Impact of coding rate r on the BER performance
• Impact of code length on the BER performance

6. Bit Error Rate Performance of spread spectrum based Systems in multipath Slow Rayleigh Fading Channels with Zero Doppler Shift
7. Bit error rate performance analysis of spread spectrum based systems in high mobility fading environments
8. Bit error rate performance analysis of spread spectrum based systems in the presence of multi-user interference
9. RGB image transmission over spread spectrum systems
10. 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

11. Implementation of OFDM systems using the Fast Fourier Transform
12. Typical Architecture of OFDM based Systems
13. 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

14. Bit Error Rate Performance of OFDM Systems in multipath Slow Rayleigh Fading Channels with Zero Doppler Shift
15. Bit Error Rate Performance of OFDM Systems in multipath Slow Rayleigh Fading Channels with CFO
16. Channel Estimation in OFDM Systems
17. Frequency Domain Equalisation in OFDM Systems
• Zero Forcing Equaliser
• MMSE Equalisers
18. Other Common Performance Metrics in OFDM Based Systems (Peak-to-Average Power Ratio, Carrier-to-Interference Ratio, etc.)
19. Performance analysis of OFDM based systems in high mobility fading environments (as a simulation project consisting of three papers)
20. Paper (1): Inter-carrier interference mitigation
21. Paper (2): MIMO-OFDM Systems


Optimisation 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 systems with limited storage or long run times arising from slow processing.

1. Typical Structure of small scale simulation projects
2. Extraction of simulation parameters and theoretical to simulation mapping
3. Building a Simulation Project
4. Monte Carlo Simulation Technique
5. A Typical Procedure for Testing a Simulation Project
6. 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 that is free from bugs and functions correctly to produce accurate results is a significant achievement. However, key parameters in a simulation project control its operation. For this reason, and others, an additional lecture on "Graphical User Interface (GUI) Programming" is provided. This allows you to maintain control over various parts of your simulation project via intuitive interface tips, rather than navigating lengthy source code full of commands. Moreover, masking your MATLAB code with a GUI facilitates the presentation of your work, enabling the combination of multiple results in a single master window and simplifying data comparison.


1. What is a MATLAB GUI
2. Structure of MATLAB GUI function file
3. Main GUI components (important properties and values)
4. 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. Furthermore, the items of each particular lecture are subject to change depending on the needs of the learners and their research interests.

Requirements

To 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-level communications engineering courses is strongly recommended.

 35 Hours

Number of participants


Price per participant

Testimonials (2)

Provisional Upcoming Courses (Require 5+ participants)

Related Categories