Course Outline
Course Outcomes
Upon completing this course, students should be equipped to tackle many of the open research problems in communications engineering. Specifically, they should have acquired at least the following competencies:
- The ability to map and manipulate complex mathematical expressions frequently encountered in communications engineering literature
- The skill to leverage MATLAB’s programming features to replicate or closely approximate the simulation results found in academic papers
- The capacity to build simulation models for original, self-proposed ideas
- Proficiency in applying simulation skills alongside MATLAB’s powerful features to design optimized code that balances execution time with memory efficiency
- The capability to identify key simulation parameters in communication systems, extract them from system models, and evaluate their impact on overall system performance
Course Structure
The content in this course is highly interdependent. It is advised that students proceed level by level, ensuring a deep understanding of each stage before advancing, to maintain the continuity of acquired knowledge. The course is organized into three levels, progressing from introductory MATLAB programming to complete system simulation.
Communications Mathematics with MATLAB
Sessions 01-06
After completing this section, students will be able to evaluate complex mathematical expressions and easily create appropriate visualizations, such as 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
- 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 conventions
Special Matrices
- The ones matrix
- The zeros matrix
- The identity matrix
Element-wise and Matrix-wise Operations
- Accessing specific elements
- Modifying elements
- Selective elimination of elements (Matrix truncation)
- Adding elements, vectors, or matrices (Matrix concatenation)
- Finding 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
- 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: a mathematical review
- Creating 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 matrices of matrices
- 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 and mod commands
Polynomials in MATLAB
- Polynomial representation 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 (Provided based on learner demand)
- 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, Conditional 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, and multi-dimensional sum operators
Input and Output Display Commands
- The input(' ') command
- disp command
- fprintf command
- Message box (msgbox)
Signal and System Operations
Sessions 07-14
The primary objectives of this section are to:
- Generate random test signals required to evaluate the performance of various communication systems
- Integrate elementary signal operations to implement complex communication processing functions, such as encoders, randomizers, interleavers, and spreading code generators, at both the transmitter and receiver
- Properly interconnect these functional blocks to achieve a complete communication system
- Simulate deterministic, statistical, and semi-random indoor and outdoor narrowband channel models
Generation of Communication 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
- Images as 3D matrices
- RGB to grayscale transformation
- Serial bit streams 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 (time compression, expansion)
- Time shifting (time delay, time advance, circular time 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 operations
- Visualizing baseband signal spectra
- The effect of sampling rate and proper frequency windowing
- Relationships between convolution, correlation, and FFT operations
- Frequency-domain filtering, including low-pass filtering
Auxiliary Communication 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 Modeling and Simulation
- Mathematical modeling of channel effects on transmitted signals
- Additive White Gaussian Noise (AWGN) channels
- Slow fading channels and Doppler shift in vehicular environments
- Frequency-selective fading channels
- Channel impulse response convolution
Examples of 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
- Generating real-valued Gaussian distributed random variables
- Generating complex Gaussian distributed random variables
- Generating Rayleigh distributed random variables
- Generating Ricean distributed random variables
- Generating Lognormally distributed random variables
- Generating arbitrary distributed random variables
- Approximating unknown probability density functions (PDF) using histograms
- Numerical calculation of the cumulative distribution function (CDF)
- Real and complex Additive White Gaussian Noise (AWGN) channels
Channel Characterization via Power Delay Profile
- Characterizing channels using their power delay profile (PDP)
- Power normalization of the PDP
- Extracting the channel impulse response from the PDP
- Sampling the channel impulse response with arbitrary rates, mismatched sampling, and delay
- Quantization
- The issue of mismatched sampling for narrowband channel impulse responses
- Sampling a PDP with arbitrary rates and fractional delay compensation
- Implementation of IEEE standardized indoor and outdoor channel models
- (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 research students: how to replicate the simulation results of published papers. It focuses on practical verification and analysis through 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); including scatter plots and BER analysis
- Performance comparison of modulation schemes in different stationary and quasi-stationary fading channels; including scatter plots and BER analysis (comprehensive simulation study to verify theoretical expressions)
- The impact of Doppler shift channels on the performance of baseband digital modulation schemes; including 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 – 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 (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 BER performance
- Impact of code length on 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 environments
- 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; BER performance of synchronous and asynchronous OCDMA systems
Ultra-Wideband 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 BER performance
- Impact of the cyclic prefix on BER performance
- Impact of FFT size and subcarrier spacing on 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 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-based systems (e.g., Peak-to-Average Power Ratio, Carrier-to-Interference Ratio)
- Performance analysis of OFDM-based systems in high-mobility fading environments (simulation project consisting of 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 simplify and organize the overall simulation process. It also addresses memory space and processing speed to avoid memory overflow issues in limited storage systems or long run times caused by slow processing.
- Typical structure of small-scale simulation projects
- Extraction of simulation parameters and mapping from theoretical to simulation models
- 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
- Calculating adequate pulse width for truncated arbitrary pulse shapes
- Calculating the adequate number of samples per symbol
- Calculating the necessary and sufficient number of bits for system testing
GUI Programming
Creating a MATLAB code that is free of bugs and produces correct results is a significant achievement. However, since a set of key parameters controls the simulation, an additional lecture on "Graphical User Interface (GUI) Programming" is included. This allows for direct control over various parts of the simulation project without navigating long source code. Furthermore, wrapping MATLAB code in a GUI facilitates presenting work by combining multiple results in a single master window, making data comparison easier.
- Introduction to MATLAB GUI
- Structure of a 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 listed. Additionally, the specific items in each lecture may be adjusted based on learner needs and research interests.
Requirements
To effectively absorb the depth of knowledge presented in this course, participants should possess a solid foundation in common programming languages and techniques. A thorough 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