Course Outline
Course Outcomes
Upon completing this course, students will be equipped to tackle open research problems in communications engineering, having acquired the following essential skills:
- Translate and manipulate complex mathematical expressions frequently encountered in communications engineering literature
- Leverage MATLAB's programming capabilities to reproduce simulation results from existing papers or closely approximate them
- Develop simulation models for independently proposed ideas
- Utilize simulation skills efficiently alongside MATLAB's features to design optimized code, balancing execution time and memory usage
- Identify key simulation parameters within a communication system, extract them from the system model, and analyze their impact on overall performance
Course Structure
The content in this course is highly interconnected. It is strongly advised that students master each level before progressing to the next to ensure a continuous understanding. The course is divided into three levels, ranging from introductory MATLAB programming to complete system simulation.
Communications Mathematics with MATLAB
Sessions 01-06
By the end of this section, students will be able to evaluate complex mathematical expressions and generate appropriate visualizations, including time and frequency domain plots, BER plots, and antenna radiation patterns.
Core Concepts
- Understanding the concept of simulation
- The significance of simulation in communications engineering
- MATLAB as a simulation environment
- Matrix and vector representation of scalar signals in communications mathematics
- Representing complex baseband signals as matrices and vectors in MATLAB
MATLAB Desktop Interface
- Toolbar
- Command window
- Workspace
- Command history
Declaring Variables, Vectors, and Matrices
- Pre-defined constants in MATLAB
- User-defined variables
- Arrays, vectors, and matrices
- Manual matrix entry
- Defining intervals
- Linear spacing
- Logarithmic spacing
- Variable naming conventions
Special Matrices
- Ones matrix
- Zeros matrix
- Identity matrix
Element-wise and Matrix-wise Manipulations
- Accessing specific elements
- Modifying elements
- Selective removal of elements (Matrix truncation)
- Combining elements, vectors, or matrices (Matrix concatenation)
- Locating the index of an element within a vector or matrix
- Reshaping matrices
- Truncating matrices
- Concatenating matrices
- Flipping from left to right and right to left
Unary Matrix Operators
- Sum operator
- Expectation operator
- Minimum operator
- Maximum operator
- 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
- Creating complex variables, vectors, and matrices
- Complex exponentials
- Real part operator
- Imaginary part operator
- Conjugate operator (.)*
- Absolute operator |.|
- Argument or phase operator
MATLAB Built-in Functions
- Vectors of vectors and matrices of matrices
- Square root function
- Sign function
- “Round to integer” function
- “Nearest lower integer” function
- “Nearest upper integer” function
- Factorial function
- Logarithmic functions (exp, ln, log10, log2)
- Trigonometric functions
- Hyperbolic functions
- The Q(.) function
- The erfc(.) function
- Bessel functions Jo (.)
- Gamma function
- Diff and mod commands
Polynomials in MATLAB
- Handling polynomials in MATLAB
- Rational functions
- Differentiating polynomials
- Integrating polynomials
- Multiplying polynomials
Linear Scale Plots
- Visualizing continuous time-continuous amplitude signals
- Visualizing staircase approximated signals
- Visualizing 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 (Available upon learner request)
- Symbolic differentiation and numerical differentiation in MATLAB
- Symbolic and numerical integration in MATLAB
- MATLAB help and documentation
MATLAB Files
- Script files
- Function files
- Data files
- Local and global variables
Loops, Flow Control, and Decision Making in MATLAB
- For-end loops
- While-end loops
- If-end conditions
- If-else-end conditions
- Switch-case-end statements
- Iterations, converging errors, and multi-dimensional sum operators
Input and Output Display Commands
- input(' ') command
- disp command
- fprintf command
- Message box msgbox
Signals and Systems Operations
Sessions 07-14
The primary objectives of this section include:
- Generating random test signals required to assess the performance of various communication systems
- Integrating basic signal operations to implement specific communication functions such as encoders, randomizers, interleavers, and spreading code generators on both the transmitter and receiver sides
- Properly interconnecting these blocks to achieve specific communication functions
- Simulating deterministic, statistical, and semi-random indoor and outdoor narrowband channel models
Generating Communication Test Signals
- Generating random binary sequences
- Generating random integer sequences
- Importing and reading text files
- Reading and playing audio files
- Importing and exporting images
- Images as 3D matrices
- Converting RGB to grayscale
- Serial bit streams from 2D grayscale images
- Sub-framing image signals and reconstructing them
Signal Conditioning and Manipulation
- Amplitude scaling (gain, attenuation, normalization, etc.)
- DC level shifting
- Time scaling (compression and expansion)
- Time shifting (delay, advance, and circular shifts)
- Measuring signal energy
- Normalizing energy and power
- Scaling energy and power
- Serial-to-parallel and parallel-to-serial conversion
- Multiplexing and demultiplexing
Digitizing Analog Signals
- Sampling continuous-time baseband signals in MATLAB
- Quantizing analog signal amplitudes
- PCM encoding of quantized signals
- Converting between decimal and binary formats
- Pulse shaping
- Determining appropriate pulse widths
- Selecting the number of samples per pulse
- Convolution using conv and filter commands
- Autocorrelation and cross-correlation of time-limited signals
- Fast Fourier Transform (FFT) and Inverse FFT (IFFT) operations
- Visualizing baseband signal spectra
- Impact of sampling rate and frequency window selection
- Relationship between convolution, correlation, and FFT
- Frequency domain filtering, specifically low-pass filtering
Auxiliary Communication Functions
- Randomizers and derandomizers
- Puncturers and depuncturers
- Encoders and decoders
- Interleavers and deinterleavers
Modulators and Demodulators
- Digital baseband modulation schemes in MATLAB
- Visualizing digitally modulated signals
Channel Modeling and Simulation
- Mathematical modeling of channel effects on transmitted signals
- Additive – Additive White Gaussian Noise (AWGN) channels
- Time-domain multiplication – Slow fading channels and Doppler shift in vehicular channels
- Frequency-domain multiplication – Frequency-selective fading channels
- Time-domain convolution – Channel impulse response
Deterministic Channel Models
- Free-space path loss and environment-dependent path loss
- Periodic blockage channels
Statistical Characterization of Stationary and Quasi-Stationary Multipath Fading Channels
- Generating uniformly distributed random variables (RVs)
- Generating real-valued Gaussian RVs
- Generating complex Gaussian RVs
- Generating Rayleigh-distributed RVs
- Generating Rician-distributed RVs
- Generating log-normally distributed RVs
- Generating arbitrary distributed RVs
- Approximating unknown probability density functions (PDFs) using histograms
- Numerically calculating cumulative distribution functions (CDFs)
- Real and complex AWGN channels
Channel Characterization via Power Delay Profile
- Characterizing channels by their power delay profile (PDP)
- Power normalization of the PDP
- Extracting channel impulse response from the PDP
- Sampling channel impulse response with arbitrary rates, mismatched sampling, and delay
- Quantization
- Challenges of mismatched sampling for narrowband channel impulse responses
- Sampling a PDP with arbitrary rates and fractional delay compensation
- Implementing IEEE-standardized indoor and outdoor channel models
- (COST – SUI - Ultra-Wideband Channel Models, etc.)
Link Level Simulation of Practical Communication Systems
Sessions 15-24
This section focuses on a critical issue for research students: how to reproduce simulation results from published papers.
Bit Error Rate Performance of Baseband Digital Modulation Schemes
- Comparing the performance of different baseband digital modulation schemes in AWGN channels (comprehensive simulation to verify theoretical expressions); scatter plots, BER
- Comparing performance in various stationary and quasi-stationary fading channels; scatter plots, BER (comprehensive simulation to verify theoretical expressions)
- Impact of Doppler shift channels on baseband modulation performance; scatter plots, BER
- 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
Simulating Spread Spectrum Systems
- Typical architecture of spread spectrum-based systems
- Direct sequence spread spectrum-based systems
- Pseudo-random binary sequence (PBRS) generators
- Generating maximal-length sequences
- Generating Gold codes
- Generating Walsh codes
- Time-hopping spread spectrum-based systems
- BER performance of spread spectrum systems in AWGN channels
- Impact of coding rate r on BER
- Impact of code length on BER
- BER performance of spread spectrum systems in multipath slow Rayleigh fading channels with zero Doppler shift
- BER performance analysis in high-mobility fading environments
- BER performance analysis in the presence of multi-user interference
- Transmitting RGB images over spread spectrum systems
- Optical CDMA (OCDMA) systems
- Optical orthogonal codes (OOC)
- Performance limits of OCDMA systems; BER of synchronous and asynchronous OCDMA systems
Ultra-Wideband SS Systems
OFDM-Based Systems
- Implementing OFDM systems using the Fast Fourier Transform
- Typical architecture of OFDM-based systems
- BER performance of OFDM systems in AWGN channels
- Impact of coding rate r on BER
- Impact of cyclic prefix on BER
- Impact of FFT size and subcarrier spacing on BER
- BER performance of OFDM systems in multipath slow Rayleigh fading channels with zero Doppler shift
- BER 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 performance metrics for OFDM systems (Peak-to-Average Power Ratio, Carrier-to-Interference Ratio, etc.)
- Performance analysis in high-mobility fading environments (a simulation project comprising three papers)
- Paper (1): Inter-carrier interference mitigation
- Paper (2): MIMO-OFDM Systems
Optimizing MATLAB Simulation Projects
This section aims to teach how to build and optimize MATLAB simulation projects to streamline the process. It also addresses memory management and processing speed to prevent overflow in limited storage systems or excessive run times.
- Typical structure of small-scale simulation projects
- Extracting simulation parameters and mapping theoretical models to simulation
- Constructing a simulation project
- Monte Carlo simulation techniques
- Standard procedures for testing simulation projects
- Memory management and time reduction techniques
- Baseband vs. Passband simulation
- Calculating adequate pulse width for truncated arbitrary pulse shapes
- Determining the appropriate number of samples per symbol
- Calculating the necessary and sufficient number of bits to test a system
GUI Programming
Writing debug-free MATLAB code that produces accurate results is a significant achievement. However, key parameters control the simulation. Therefore, an additional lecture on “Graphical User Interface (GUI) Programming” is included to provide intuitive control over the simulation rather than navigating lengthy source code. Additionally, a GUI enhances presentation by allowing multiple results to be combined in a master window for easier comparison.
- Introduction to MATLAB GUI
- Structure of MATLAB GUI function files
- Main GUI components (key properties and values)
- Local and global variables
Note: The topics covered include, but are not limited to, those listed. Specific lecture items may change based on learner needs and research interests.
Requirements
To fully benefit from the knowledge presented in this course, trainees should possess a solid foundation in general programming languages and techniques. A thorough understanding of undergraduate-level communications engineering courses 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