This is probably the first book that employs the technique of simulation experiments as a means of reinforcing the basic concepts of communication theory. Undergraduate students are generally exposed to a mathematically rigorous treatment of communications theory but seldom have the benefit of a practical-orientated approach employing modelling and simulation for a thorough assimilation of the subject. This book can supplement any standard textbook to cover this significant lacuna in the existing learning methodology. It uses MATLAB, the language of the technical computing fraternity for the purpose. The introductory chapters provide an overview of computer simulation and MATLAB programming concepts. Thereafter, communications concepts are presented in the traditional manner but followed up with appropriate simulations in MATLAB/Simulink. Relevant MATLAB source code is given whenever it is used to illustrate a point. All the source code given in the text have been tested on MATLAB kernel version 7.10 (Release R2010a) and are provided in the accompanying CD
1 Introduction to Systems, Models and Simulations 1.1 Systems Simulation: The Shortest Route to Applications 1.1.1 Introduction 1.1.2 Computer Simulation 1.2 Modelling and Simulation 1.3 Types of Simulations 1.3.1 Discrete Event Simulation 1.3.2 Continuous Simulation 1.3.3 Steady State Simulation 1.3.4 Random Event simulation 1.3.5 Social Simulation 1.3.6 Web Enabled Simulation 1.3.7 Parallel and Distributed Simulation 1.4 Discrete Event Systems (DES 1.5 Determination of Time to Reach Steady Stat 1.6 Determination of the Desirable Number of Trials 1.7 Selection of Simulation Software 1.8 High Performance Simulation Tools 1.9 Conclusion Further Reading
2 Introduction to Programming in MATLAB 2.1 Introduction to MATLAB 2.2 Basic Features of MATLAB 2.2.1 Starting MATLAB 2.3 Notation, Syntax, and Operations 2.3.1 Variable names in MATLAB 2.3.2 Numerical Conventions 2.4 Importing and Exporting Information 2.4.1 Command Line Import 2.4.2 The Import Wizard 2.4.3 Other Import Functions 2.4.4 Export Functions 2.5 Elements of MATLAB Programming 2.5.1 Special Built-in Constants 2.5.2 Linear Algebra 2.5.3 Trigonometric Functions 2.5.4 Hyperbolic Functions 2.5.5 Logical Functions 2.5.6 Exponential and Logarithmic Functions 2.5.7 Complex Functions 2.5.8 Round-off Functions 2.5.9 Matrix Functions 2.5.10 Polynomial Functions 2.5.11 String Functions 2.6 Plotting with MATLAB 2.6.1 Specialised Plotting 2.6.2 Plot Enhancement Commands 2.6.3 Exporting of MATLAB Figures to Files 2.6.4 Exporting of MATLAB Figures to Clipboard 2.7 Specific Features of MATLAB 2.7.1 M-files 2.7.2 P-Code 2.7.3 M-Book 2.7.4 Control Flow 2.7.5 Interactive Input 2.8 Special MATLAB Functions 2.8.1 Statistical Functions 2.8.2 Signal Processing Functions 2.8.3 Control System Functions 2.8.4 Numerical Computations in MATLAB 2.8.5 MATLAB Symbolic Math Toolbox 2.9 GettingMATLAB Help Online 2.10 Generating Executable Files inMATLAB 2.11 Compiling and Calling External files from MATLAB 2.12 CallingMATLAB Objects from External Programs 2.13 Using Java Classes in MATLAB 2.14 The MATLAB GUIDE 2.14.1 Editing a GUI 2.14.2 Code Attachment Process 2.14.3 Executing the GUI 2.15 Writing Efficient MATLAB Code 2.15.1 The MATLAB Profiler 2.15.2 Array Pre-allocation 2.15.3 JIT Acceleration 2.15.4 Vectorisation 2.15.5 Inlining Simple Functions 2.15.6 Referencing Operations 2.15.7 Numerical Integration 2.15.8 Speeding Up Signal Processing 2.15.9 Miscellaneous Tricks 2.16 MATLAB Clones 2.17 Parallel MATLAB 2.17.1 Embarrassingly Parallel System 2.17.2 Message Passing System 2.17.3 Back-End Support System 2.17.4 MATLAB Compilers 2.17.5 Shared Memory System 2.18 Conclusion Further Reading Problems
3 Simulink 3.1 Simulink as a Tool for Model-Based Design 3.2 Invoking Simulink 3.3 Concept of Signal and Logic Flow 3.3.1 Connecting Blocks 3.3.2 Sources and Sinks 3.3.3 Continuous and Discrete Systems 3.3.4 Discontinuities in Simulink 3.3.5 Using Functions (written as .m, .c, .cpp, etc) 3.3.6 Modelling a First Order System in Simulink 3.3.7 Modelling a Second Order System 3.3.8 Simulating the Response of a Transfer Function 3.3.9 Modelling an AmplitudeModulator in Simulink 3.3.10 Modelling a Zero-Crossing Detector in Simulink 3.4 Creating Sub-systems in Simulink 3.4.1 Creating a Sub-system by Adding the Sub-system Block 3.4.2 Creating a Sub-system by Grouping Existing Blocks 3.4.3 Undoing a Sub-system 3.5 Conclusion Further Reading Problems
4 Simulation of Signals and Systems 4.1 Continuous Time and Discrete Time Signals 4.1.1 Basic Operations on Signals 4.2 Periodic Signals and Sequences 4.3 Even and Odd Signals 4.3.1 Signal Decomposition 4.4 Elementary Signals 4.4.1 Continuous Time Complex Exponential Signal 4.4.2 Discrete Time Complex Exponential Sequences 4.4.3 Periodicity of Discrete Time Complex Exponential Sequences 4.4.4 Unit Impulse and Unit Step Functions and Sequences 4.4.5 Continuous Time and Discrete Time Systems 4.5 Basic Properties of Systems 4.5.1 Memory 4.5.2 Invertibility of Systems 4.5.3 Causality of Systems 4.5.4 Stability of Systems 4.5.5 Time Invariance 4.5.6 Linearity of Systems 4.6 Linear Time Invariant Systems 4.6.1 Discrete Time LTI Systems and the Convolution Sum 4.6.2 LTI Systems and the Convolution Integral 4.6.3 Properties of LTI Systems 4.6.4 Unit Step Response of an LTI System 4.6.5 Linear Differential/Difference Equations 4.7 The Fourier Series Representation 4.7.1 A History of the Fourier Series and Transform 4.7.2 Response of LTI Systems to Complex Exponentials 4.7.3 Fourier Series Representation of Continuous Time Periodic Signals 4.7.4 Properties of Continuous Time Fourier Series 4.7.5 Fourier Series Representation of Discrete Time Periodic Sequences 4.7.6 Properties of Discrete Time Fourier Series 4.8 Fourier Transform of Aperiodic Signals 4.8.1 Convergence of Fourier Transforms 4.8.2 Properties of Fourier Transforms 4.8.3 Systems Characterised by Differential Equations 4.8.4 The Fourier Transform of Periodic Signals 4.9 The Discrete Time Fourier Transform (DTFT) 4.9.1 Properties of Discrete Time Fourier Transform 4.9.2 Systems Characterised by Difference Equations 4.10 Nyquist–Shannon Sampling Theorem 4.10.1 Mathematical Proof of Sampling Theorem 4.10.2 Aliasing 4.10.3 Effects of Aliasing 4.10.4 Avoidance of Aliasing 4.11 Signal Reconstruction 4.11.1 The Exact Reconstruction Procedure 4.12 The Bilateral Laplace Transform 4.12.1 Region of Convergence (ROC) 4.12.2 Unilateral Laplace Transform 4.12.3 Properties of Laplace Transform 4.13 Analysis of LTI Systems Using Laplace Transforms 4.13.1 Causality of LTI Systems 4.13.2 Stability of an LTI System 4.14 The z-Transform 4.14.1 Region of Convergence 4.14.2 Inverse z-Transform 4.14.3 Properties of z-Transform 4.15 Analysis of LTI Systems Using z-Transforms 4.15.1 Causality 4.15.2 Stability 4.15.3 Unilateral z-Transforms 4.16 The Discrete Fourier Transform (DFT ) 4.17 Conclusion Further Reading Problems
5 Simulation of AnalogModulation Systems 5.1 Introduction 5.1.1 Amplitude Modulation (AM) 5.1.2 Amplitude Generation and Demodulation 5.2 Mathematical Model of AM 5.2.1 AmplitudeModulation with Multiple Sinusoidal Signals 5.2.2 Power Contained in AM Components 5.3 Simulation of Amplitude Modulation 5.3.1 AM Generation—User Defined M-file 5.3.2 AM Generation—Using Library Functions 5.4 Simulation of Other Variants of AM 5.4.1 Simulation of DSBSC 5.4.2 Simulation of SSB Modulation 5.5 Frequency Spectra 5.6 Demodulation of AmplitudeModulation 5.6.1 Demodulation of an SSB Modulation 5.7 Noise Performance 5.7.1 Normalised Transmission Bandwidth 5.7.2 Noise in Baseband Systems 5.7.3 Noise in AM Receivers 5.7.4 Noise in Coherent DSBSC Receivers 5.7.5 Noise in SSB Receivers 5.7.6 Vestigial Sideband (VSB) System 5.8 Measurement of Noise Performance 5.8.1 Methods of Measuring Receiver Sensitivity 5.8.2 Points to Note while Measuring SNR 5.9 Conclusion