Course Outline
Course Learning Outcomes
Upon completing this course, participants will be equipped to tackle open research problems in communications engineering by acquiring the following key competencies:
- Ability to interpret and manipulate complex mathematical expressions commonly found in communications engineering literature
- Proficiency in utilizing MATLAB’s programming features to replicate or closely approximate simulation results from existing academic papers
- Skill in developing simulation models for original research ideas
- Capability to apply simulation skills effectively, designing MATLAB code that optimizes runtime while minimizing memory consumption
- Expertise in identifying critical simulation parameters within a communication system model and analyzing their impact on overall system performance
Course Structure
The content is highly interconnected, emphasizing a sequential learning path. It is strongly advised that learners master each level before progressing to the next to ensure a continuous and deep understanding. The course is divided into three progressive levels, starting from MATLAB programming fundamentals and advancing to complete system simulation:
Communications Mathematics with MATLAB
Sessions 01-06
By the end of this section, learners will be able to evaluate complex mathematical expressions and generate appropriate visualizations for various data representations, including time and frequency domain plots, BER plots, and antenna radiation patterns.
Fundamental Concepts
- 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
- Representation of complex baseband signals using matrices and vectors in MATLAB
MATLAB Desktop Environment
- Tool bar
- Command window
- Workspace
- Command history
Declaring Variables, Vectors, and Matrices
- MATLAB predefined constants
- User-defined variables
- Arrays, vectors, and matrices
- Manual matrix input
- Defining intervals
- Linear spacing
- Logarithmic spacing
- Variable naming conventions
Special Matrices
- Ones matrix
- Zeros matrix
- Identity matrix
Element-wise and Matrix-wise Operations
- Accessing specific elements
- Modifying elements
- Selective element removal (Matrix truncation)
- Adding elements, vectors, or matrices (Matrix concatenation)
- Locating the index of an element within a vector or matrix
- Reshaping matrices
- Truncating matrices
- Concatenating matrices
- Flipping elements from left-to-right and right-to-left
Unary Matrix Operators
- Sum operator
- Expectation operator
- Minimum (Min) operator
- Maximum (Max) operator
- Trace operator
- Matrix determinant |.|
- Matrix inverse
- Matrix transpose
- Matrix Hermitian
Binary Matrix Operations
- Arithmetic operations
- Relational operations
- Logical operations
Complex Numbers in MATLAB
- Mathematical review of complex baseband representation of passband signals and RF up-conversion
- Creating complex variables, vectors, and matrices
- Complex exponentials
- Real part operator
- Imaginary part operator
- Conjugate operator (.)*
- Absolute value operator |.|
- Argument or phase operator
MATLAB Built-in Functions
- Vector of vectors and matrix of matrices
- Square root function
- Sign function
- "Round to integer" function
- "Nearest lower integer" function (floor)
- "Nearest upper integer" function (ceil)
- 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 and mod commands
Polynomials in MATLAB
- Polynomial handling in MATLAB
- Rational functions
- Polynomial derivatives
- Polynomial integration
- Polynomial multiplication
Linear Scale Plots
- Visualizing continuous time and continuous amplitude signals
- Visualizing staircase approximated signals
- Visualizing discrete time and discrete amplitude signals
Logarithmic Scale Plots
- dB-decade plots (e.g., BER)
- Decade-dB plots (e.g., 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 request)
- Symbolic differentiation and numerical differencing in MATLAB
- Symbolic and numerical integration in MATLAB
- MATLAB help and documentation navigation
MATLAB File Management
- MATLAB script files
- MATLAB function files
- MATLAB data files
- Local and global variables
Control Flow, Decision Making, and Loops 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
- The 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 necessary for evaluating the performance of diverse communication systems
- Integrating elementary signal operations to implement complex communication processing functions, such as encoders, randomizers, interleavers, and spreading code generators, at both the transmitter and receiver
- Correctly interconnecting these functional blocks to achieve a complete communications system
- Simulating deterministic, statistical, and semi-random narrowband channel models for indoor and outdoor environments
Generating Communications Test Signals
- Generating random binary sequences
- Generating random integer sequences
- Importing and reading text files
- Reading and playing back audio files
- Importing and exporting images
- Representing images as 3D matrices
- RGB to grayscale transformation
- Serial bit stream extraction from 2D grayscale images
- Sub-framing of image signals and reconstruction
Signal Conditioning and Manipulation
- Amplitude scaling (gain, attenuation, amplitude normalization, etc.)
- DC level shifting
- Time scaling (compression and rarefaction)
- 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
- 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
- Calculating appropriate pulse width
- 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
- Viewing baseband signal spectra
- Effects of sampling rate and optimal frequency windowing
- Relationships between convolution, correlation, and FFT operations
- Frequency-domain filtering, focusing on low-pass filtering
Auxiliary Communications Functions
- Randomizers and derandomizers
- Puncturers and depuncturers
- Encoders and decoders
- Interleavers and deinterleavers
Modulators and Demodulators
- Digital baseband modulation schemes in MATLAB
- Visual representation of digitally modulated signals
Channel Modeling and Simulation
- Mathematical modeling of channel effects on transmitted signals
- Addition – 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 Model Examples
- Free-space path loss and environment-dependent path loss
- Periodic blockage channels
Statistical Characterization of Common Stationary and Quasi-Stationary Multipath Fading Channels
- Generating uniformly distributed random variables (RVs)
- Generating real-valued Gaussian distributed RVs
- Generating complex Gaussian distributed RVs
- Generating Rayleigh distributed RVs
- Generating Ricean distributed RVs
- Generating Lognormally distributed RVs
- Generating arbitrarily distributed RVs
- Approximating an unknown probability density function (PDF) using histograms
- Numerical calculation of the cumulative distribution function (CDF)
- Real and complex AWGN channels
Channel Characterization via Power Delay Profile (PDP)
- Characterizing channels by their PDP
- Power normalization of the PDP
- Extracting channel impulse response from the PDP
- Sampling channel impulse response at arbitrary rates, including mismatched sampling and delay
- Quantization
- Addressing mismatched sampling issues in narrowband channel impulse responses
- Sampling PDPs at arbitrary rates with fractional delay compensation
- Implementing IEEE standardized indoor and outdoor channel models
- Examples include COST – SUI - Ultra Wide Band Channel Models, etc.
Link Level Simulation of Practical Communication Systems
Sessions 15-24
This section addresses a critical concern for researchers: how to replicate the simulation results of published papers through independent simulation.
Bit Error Rate (BER) Performance of Baseband Digital Modulation Schemes
- Comparative performance analysis of various baseband digital modulation schemes in AWGN channels (comprehensive simulation study to verify theoretical expressions); includes scatter plots and BER metrics
- Performance comparison across different stationary and quasi-stationary fading channels; includes scatter plots and BER metrics (comprehensive simulation study to verify theoretical expressions)
- Impact of Doppler shift channels on baseband digital modulation performance; includes scatter plots and BER metrics
- 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 – Initial proposed solution
- Paper (3): An Adaptive Modulation Scheme for Helicopter-Satellite Communications – Performance improvement approach
Simulation of Spread Spectrum Systems
- Typical architecture of spread spectrum systems
- Direct sequence spread spectrum (DSSS) systems
- Pseudo random binary sequence (PBRS) generators
- Generation of maximal length sequences
- Generation of Gold codes
- Generation of Walsh codes
- Time hopping spread spectrum systems
- BER performance of spread spectrum systems in AWGN channels
- Impact of coding rate r on BER performance
- Impact of code length on BER performance
- BER performance 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
- RGB image transmission over spread spectrum systems
- Optical CDMA (OCDMA) systems
- Optical orthogonal codes (OOC)
- Performance limits of OCDMA systems; BER performance of synchronous and asynchronous OCDMA systems
Ultra-wide band (UWB) 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 performance
- Impact of cyclic prefix on BER performance
- Impact of FFT size and subcarrier spacing on BER performance
- BER performance in multipath Slow Rayleigh Fading Channels with zero Doppler shift
- BER performance in multipath Slow Rayleigh Fading Channels with Carrier Frequency Offset (CFO)
- Channel Estimation in OFDM Systems
- Frequency Domain Equalization in OFDM Systems
- Zero Forcing Equalizer
- Minimum Mean Square Error (MMSE) Equalizers
- Other common performance metrics in OFDM systems (Peak-to-Average Power Ratio, Carrier-to-Interference Ratio, etc.)
- Performance analysis of OFDM systems in high-mobility fading environments (as a simulation project consisting of three papers)
- Paper (1): Inter-carrier interference mitigation
- Paper (2): MIMO-OFDM Systems
Optimization of MATLAB Simulation Projects
The goal of this section is to master the construction and optimization of MATLAB simulation projects, streamlining the overall process. It also addresses memory management and processing speed to prevent overflow issues in resource-constrained environments and to minimize long execution times.
- Typical structure of small-scale simulation projects
- Extracting simulation parameters and mapping theoretical values to simulation parameters
- Building a comprehensive simulation project
- Monte Carlo Simulation Technique
- Standard procedures for testing simulation projects
- Memory space management and simulation time reduction techniques
- Baseband vs. Passband Simulation
- Calculating adequate pulse width for truncated arbitrary pulse shapes
- Calculating adequate samples per symbol
- Determining the necessary and sufficient number of bits for system testing
GUI Programming
While writing debug-free MATLAB code that yields correct results is a significant achievement, having a set of key parameters control the simulation is crucial. For this reason, and more, a dedicated lecture on "Graphical User Interface (GUI) Programming" is included. This allows users to manage various parts of their simulation project easily without navigating through lengthy source code. Furthermore, wrapping MATLAB code in a GUI facilitates presenting work by combining multiple results in a master window, making data comparison more intuitive.
- Introduction to MATLAB GUIs
- Structure of MATLAB GUI function files
- Main GUI components (key properties and values)
- Handling local and global variables
Note: The topics covered in each level are not limited to those listed above. Additionally, specific lecture items may be adjusted to align with the learners' needs and research interests.
Requirements
To fully benefit from the extensive knowledge presented, learners are expected to possess a foundational understanding of general programming languages and techniques. Additionally, a strong grasp of undergraduate-level communications engineering principles is highly recommended to ensure a solid comprehension of the advanced concepts covered.
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