## Overview

This course contains a comprehensive material about MATLAB as a powerful simulation tool for communications. The aim of this course is to introduce MATLAB not only as a general programming language, rather, the role of the extremely powerful MATLAB capabilities as a simulation tool is emphasized. The examples given to illustrate the material of the course is not just a direct use of MATLAB commands, instead they often represent real problems.

## Requirements

In order to acquire the vast amount of knowledge embedded in this course, trainees should have general background knowledge on common programming languages and techniques. Deep understanding of undergraduate courses in communications engineering is strongly recommended.

## Course Outline

• Outcomes of this course

After the completion of this course, the student should be able to attack many of the currently open research problems in the field of communications engineering as he/she should have acquired at least the following skills:

• Map and manipulate complicated mathematical expressions that appear frequently in communications engineering literature

• Ability to use the programming capabilities offered by MATLAB in order to reproduce the simulation results of other papers or at least approach these results.

• Create the simulation models of self-proposed ideas.

• Employ the acquired simulation skills efficiently in conjunction with the powerful MATLAB capabilities to design optimized MATLAB codes in terms of the code run time while economizing the memory space.

• Identify the key simulation parameters of a given communication systems, extract them from the system model and study the impact of these parameters on the performance of the system considered.

• Course Structure

The material provided in this course is extremely correlated. It is not recommended that a student attend a level unless he/she attends and deeply understands its prior level in order to ensure the continuity of the acquired knowledge. The course is structured into three levels starting from an introduction to MATLAB programming up to the level of complete system simulation as follows.

Level 1: Communications Mathematics with MATLAB

Sessions 01-06

After the completion of this part, the student will be able to evaluate complicated mathematical expressions and easily construct the proper graphs for different data representation such as time and frequency domain plots; BER plots antenna radiation patterns…etc.

Fundamental concepts

1. The concept of simulation

2. The importance of simulation in communications engineering

3. MATLAB as a simulation enviroment

4. About matrix and vector representation of scalar signals in communications mathematics

5. Matrix and vector representations of complex baseband signals in MATLAB

MATLAB Desktop

6. Tool bar

7. Command window

8. Work space

9. Command history

Variable, vector and matrix declaration

10. MATLAB pre-defined constants

11. User defined variables

12. Arrays, vectors and matrices

13. Manual matrix entry

14. Interval definition

15. Linear space

16. Logarithmic space

17. Variable naming rules

Special matrices

18. The ones matrix

19. The zeros matrix

20. The identity matrix

Element-wise and matrix-wise manipulation

21. Accessing specific elements

22. Modifying elements

23. Selective elimination of elements (Matrix truncation)

24. Adding elements, vectors or matrices (Matrix concatenation)

25. Finding the index of an element inside a vector or a matrix

26. Matrix reshaping

27. Matrix truncation

28. Matrix concatenation

29. Left to right and right to left flipping

Unary matrix operators

30. The Sum operator

31. The expectation operator

32. Min operator

33. Max operator

34. The trace operator

35. Matrix determinant |.|

36. Matrix inverse

37. Matrix transpose

38. Matrix Hermitian

39. …etc

Binary matrix operations

40. Arithmetic operations

41. Relational operations

42. Logical operations

Complex numbers in MATLAB

43. Complex baseband representation of passband signals and RF up-conversion, a mathematical review

44. Forming complex variables, vectors and matrices

45. Complex exponentials

46. The real part operator

47. The imaginary part operator

48. The conjugate operator (.)*

49. The absolute operator |.|

50. The argument or phase operator

MATLAB built in functions

51. Vectors of vectors and matrix of matrix

52. The square root function

53. The sign function

54. The “round to integer” function

55. The “nearest lower integer function”

56. The “nearest upper integer function”

57. The factorial function

58. Logarithmic functions (exp, ln,log10,log2)

59. Trigonometric functions

60. Hyperbolic functions

61. The Q(.) function

62. The erfc(.) function

63. Bessel functions Jo (.)

64. The Gamma function

65. Diff, mod commands

Polynomials in MATLAB

66. Polynomials in MATLAB

67. Rational functions

68. Polynomial derivatives

69. Polynomial integration

70. Polynomial multiplication

Linear scale plots

71. Visual representations of continuous time-continuous amplitude signals

72. Visual representations of stair case approximated signals

73. Visual representations of discrete time – discrete amplitude signals

Logarithmic scale plots

74. dB-decade plots (BER)

75. decade-dB plots (Bode plots, frequency response, signal spectrum)

76. decade-decade plots

77. dB-linear plots

2D Polar plots

78. (planar antenna radiation patterns)

3D Plots

79. 3D radiation patterns

80. Cartesian parametric plots

Optional Section (given upon the demand of the learners)

81. Symbolic differentiation and numerical differencing in MATLAB

82. Symbolic and numerical integration in MATLAB

83. MATLAB help and documentation

MATLAB files

84. MATLAB script files

85. MATLAB function files

86. MATLAB data files

87. Local and global variables

Loops, conditions flow control and decision making in MATLAB

88. The for end loop

89. The while end loop

90. The if end condition

91. The if else end conditions

92. The switch case end statement

93. Iterations, converging errors, multi-dimensional sum operators

Input and output display commands

94. The input(‘ ‘) command

95. disp command

96. fprintf command

97. Message box msgbox

Level 2: Signals and Systems Operations (24 hrs)

Sessions 07-14

The main objectives of this part are as follows

• Generate random test signals which are necessary to test the performance of different communication systems

• Integrate many elementary signal operations may be integrated to implement a single communication processing function such as encoders, randomizers, interleavers, spreading code generators …etc. at the transmitter as well as their counterparts at the receiving terminal.

• Interconnect these blocks properly in order to achieve a communications function

• Simulation of deterministic, statistical and semi-random indoor and outdoor narrowband channel models

Generation of communications test signals

98. Generation of a random binary sequence

99. Generation of a random integer Sequences

100. Importing and reading text files

101. Reading and playback of audio files

102. Importing and exporting images

103. Image as a 3D matrix

104. RGB to gray scale transformation

105. Serial bit stream of a 2D gray scale image

106. Sub-framing of image signals and reconstruction

Signal Conditioning and Manipulation

107. Amplitude scaling (gain, attenuation, amplitude normalization…etc.)

108. DC level shifting

109. Time scaling (time compression, rarefaction)

110. Time shift (time delay, time advance, left and right circular time shift)

111. Measuring the signal energy

112. Energy and power normalization

113. Energy and power scaling

114. Serial-to-parallel and parallel-to-serial conversion

115. Multiplexing and de-multiplexing

Digitization of Analog Signals

116. Time domain sampling of continuous time baseband signals in MATLAB

117. Amplitude quantization of analog signals

118. PCM encoding of quantized analog signals

119. Decimal-to-binary and binary-to-decimal conversion

120. Pulse shaping

121. Calculation of the adequate pulse width

122. Selection of the number of samples per pulse

123. Convolution using the conv and filter commands

124. The autocorrelation and cross-correlation of time limited signals

125. The Fast Fourier Transform (FFT) and IFFT operations

126. Viewing a baseband signal spectrum

127. Effect of sampling rate and the proper frequency window

128. Relation between the convolution, correlation and the FFT operations

129. Frequency domain filtering, low pass filtering only

Auxiliary Communications Functions

130. Randomizers and de-randomizers

131. Puncturers and de-puncturers

132. Encoders and decoders

133. Interleavers and de-interleavers

Modulators and demodulators

134. Digital baseband modulation schemes in MATLAB

135. Visual representation of digitally modulated signals

Channel Modelling and Simulation

136. Mathematical modeling of the channel effect on the transmitted signal

• 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

137. Free space path loss and environment dependent path loss

138. Periodic Blockage Channels

Statistical Characterization of Common Stationary and Quasi-Stationary Multipath Fading Channels

139. Generation of a uniformly distributed RV

140. Generation of a real valued Gaussian distributed RV

141. Generation of a complex Gaussian distributed RV

142. Generation of a Rayleigh distributed RV

143. Generation of a Ricean distributed RV

144. Generation of a Lognormally distributed RV

145. Generation of an arbitrary distributed RV

146. Approximation of an unknown probability density function (PDF) of an RV by a histogram

147. Numerical calculation of the cumulative distribution function (CDF) of an RV

148. Real and complex additive white Gaussian noise (AWGN) Channels

Channel Characterization by its Power Delay Profile

149. Channel characterization by its power delay profile

150. Power normalization of the PDP

151. Extracting the channel impulse response from the PDP

152. Sampling the channel impulse response by an arbitrary sampling rate, mismatched sampling and delay quantization

153. The problem of mismatched sampling of the channel impulse response of narrow band channels

154. Sampling a PDP by an arbitrary sampling rate and fractional delay compensation

155. Implementation of several IEEE standardized indoor and outdoor channel models

156. (COST – SUI – Ultra Wide Band Channel Models…etc.)

Level 3: Link Level Simulation of Practical Comm. Systems (30 hrs)

Sessions 15-24

This part of the course is concerned with the most important issue to research students, that is, how to re-produce the simulation results of other published papers by simulation.

Bit Error Rate Performance of Baseband Digital Modulation Schemes

1. 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

2. Performance comparison of different baseband digital modulation schemes in different stationary and quasi-stationary fading channels; scatter plots, bit error rate(Comprehensive comparative study via simulation to verify theoretical expressions)

3. Impact of Doppler shift channels on the performance of baseband digital modulation schemes; scatter plots, bit error rate

Helicopter-to-Satellite Communications

4. Paper (1): Low-Cost Real-Time Voice and Data System for Aeronautical Mobile Satellite Service (AMSS) – Problem statement and analysis

5. Paper (2): Pre-Detection Time Diversity Combining with Accurate AFC for Helicopter Satellite Communications – The first proposed solution

6. Paper (3): An Adaptive Modulation Scheme for Helicopter-Satellite Communications – A performance improvement approach

Simulation of Spread Spectrum Systems

1. Typical Architecture of spread spectrum based Systems

2. Direct sequence spread spectrum based Systems

3. Pseudo random binary sequence (PBRS) generators

• Generation of Maximal length sequences

• Generation of gold codes

• Generation of Walsh codes

4. Time hopping spread spectrum based Systems

5. Bit Error Rate Performance of spread spectrum based systems in AWGN channels

• Impact of coding rate r on the BER performance

• Impact of the code length on the BER performance

6. Bit Error Rate Performance of spread spectrum based Systems in multipath Slow Rayleigh Fading Channels with Zero Doppler Shift

7. Bit error rate performance analysis of spread spectrum based systems in high mobility fading enviroments

8. Bit error rate performance analysis of spread spectrum based systems in the presence of multi-user interference

9. RGB image transmission over spread spectrum systems

10. Optical CDMA (OCDMA) systems

• Optical orthogonal codes (OOC)

• Performance limits of OCDMA systems ;bit error rate performance of synchronous and asynchronous OCDMA systems

Ultra wide band SS systems

OFDM Based Systems

11. Implementation of OFDM systems using the Fast Fourier Transform

12. Typical Architecture of OFDM based Systems

13. Bit Error Rate Performance of OFDM Systems in AWGN channels

• Impact of coding rate r on the BER performance

• Impact of the cyclic prefix on the BER performance

• Impact of the FFT size and subcarrier spacing on the BER performance

14. Bit Error Rate Performance of OFDM Systems in multipath Slow Rayleigh Fading Channels with Zero Doppler Shift

15. Bit Error Rate Performance of OFDM Systems in multipath Slow Rayleigh Fading Channels with CFO

16. Channel Estimation in OFDM Systems

17. Frequency Domain Equalization in OFDM Systems

• Zero Forcing Equalizer

• MMSE Equalizers

18. Other Common Performance Metrics in OFDM Based Systems (Peak – to – Average Power Ratio, Carrier – to – Interference Ratio…etc.)

19. Performance analysis of OFDM based systems in high mobility fading enviroments (as a simulation project consisting of three papers)

20. Paper (1): Inter carrier interference mitigation

21. Paper (2): MIMO-OFDM Systems

Optimization of a MATLAB Simulation Project

The aim of this part is to learn how to build and optimize a MATLAB simulation project in order to simplify and organize the overall simulation process. Moreover, memory space and processing speed are also considered in order to avoid memory overflow problems in limited storage systems or long run times arising from slow processing.

1. Typical Structure of a small scale simulation projects

2. Extraction of simulation parameters and theoretical to simulation mapping

3. Building a Simulation Project

4. Monte Carlo Simulation Technique

5. A Typical Procedure for Testing a Simulation Project

6. Memory Space Management and Simulation Time Reduction Techniques

• Baseband vs. Passband Simulation

• Calculation of the adequate pulse width for truncated arbitrary pulse shapes

• Calculation of the adequate number of samples per symbol

• Calculation of the Necessary and Sufficient Number of Bits to Test a System

GUI programming

Having a MATLAB code free from debugs and working properly to produce correct results is a great achievement. However, a set of key parameters in a simulation project controls the For this reason and more, an extra lecture on “Graphical User Interface (GUI) Programming” is given in order to bring the control over various parts of your simulation project at your hand tips rather than diving in a long source codes full of commands. Moreover, having your MATLAB code masked with a GUI helps presenting your work in a way that facilitates combining multi results in one master window and makes it easier to compare data.

1. What is a MATLAB GUI

2. Structure of MATLAB GUI function file

3. Main GUI components (important properties and values)

4. Local and global variables

Note: The topics covered in each level of this course include, but not limited to, those stated in each level. Moreover, the items of each particular lecture are subject to change depending on the needs of the learners and their research interests.