Simulation of Digital Communication Systems using MatlabSimulation of Digital Communication Systems Using Matlab [eBook]
Author: Mathuranathan Viswanathan
Published: Feb. 18, 2013
Language: English
ISBN : 9781301525089
Words: 57,050 (approximate)
Release date: 25 September 2013 (Second Edition)

Buy 2 formats : PDF (for viewing on PC) and EPUB (Great to view on Apple iPad/iBooks,Android, Nook, Sony Reader, Kobo, and most e-reading apps including Stanza, Aldiko, Adobe Digital Editions, others) at same retail price.[purchase_link id=”3412″ style=”button” color=”blue” text=”Buy Now”] (Secure Payment gateway by paypal, immediate download after successful payment)

Note: Please provide correct email address when purchasing the ebook. The ebook will be sent to the email address upon purchase.

Are you interested in simulation of communication systems in Matlab and do not know where to start? If so, your search for a good text ends here. Some of the simulation topics include various digital modulation and channel coding techniques, OFDM, fading channels, random distributions .Essential topics in digital communication are also introduced to foster better understanding of simulation methodologies.

This ebook is meant for students and instructors who are interested in simulation of signal processing and digital communication with Matlab. You should have a fair understanding of Matlab programming to begin with. Essential topics in digital communication are introduced to foster understanding of simulation methodologies.

This second edition includes following new topics – propagation path models like – log normal shadowing, Hata-Okumura models, in-depth treatment of Shannon-Hartley equation and Channel Capacity calculation

Some of the key topics include: Sampling theorem, hard & soft decision decoding, Hamming codes, Reed Solomon codes, convolutional codes, Viterbi decoding, Inter symbol interference, Correlative coding, Raised cosine filter, Square Root Raised Cosine filter, Gibbs phenomenon, Moving average filter, Probability and random process, Chi-square, Gaussian, Uniform, Rician, Rayleigh distributions, demonstration of central limit theorem, Propagation models, fading models, digital modulation techniques, OFDM, spread spectrum.

Note: If you are residing in India and do not have a credit card to purchase this book, write to us at We will assist you.

Table of Contents:

[expand title=”Table of Contents (click to expand)” trigclass=”highlight”]

  • Chapter 1: Essentials of Digital Communication
    • 1.1 Introduction to Digital Communication
    • 1.2 Sampling Theorem – Baseband Sampling
    • 1.3 Sampling Theorem – Bandpass or Intermediate or Under Sampling
    • 1.4 Oversampling, ADC – DAC Conversion, pulse shaping and Matched Filter
    • 1.5 Channel Capacity
    • 1.6 Performance of Channel Codes
    • 1.7 Distances: Hamming Vs. Euclidean
    • 1.8 Hard and Soft Decision Decoding
    • 1.9 Maximum Likelihood Decoding
  • Chapter 2: Channel Coding
    • 2.1 Hamming Codes – How it works
    • 2.2 Construction of Hamming codes using matrices
    • 2.3 Introduction to Reed Solomon Codes
    • 2.4 Block Interleaver Design for RS codes
    • 2.5 Convolutional Coding and Viterbi Decoding
  • Chapter 3: Inter Symbol Interference and Filtering
    • 3.1 Introduction to controlled ISI (Inter Symbol Interference)
    • 3.2 Correlative coding – Duobinary Signaling
    • 3.3 Modified Duobinary Signaling
    • 3.4 Raised Cosine Filter
    • 3.5 Square Root Raised Cosine Filter (Matched/split filter implementation)
    • 3.6 Gibbs Phenomena – A demonstration
    • 3.7 Moving Average (MA) Filter
  • Chapter 4: Probability and Random Process
    • 4.1 Introduction to concepts in probability
    • 4.2 Bayes’ Theorem
    • 4.3 Distributions and Density Functions
    • 4.4 Gaussian random variable and Gaussian distribution
    • 4.5 Uniform Random Variables and Uniform Distribution
    • 4.6 Chi-Squared Random Variable and Chi-Squared Distribution
    • 4.7 Non-central Chi-squared Distribution
    • 4.8 Central Limit Theorem
    • 4.9 Colored Noise Generation in Matlab
  • Chapter 5: Channel Models and Fading
    • 5.1 Introduction to Channel models
    • 5.2 Friis Free Space Propagation Model
    • 5.3 Log Distance Path Loss or Log Normal Shadowing Model
    • 5.4 Hata – Okumura Models
    • 5.5 Introduction to Fading Models
    • 5.6 Rayleigh Fading and Rayleigh Distribution
    • 5.7 Rayleigh Fading Simulation – Young’s model
    • 5.8 Simulation of Rayleigh Fading Model – (Clarke’s Model – Sum of Sinusoids)
    • 5.9 Rician Fading and Rician Distribution
  • Chapter 6: Digital Modulations
    • 6.1 BPSK Modulation and Demodulation
    • 6.2 BER vs. Eb/N0 for BPSK modulation over AWGN
    • 6.3 Eb/N0 vs. BER for BPSK over Rayleigh Channel
    • 6.4 Eb/N0 Vs BER for BPSK over Rician Fading Channel
    • 6.5 QPSK Modulation and Demodulation
    • 6.6 BER vs. Eb/N0 for QPSK modulation over AWGN
    • 6.7 BER vs. Eb/N0 for 8-PSK Modulation over AWGN
    • 6.8 Simulation of M-PSK modulations over AWGN
    • 6.9 Symbol Error Rate vs. SNR performance curve simulation for 16-QAM
    • 6.10 Symbol Error Rate Vs SNR performance curve simulation for 64-QAM
    • 6.11 Performance comparison of Digital Modulation techniques
    • 6.12 Intuitive derivation of Performance of an optimum BPSK receiver in AWGN channel
  • Chapter 7: Orthogonal Frequency Division Multiplexing (OFDM)
    • 7.1 Introduction to OFDM
    • 7.2 Role of FFT/IFFT in OFDM
    • 7.3 Role of Cyclic Prefix in OFDM
    • 7.4 Simulation of OFDM system in Matlab – BER Vs Eb/N0 for OFDM in AWGN channel
  • Chapter 8: Spread Spectrum Techniques
    • 8.1 Introduction to Spread Spectrum Communication
    • 8.2 Codes used in CDMA
    • 8.3 Maximum Length Sequences (m-sequences)
    • 8.4 Preferred Pairs m-sequences generation for Gold Codes
    • 8.5 Generation of Gold Codes and their cross-correlation
  • Appendix
    • A1: Deriving Shannon-Hartley Equation for CCMC AWGN channel -Method 1
    • A2. Capacity of Continuous input Continuous output Memoryless AWGN -Method 2
    • A3: Constellation Constrained Capacity of M-ary Scheme for AWGN channel
    • A4: Natural and Binary Codes
    • A5: Constructing a rectangular constellation for 16QAM
    • A6: Q Function and Error Function
  • References


[purchase_link id=”3412″ style=”button” color=”blue” text=”Buy Now”]  (Secure Payment gateway by paypal,immediate download after successful payment)(Secure Payment gateway by paypal, immediate download after successful payment)

Also Available at your preferred online stores: (Click the icons to buy directly)

PDF and EPUB versions – Bundle

Buy 2 formats : PDF (for viewing on PC) and EPUB (Great to view on Apple iPad/iBooks,Android, Nook, Sony Reader, Kobo, and most e-reading apps including Stanza, Aldiko, Adobe Digital Editions, others)
[purchase_link id=”3412″ style=”button” color=”blue” text=”Buy Now”]  (Secure Payment gateway by paypal)

Reviews from Online Stores

amazon_review_3 amazon_review_2Captureamazon_reviewsmashwords_33smashwords_review
[purchase_link id=”3412″ style=”button” color=”blue” text=”Buy Now”] (Secure Payment gateway by paypal, immediate download after successful payment)

  1. I bought this book from iTune one week ago.  This book introduces simulation of communication systems from the beginning. It deeply attracts me. It includes digital communication, channel coding, inter-symbol interference, fading, digital modulations, OFDM and so on. This book covers all the basics of simulation of communication systems. I am hoping that authors can add some new technologies into it.

  2. 1. In general, for most of the topics , matlab codes are given. So, it is possible to practically simulate and understand the concepts. This is a good feature.

    2. If possible references may be added to get a better understand of some of the topics.

    3. Some areas, explanantion can be more clear. For example , I went through the convolution encoder. It is not clear how the generator polynomials are used.

    4. According to the formula given, the number of states in the state diagram is 2(m-1), where m is the number of memory element.
    For a (2,1,3) encoder, the number of memeory elements m is calculated as follows:
    L = k(m+1) -> 3 = 1(m+1) -> m=2
    Therefore, the number of states = 2(m-1) -> 2(2-1) = 2.
    But in the book, it is mentioned as 4 states. I am not sure if I am making any mistake. Please check.

    • Hi Kalpa,
      Thanks for your inputs. I will improve the ebook and provide more clarity on the topics.

      Regarding the states, the equation is $latex 2^{(m-1)}$ and not $latex 2(m-1)$. That was a typo in printing. I will take care of that in the next edition. So that leaves us with 4 states.

  3. Hi

    Thanks a lot for your reply.

    Even while using power as as mentioned in the reply, if my understanding is right, for m= 2 ,

    2   ( m-1)  in the above example is  again  2   (  2  1    )

    Therefore only 2 states are there.   I am not sure, if I am going wrong somewhere. Please check

    Thanks a lot for your time.


    • Hi,
      There exist two versions of formulas to calculate the constraint length (L)
      $latex 1) L=k(m+1) $
      $latex 2) L=km $

      The number of memory elements has to be interpreted accordingly.

      For a (n=2,k=1,L=3) convolutional code the constraint length L=3.

      If we use formula 1, then 3=1*(m+1) => m=2. This gives us two memory elements, which is straight forward. Then the number of states will be 2^m = 2^2=4 states.

      If we use formula 2, then 3=1*m => m=3. Then you have to use the formula 2^(m-1) to calculate the number of states. Which gives 2^(3-1)=2^2=4 states again.

      So, care must be taken to interpret the constrain length definition properly. I will elaborate more on this.

  4. Hi,
    I have read through the book and wondered how could I plot the channel throughput with the respect to the Shannon capacity in chapter 1.5? The code is not provided in the book. Looks like the formula for calculating the channel throughput is not declared neither.

    • “Throughput” – The rate of successful message delivery (no errors) across a communication channel. It is measured in bits/second. The channel capacity is the MAXIMUM data rate for noiseless communication.

      The maximum data rate achievable on an AWGN channel (unconstrained capacity) is given in the chapter as C=B log2(1+S/N) (on page 20). The simulation for channel capacity and power efficiency limit is given in page 22,23

      For more discussions and derivations please refer appendix A1,A2 and A3 at the end of the ebook.

      Let me know if this is what you are looking for.

      • Hi,
        Thank you for the prompt reply.
        Actually I was asking for how to plot the graph on page 30. And I thought the dots inside the Shannon limit were the corresponding channel throughput. Correct me if I am wrong. If possible, can I hav the code plz?

  5. Hello Mathuranathan,
    Thanks a lot for your reply
    Can you please told me how can I take one bit and left the next one from a matrix or array? For example my matrix is: x=[1001,1011,0011,0001] and I want to split them like this: 1-0- , 1-1-, 0-1-, 0-0-
    In fact, I need to rearrange(decrease) these bits from four bits to two bits but in the receiver I need to put zeros between these bits and comparison between the transmitted and the received bits!!!

    • You could do it via indexing.

      Consider a simple vector x= [11,12,13,14,15,16,17,18,19,20] . In other words, x(11) = 11 ,x(2)=12, x(3)=13 and so on

      If I am interested in elements 15 16 17 which are placed at indices [5,6,7], the code would be

      >> x(5 6 7)
      ans = 15 16 17

      If I am interested in alternate elements

      >> x(1 3 5 7 9)
      ans = 11 13 15 17 19

      Alternate way (more elegant)

      >> x(1:2:end) %start from index 1, increment in steps by 2, reach till the last index)
      ans = 11 13 15 17 19

      To fetch alternate elements in reverse (decreasing) order


      More indexing methods discussed here:

  6. Many Thanks, you are helping me a lot. Can I ask you one more question please ? As you know after modulation the 16-QAM the output is 9 constellation points, so is there any way to get 9 points in every quarter(in Gray mapping) something like this way below
    Best Regards

  7. I think it is Hierarchical modulation!!! Actually one of my friend ask me about it and there is no reference about this scheme.

  8. Hey! Your book was very valuable.! As a matter of fact ,do you have a matlab code to generate autocorrelation function of the rician fading channel using clarke’s model (Chapter 5.8)

  9. Hey! Your book was very useful and helpful, but I want to know about PNC(Physical layer Network Coding) why you don’t included in your book? can you help me to know the code for 16-QAM in PNC please?

  10. thanks a lot,you are very kind
    you are symbol of humanity.i believe there are humanity.
    i thank you from us Iranians.
    i searched this book more 6 month,but i can’t found free version.
    please see my blog for free ebooks.this blog for my people till easy access to books
    thank you so so so much.thank you

  11. Hello sir

    Would you please tell me how can I put two bits beside two bits from two separate matrices to generate a new matrix, but the original matrices with a complex number? because I used bitconcat and it dosen’t work becaused this instruction for real numbers!
    Many thanks

    for example;

    x=[2+5j , -4-3j, 4+2j, 3-3j]

    y=[1+2j, -3-2j, 1-3j, 5+2j]

    • Here you go,
      x=[2+5j , -4-3j, 4+2j, 3-3j];

      y=[1+2j, -3-2j, 1-3j, 5+2j];
      k=[x;y]; %vertical concatenation – the row vector y will be placed below the row vector x
      z=k(:).’ %flatten the matrix and transpose it
      output: z=> [2+5j 1+2j -4-3j -3-3j 4+2j 1-3j 3-3j 5+2j]

  12. actually, I have two mapping signals and I want to make it as 16-QAM mapping signals, but these two mapping signals in a complex numbers

      • Hi

        I am grateful for helping me, I want to rewrite the previous question, how can I merge the two matrices where x(1) is a MSB(most significant bit) for the first bits and y(1) is a LSB for the first bits and x(2) =MSB(2), y(2)=LSB(2) and so on, to get a new matrix z.

        Thanks in advance


  13. Sir,
    I’m a research student.Please help me by providing matlab code for atleast any of the following.
    1.loss budget for a 40Gbps IMDD OFDM LR-PON
    2.16 and 8 QAM constellations before and after employing SSII cancellationat optical received power of -4dbm
    3.program for output power and reflection power of a 60KM single mode fiber

  14. This book is helping me a lot in Digital Communications chair at Master’s degree in Electrical Engineering.
    The support was fast to solve my doubts.

Add Comment

Required fields are marked *. Your email address will not be published.