Course Outline
Learning Outcomes
Upon completing this course, students will be equipped to tackle many open research problems in communications engineering. Specifically, they will have acquired the following core competencies:
- Mapping and manipulating complex mathematical expressions frequently encountered in communications engineering literature.
- Leveraging MATLAB’s programming capabilities to replicate or approximate simulation results from existing research papers.
- Developing simulation models for original research ideas.
- Efficiently applying simulation skills alongside MATLAB’s advanced features to design optimized code that balances runtime performance with memory usage.
- Identifying key simulation parameters for a given communication system, extracting them from the system model, and analyzing their impact on overall system performance.
Course Structure
The course material is highly interconnected. To ensure a continuous and deep understanding, it is strongly advised that students progress sequentially through the levels, mastering each prerequisite stage before advancing. The curriculum is organized into three tiers, ranging from introductory MATLAB programming to complete system simulation, as detailed below.
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 for various data representations, including time and frequency domain plots, BER plots, and antenna radiation patterns.
Foundational 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
- Matrix and vector representation of complex baseband signals in MATLAB
MATLAB Desktop Interface
- Tool bar
- Command window
- Workspace
- Command history
Variable, Vector, and Matrix Declaration
- MATLAB predefined constants
- User-defined variables
- Arrays, vectors, and matrices
- Manual matrix entry
- Interval definition
- Linear space
- Logarithmic space
- Variable naming conventions
Special Matrices
- Matrix of ones
- Matrix of zeros
- Identity matrix
Element-wise and Matrix-wise Manipulations
- Accessing specific elements
- Modifying elements
- Selective element elimination (Matrix truncation)
- Adding elements, vectors, or matrices (Matrix concatenation)
- Identifying the index of an element within a vector or matrix
- Matrix reshaping
- Matrix truncation
- Matrix concatenation
- Left-to-right and right-to-left flipping
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
- 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
- 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 (.)
- The Gamma function
- Diff and mod commands
Polynomials in MATLAB
- Polynomial representation in MATLAB
- Rational functions
- Polynomial derivatives
- Polynomial integration
- Polynomial multiplication
Linear Scale Plots
- Visualizing continuous time-continuous amplitude signals
- Visualizing stair-case 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 differencing in MATLAB
- Symbolic and numerical integration in MATLAB
- MATLAB help and documentation resources
MATLAB File Types
- Script files
- Function files
- Data files
- Local and global variables
Loops, Conditional 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
- msgbox (Message box)
Signals and Systems Operations
Sessions 07-14
The primary objectives of this section include:
- Generating random test signals necessary for evaluating the performance of various communication systems.
- Integrating elementary signal operations to implement complex communication processing functions, such as encoders, randomizers, interleavers, and spreading code generators, at both transmitter and receiver ends.
- Properly interconnecting these functional blocks to achieve specific communications tasks.
- Simulating deterministic, statistical, and semi-random indoor and outdoor narrowband channel models.
Generation of Communications Test Signals
- Generating random binary sequences
- Generating random integer sequences
- Importing and reading text files
- Reading and playing audio files
- Importing and exporting images
- Representing images as 3D matrices
- RGB to grayscale transformation
- Creating serial bit streams from 2D grayscale images
- Sub-framing of image signals and reconstruction
Signal Conditioning and Manipulation
- Amplitude scaling (gain, attenuation, amplitude normalization)
- DC level shifting
- Time scaling (time compression, rarefaction)
- Time shifting (delay, advance, circular shift)
- Measuring signal energy
- Energy and power normalization
- Energy and power scaling
- Serial-to-parallel and parallel-to-serial conversion
- Multiplexing and demultiplexing
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
- Calculating adequate 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
- Visualizing baseband signal spectra
- Effects of sampling rate and frequency windowing
- Relationships between convolution, correlation, and FFT operations
- Frequency-domain filtering (low-pass filtering focus)
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, 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 (RV)
- Generating real-valued Gaussian distributed RV
- Generating complex Gaussian distributed RV
- Generating Rayleigh distributed RV
- Generating Ricean distributed RV
- Generating Lognormally distributed RV
- Generating arbitrarily distributed RV
- Approximating unknown PDFs of RVs using histograms
- Numerical calculation of Cumulative Distribution Functions (CDF)
- 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
- Addressing mismatched sampling issues for narrowband channel impulse responses
- Sampling PDPs with arbitrary rates and fractional delay compensation
- Implementing IEEE standardized indoor and outdoor channel models
- (e.g., COST, SUI, Ultra-Wideband Channel Models)
Link Level Simulation of Practical Communication Systems
Sessions 15-24
This section addresses a critical aspect for research students: reproducing the simulation results of published papers through practical simulation.
Bit Error Rate Performance of Baseband Digital Modulation Schemes
- Performance comparison of various baseband digital modulation schemes in AWGN channels (Comprehensive simulation study to verify theoretical expressions); includes scatter plots and BER analysis.
- Performance comparison of modulation schemes in stationary and quasi-stationary fading channels; includes scatter plots and BER analysis (Comprehensive simulation study to verify theoretical expressions).
- Impact of Doppler shift channels on the performance of baseband digital modulation schemes; includes scatter plots and BER analysis.
- 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 – First 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-based systems.
- Direct sequence spread-spectrum-based systems.
- Pseudo Random Binary Sequence (PRBS) 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 performance
- Impact of code length on BER performance
- BER performance of spread-spectrum systems in multipath Slow Rayleigh Fading Channels with Zero Doppler Shift.
- BER performance analysis of spread-spectrum systems in high-mobility fading environments.
- BER performance analysis of spread-spectrum systems under 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-Wideband SS Systems
OFDM-Based Systems
- Implementation of OFDM systems using Fast Fourier Transform (FFT).
- 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 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 Carrier Frequency Offset (CFO).
- Channel Estimation in OFDM Systems.
- Frequency Domain Equalization in OFDM Systems
- Zero Forcing Equalizer
- MMSE Equalizers
- Other common performance metrics in OFDM systems (e.g., Peak-to-Average Power Ratio, Carrier-to-Interference Ratio).
- Performance analysis of OFDM systems in high-mobility fading environments (Simulation project comprising three papers)
- Paper (1): Inter-carrier interference mitigation
- Paper (2): MIMO-OFDM Systems
Optimization of MATLAB Simulation Projects
This section focuses on learning how to build and optimize MATLAB simulation projects to simplify and organize the overall process. Additionally, it addresses memory space and processing speed optimization to prevent memory overflow in limited storage systems and reduce long runtimes caused by slow processing.
- Typical structure of small-scale simulation projects.
- Extraction of simulation parameters and mapping theoretical models to simulations.
- Constructing a simulation project.
- Monte Carlo Simulation Technique.
- Standard procedures for testing a simulation project.
- Memory space management and simulation time reduction techniques
- Baseband vs. Passband simulation
- Calculating adequate pulse width for truncated arbitrary pulse shapes
- Calculating the adequate number of samples per symbol
- Determining the necessary and sufficient number of bits for system testing
GUI Programming
Developing a MATLAB code that is free of bugs and produces correct results is a significant achievement. However, effective simulation projects require control over key parameters. For this reason, an additional lecture on "Graphical User Interface (GUI) Programming" is included. This allows users to manage various parts of the simulation intuitively, rather than navigating through long source code. Furthermore, masking MATLAB code with a GUI facilitates presenting work by combining multiple results in a master window, making data comparison easier.
- Introduction to MATLAB GUIs
- Structure of MATLAB GUI function files
- Main GUI components (important properties and values)
- Local and global variables
Note: The topics covered in each level of this course are not limited to those listed above. Additionally, specific lecture items may be adjusted based on learner needs and research interests.
Requirements
To fully benefit from the extensive knowledge presented in this course, participants are expected to possess a solid foundation in common programming languages and techniques. A deep understanding of undergraduate-level communications engineering principles is highly 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