Course Outline
Course Outcomes
Upon completion of this course, students should be equipped to tackle many open research challenges in communications engineering. They will have acquired at least the following skills:
- The ability to map and manipulate complex mathematical expressions commonly found in communications engineering literature
- The capability to utilize MATLAB's programming features to replicate or approximate simulation results from existing academic papers.
- The skill to develop simulation models for self-proposed ideas.
- The proficiency to efficiently apply simulation techniques alongside MATLAB's power to design optimized code, balancing execution time and memory usage.
- The ability to identify critical simulation parameters for specific communication systems, extract them from system models, and analyze their impact on overall system performance.
Course Structure
The material in this course is highly interconnected. It is advised that students complete and thoroughly understand each level before proceeding to the next to ensure continuous knowledge acquisition. The course is divided into three levels, progressing 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 construct appropriate graphs for various data representations, including time and frequency domain plots, BER plots, and antenna radiation patterns.
Foundational Concepts
- The concept of simulation
- The role 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 Interface
- Tool bar
- Command window
- Work space
- Command history
Declaring Variables, Vectors, and Matrices
- MATLAB pre-defined constants
- User-defined variables
- Arrays, vectors, and matrices
- Manual entry of matrices
- Defining intervals
- Linear spacing
- Logarithmic spacing
- Variable naming conventions
Special Matrices
- Matrix of ones
- Matrix of zeros
- Identity matrix
Element-wise and Matrix Operations
- Accessing specific elements
- Modifying elements
- Selective removal of elements (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 matrices 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: A mathematical review
- 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
- Q(.) function
- erfc(.) function
- Bessel functions Jo (.)
- Gamma function
- Diff and mod commands
Polynomials in MATLAB
- Handling polynomials 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 differentiation 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
- For-end loop
- While-end loop
- If-end condition
- If-else-end conditions
- Switch-case-end statement
- 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 are as follows
- Generating random test signals necessary for evaluating the performance of various communication systems
- Integrating elementary signal operations to implement single communication processing functions, such as encoders, randomizers, interleavers, and spreading code generators, at both the transmitter and receiver ends.
- Properly interconnecting these blocks to achieve a complete communication function
- Simulating 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 audio files
- Importing and exporting images
- Images as 3D matrices
- RGB to grayscale transformation
- Serial bit streams of 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, rarefaction)
- Time shifting (time delay, time advance, left and right circular time shifts)
- Measuring signal energy
- Energy and power normalization
- Energy and power scaling
- Serial-to-parallel and parallel-to-serial conversion
- Multiplexing and de-multiplexing
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 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
- Impact of sampling rate and appropriate frequency windows
- Relationship between convolution, correlation, and FFT operations
- Frequency-domain filtering, specifically 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
- 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
- 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
- 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 arbitrarily distributed random variables
- Approximating unknown probability density functions (PDF) of random variables using histograms
- Numerical calculation of the cumulative distribution function (CDF) of random variables
- Real and complex additive white Gaussian noise (AWGN) channels
Channel Characterization via Power Delay Profile
- Characterizing channels by their power delay profile
- Power normalization of the PDP
- Extracting channel impulse response from the PDP
- Sampling channel impulse response with arbitrary sampling rates, including mismatched sampling and delay
- Quantization
- Issues with mismatched sampling of channel impulse responses in narrowband channels
- Sampling 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 addresses a critical concern for research students: how to reproduce simulation results from other published papers.
Bit Error Rate Performance of Baseband Digital Modulation Schemes
- 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
- 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)
- Impact of Doppler shift channels on the performance of baseband digital modulation schemes; scatter plots, bit error rate
- 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
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 with multi-user interference
- RGB image transmission over spread spectrum systems
- Optical CDMA (OCDMA) systems
- Optical orthogonal codes (OOC)
- Performance limits of OCDMA systems; bit error rate 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 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 (Peak-to-Average Power Ratio, Carrier-to-Interference Ratio, etc.)
- Performance analysis of OFDM-based 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 a MATLAB Simulation Project
This section focuses on learning how to build and optimize MATLAB simulation projects to streamline and organize the overall simulation process. It also addresses memory space and processing speed to prevent 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 appropriate pulse width for truncated arbitrary pulse shapes
- Calculating the appropriate number of samples per symbol
- Determining the necessary and sufficient number of bits to test a system
GUI Programming
Achieving a MATLAB code that is free of bugs and produces correct results is a significant accomplishment. However, key parameters in a simulation project often require control. For this reason, an additional lecture on "Graphical User Interface (GUI) Programming" is included to place control over various parts of the simulation project at the user's fingertips, rather than navigating through lengthy source code. Furthermore, masking MATLAB code with a GUI facilitates presenting work in a way that allows combining multiple results in a single master window, making data comparison easier.
- What is a MATLAB GUI
- 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 include, but are not limited to, those listed. Additionally, specific lecture items may be adjusted based on learner needs and research interests.
Requirements
To fully leverage the extensive knowledge presented in this course, participants should possess a solid foundation in general programming languages and techniques. A thorough understanding of undergraduate-level communications engineering concepts 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