Simulation of Digital Communication Systems Using Matlab [eBook] – Second Edition

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)

1 Star2 Stars3 Stars4 Stars5 Stars (89 votes, average: 4.16 out of 5)


(Secure Payment gateway by paypal, immediate download after successful payment)
Exclusive when purchased on this website!!! Buy 2 formats at same retail price: 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.

Note: Please provide correct email address when purchasing the ebook. The ebook will be sent to the email address upon purchase. Upon successful purchase, you can contact the author for any doubts in the text/code. Your queries will be promptly responded in a day.

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:

  • 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

  (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)

 (Secure Payment gateway by paypal)

Reviews from Online Stores

amazon_review_3 amazon_review_2Capturesmashwords_33smashwords_review

(Secure Payment gateway by paypal, immediate download after successful payment)

  • Othman

    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]

    • Can you show the expected output matrix from x and y ?

  • Othman

    z=[ 2+5j 1+2j, -4-3j -3-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]

  • Othman

    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

    • check the answer for your question below

      • Othman


        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


  • Othman

    Thanks a lot


    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

  • Mateus Hufnagel

    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.

  • Adam Mohamed Ali

    I’m a research student.Please help me by providing matlab function that generates fixed gold code
    thank you

  • Sharad Kumar

    I am a mtech 1st year student … and for thesis my topic is power efficiency in ofdm..Pls help me to find the best book for ofdm and simulation in matlab…
    Thanking You

  • ram shayan

    can anybody suggest how to handle this type of question?


    I’m a mtech 1st year student.I am currently working on periodograms. Please help me in matlab coding in finding periodogram of a signal without using inbuilt function

  • ashish mishra

    Sir,can u please provide the matlab codes for simo and miso channnels.I want to calculate outage and ergodic capacity

  • riaban

    My question is related to the way a gaussian signal is generated in MATLAB. For example, I have a signal defined in MATLAB as

    signal = randn(1,1e6);

    How is this signal represented mathematically i.e in the form of an equation?

  • Pingback: Simulation of OFDM system in Matlab – BER Vs Eb/N0 for OFDM in AWGN channel » GaussianWaves()

  • Pingback: Chirp Signal – Frequency Sweeping – FFT and power spectral density » GaussianWaves()

  • soum

    Sir,can u please provide me how to write the matlab codesto simulate ber function Eb/N0 for QPSK for differetes SF values

  • Othman


    How could I detect the PNC mapping of the constellations for 16-QAM? My input constellations are




    a= randi([0 M-1],1,N);

    b= randi([0 M-1],1,N);


    as you know in 4QPSK the PNC mapping for the constellations are

    1- The points 2+2j,-2+2j,2-2j,-2-2j represents 1+1j

    2- The points 2,-2 represents 1-1J

    3- The points 2j,-2j represents -1+1j

    4- the point 0 represents the point -1-1j

    So how can I know the order for z ?

    Thanks in advance


  • Pingback: Digital Communication Ebook Download Free – Information()

  • noura ali

    hello sir i want a code of OFDM in DWT and IDWT instead of FFT and IFFT

    • Sorry I do not have the code. May be I can add it for the further editions.

      • noura ali

        thank you
        i wait you answer
        please help me

  • Mahdi Zaman

    Hello sir:
    What difference between PM-QPSK and DP-QPSK?
    Are PolSK and PM-mQAM modulation have linear or circular polarization?

  • Pingback: Introduction to OFDM – orthogonal Frequency division multiplexing | GaussianWaves()

  • Pingback: MIMO – Diversity and Spatial Multiplexing | GaussianWaves()

  • Pingback: Hard and Soft decision decoding | GaussianWaves()

  • Pingback: Gibbs Phenomena – A demonstration | GaussianWaves()

  • Pingback: How to Interpret FFT results – complex DFT, frequency bins and FFTShift | GaussianWaves()

  • ruxosh

    hi mister
    can you give me matlab code just for (ber vs eb/no with 16-QAM over AWGN)

    • Akhil K Pathani

      %%%%%%%%%% Alamouti Code for 2-transmiters and 1-receiver %%%%%%%%%
      %%%%%%%%%%%%%%%%%%% 16-QAM %%%%%%%%%%%%%%%%%%
      clear all;
      close all;
      N = 10^5;
      M=16;%M-ary Constellation
      x = randint(N,1,M);
      y = zeros(2,N);
      y(:,1:2:end) = reshape(y1,2,N/2); % [x1 x2; …]
      y(:,2:2:end) =(kron(ones(1,N/2),[-1;1]).*flipud(reshape(conj(y1),2,N/2)));% [-x2* x1*; ….]
      h1 = 1/sqrt(2)*(randn(1,N/2) + 1i*randn(1,N/2));
      h2 = 1/sqrt(2)*(randn(1,N/2) + 1i*randn(1,N/2));
      H = kron(h,ones(1,2));
      hEq = zeros(2,N);
      hEq(:,(1:2:end)) = reshape(h,2,N/2); % [h1 0 … ; h2 0…]
      hEq(:,(2:2:end)) = kron(ones(1,N/2),[1;-1]).*flipud(reshape(h,2,N/2)); % [h1 h2 ..; h2 -h1..]
      hEq(1,:) = conj(hEq(1,:)); % [h1* h2* … ; h2 -h1 …. ]
      hEqPower = sum(hEq.*conj(hEq),1);% mod(h1)^2+mod(h2)^2
      for i=1:length(snr)
      n=1/sqrt(2)*(randn(1,N)+1i*randn(1,N));% AWGN Noise vector
      y3=sum(H.*y,1)+10^(-(snr(i)-10*log10(20))/20)*n;%snr is in dB
      % Scaling w.r.t Transmitted power and divided by Avg Constellation Power
      % Avg Constellation power is 10 for 16 QAM and each Transmitter power is P/2
      % so subtract snr by 10*2=20
      yMod = kron(reshape(y3,2,N/2),ones(1,2)); % [y1 y1 … ; y2 y2 …]
      yMod(2,:) = conj(yMod(2,:)); % [y1 y1 … ; y2* y2*…]
      yHat = sum(hEq.*yMod,1)./hEqPower; % [h1*y1 + h2y2*, h2*y1 -h1y2*, … ]
      z=qamdemod(yHat,M);%Qam Demodulation
      [num ty]=symerr(x,z);%findind Symbol error rate
      semilogy(snr,ser,’r-*’);grid on;hold on;
      title(‘Plot of symbol error rates for Alamouti nTx=2, nRx=1, for 16-QAM’,’Color’,’k’,’FontSize’,13);
      legend(‘sim (nTx=2, nRx=1, Alamouti(16-QAM))’);
      xlabel(‘SNR(dB) —->’,’FontSize’,11);Ylabel(‘Symbol Error Rate —->’,’FontSize’,11);

  • Nizamul Nibir

    hellow sir
    can you help me providing MATLAB CODE for BER vs Eb/N0 in Rayleigh channel using Gold code and BER vs Eb/N0 in Rayleigh channel using P-N code???
    thanks in advance..

  • Puspraj Chauhan

    Dear sir, I am a PhD scholar and working in the field of channel modelling. Can you please help me in finding channel capacity using monte carlo simulation and symbol error rate.

  • Kedir Ebrahim

    Dear sir,I am msc student and i’m working on efficient antenna polarization can u help me which type of antenna polarization is efficient for cognitive radio using matlab simulation

  • Pingback: OFDM and Cyclic Prefix – a handson demonstration using Matlab – GaussianWaves()

  • Pingback: How to use Histogram function in Matlab to plot the estimated PDF curve – GaussianWaves()