Thanks for comment and hoping that you liked the article. I will look into your comment and expect to respond with in two/three days if there is a query.

Further, you may join the email subscription (to get new articles delivered to your inbox).

Note: Joining the email subscription list entitles you to receive the free e-Book on Probability of Error for BPSK/QPSK/16QAM/16PSK/64QAM in AWGN.

Subscribe and download the free e-Book

Alternatively, you may subscribe to the RSS feed by clicking here.


Symbol and Bit error rate computation for various modulation scheme in AWGN

  1. Bit error rate for BPSK
  2. Bit error rate for FSK (frequency shift keying)
  3. Bit error rate for differential binary phase shift keying (DBPSK)
  4. Symbol error rate for 4-PAM
  5. Symbol error rate for QPSK
  6. Symbol error rate for 16-QAM
  7. Symbol error rate for 16-PSK
  8. Comparing symbol error rate for 16QAM and 16PSK modulation

Orthogonal signals

  1. Minimum frequency spacing for having orthogonal sinusoidals
  2. OFDM transmission
  3. Cyclic prefix in orthogonal frequency division multiplexing
  4. Peak to average power ratio in OFDM signalling

Receiver synchronization

  1. Frequency offset estimation using 802.11a short preamble
  2. First order PLL for tracking constant phase offset


  1. Cascaded Integrator Comb (CIC) filter
  2. Digital implementation of RC low pass filter
  3. Transmit pulse shaping filter

Hardware efficient signal processing circuits

  1. Polyphase filters for interpolation
  2. Using CORDIC for phase rotation
  3. Using CORDIC for phase and magnitude computation


  1. Straight line fit using Least Squares (LS) estimate
  2. Interpreting the output of FFT()


  1. MIMO with Zero Forcing equalizer
  2. MIMO with MMSE equalizer
  3. MIMO with ZF Successive Interference Cancellation equalizer
  4. MIMO with ML equalization
  5. MIMO with MMSE SIC and optimal ordering

Hope you like the blog.

112 thoughts on “Articles

  1. Hi,
    Could you mail me the instructions to download the e-book. I have subscribed but am unable to download it. Thanks

  2. Sr , I’m need base code for SPACE DIVISION MULTIPLE ACCESS-SDMA. Can you give that code or any document relate .thanks

  3. hello sir….
    i need your help regarding my project…
    i need a matlab code for video transmision as soon as possible…
    thnxzzz in advance…..

  4. Hi Krishna,

    I would like to say thanks first of all as you are helping us and I fully appreciate your work.
    Now I am doing project on ::4×4 MIMO simulation
    This is the detail::::
    Multiple input multiple output (MIMO) is very promising for future high data rate mobile communications. In LTE, 4×4 MIMO (four antennas in the transmitter and four antennas in the receiver) have been adopted. In this project, the student is required to implement 4×4 MIMO encoding and decoding by using the specifications in LTE. Simulink is a suggested tool.

    Can you please help me for code (In simulink) and also any books which I can refer????

  5. hi do you have any matlab code that calculates the outage probability for two way relay channel for two,three, four time slot schemes?

  6. hi sir
    please help me to find code for simulation of power line communication plc with OFDM modulation
    please please

  7. thank you Krishna for your above reply,

    first of all ,, i am a master student ,, and my search ” enhancement study of CDMA celluar system by introducing OFDM technology”

    so i am trying to do CDMA system then i add OFDM part to the code

    and i did the most work of what i said above,

    but i have some question

    i change the rayleigh channel that i used by this :


    which is familiar with the channel that you are use in your programs.

    my questions is :

    1) how much the bitrate that your are sent? and how can i insert the
    effect of bitrate with this channel to my program?

    2) generally , the effect of bitrate can only add on channel part of the matlab code?

    3) for OFDM-CDMA system the equlizer that i used namly ”least square” which is simply divide in frequency domain the received signal by FFT(channal impulse response) , and the place of this divide after the FFT part of receiver, but in CDMA reeceiver >> where will be put?
    when i put it in the begging of receiver (of course i take FFT for the received signal and for channel impulse response then divided the received signal by channel frequency response in frequency domain) then i take IFFT for the resualt to back to time domain and complete my despreading and demapping.
    the probem is : i got a very good resualt .. almost the effect of channel are completly removed ….. i got BER = 1e-5 at -5 dB…… ?

    finally thank you for this very helpfull site ,, thank you for your replies

    1. @ammar: My replies:
      1. Bit rate is a notional concept in Matlab. If the samples are spaced T s seconds apart, then sampling rate is 1/T Hz…
      2. Did not understand the question
      3. How does the OFDM-CDMA transmit chain look like?

  8. Hello. Thanks for your posts

    i just want to ask you if you deal with matlab function named”rayleighchan”?

    its great

    but i have some question on it

  9. Hello. Thanks for your posts.
    I have a question.

    When I simulated 2by2 MIMO system, the 4PAM-ZF system has same SER of 4PAM-MMSE system.
    (Rayleigh ch./AWGN noise/BER vs SNR
    But, there is a little difference
    So, I am very confusing.

    Please answer my question

    1. @Ari: When you try to reduce the modulation from 4PAM to 2PAM (BPSK), are you seeing differences in the MMSE behaviour vs ZF behaviour. Further, in AWGN the difference might not be present, as there is no interference terms.
      Do reply back with your findings.

  10. hi krishna sir

    I saw ur example of ber -bpsk-rayleigh channel but i need the the qpsk for the rician channel I dont know coding sir so please help me sir give some hints where to change thats enough for me sir .please sir

  11. hello krishna,

    i m making code for PTS scheme for PAPR reduction. i m facing some problems in that……
    1. how to implement oversampling in ofdm?
    2. how do we calculate CCDF for PAPR calculation?

    thanx in advance.

    1. @gul: My replies
      1/ For oversampling by a factor of 2 insert 1 zero inbetween samples; for oversampling by factor of 3 insert 2 zeros inbetween samples; and so on. Note: Oversampling need to be followed by filtering
      2/ Take the histogram of the time domain samples to find the PDF. Use cumsum to find the CDF. Then 1- CDF gives CCDF. In the post on PAPR in OFDM, I have plotted the CDF of the time domain waveform

      1. Hello,

        I have a question about plotting BER vs SNR in MIMO systems. Lets say i have a 2×2 MIMO system, and i perform an SVD on the channel, so i can encode and decode the signal with V and U, respectively, such that i am left with 2 uncoupled SISO channels. now each channel has its own singular value, and let us assume for now that the noise power is the same in both channels. So we have SNR1 in the first channel, and SNR2 in the second channel, and they are different.
        Q1: How would you define the SNR of this system? is it the average SNR of both channels?

        Now we now that according to the Water Filling algorithm, we can transmit more power (and thus, more bits) in channels with higher SNR. so if come to conclusion that the first channel can carry QPSK, and the second channel can only carry BPSK, i have different contelations in both channels… So the SNR which were calculated earlier for each channel, should now be modified in order to reflect the number of bits which are transmitted via those channels, by: SNR_bit=SNR_sym/k, where k=log_2(M).

        Q2: How should plot 1 graph which describes the BER vs. SNR_bit of this system? Should i calculate SNR_bit for each SISO channel, and BER for each SISO channels separately, and the average the results?


        1. @ben: My replies
          1.a) As I recall, when we are multiplying by V, we are not introducing any gain in the transmitter. In that case, signal power at the transmitter remains the same irrespective of multiplication by V. Agree?
          Having said that reporting SNR information from both the streams and average SNR is useful. I believe most MIMO test instruments report both
          1.b) The signal to noise ratio is independent of the constellation used. If you want to compare using Eb/N0, then yes, need to factor in the constellation
          2) Hmm…. you can defined Es/N0 = ratio of total power at tx / total noise power at rx. Then depending on the number of bits which are pumpre through, Es/N0_dB = Eb/N0_dB + 10*log10(number of bits per symbol across all tx chains)

          Agree? Your thoughts please.

  12. Hello Krishna,
    I have referred your example on first order PLL for constant phase tracking.It was very useful.
    But in the example a complex carrier is being used at the transmitter and receiver.Practically , when I use a cosine carrier at Tx. and cosine,sine carriers at Rx.(as in costas loop) , can the same loop filter be used ?
    I have tried to simulate the above situation in the following script but was unable to estimate the phase. Please help me……….


    clear all;
    close all;

    [b,a] = butter(1,0.0156,’low’); % low pass filter to remove
    nterm_i = 0; % double frequency component
    dterm_i = 0;
    nterm_q = 0;
    dterm_q = 0;

    n_sym = 10; % number of symbols
    fs = 12.8e6;
    t = 0:1/fs:100e-6 – 1/fs;
    fc = fs/8; % carrier freuency
    theta = 70*pi/180; % phase offset
    r = 0.1e6; % symbol rate
    oversamp = fs/r;
    sym = randint(n_sym,1)*2-1;
    in = 0;
    for ind=1:1:n_sym
    tmp(1:oversamp) = sym(ind);
    in = [in tmp];
    tx = in(2:end);
    tx_carrier = cos(2*pi*fc*t + theta);

    tx_out = tx.*tx_carrier;

    % first order pll
    alpha = 0.05;
    phiHat = 0;

    for ii = 1:1:length(t)

    % Remove carrier
    rx_i(ii) = tx_out(ii)*cos(2*pi*fc*t(ii) + phiHat);
    rx_q(ii) = tx_out(ii)*sin(2*pi*fc*t(ii) + phiHat);

    % low-pass IIR filter for I-channel
    iir_in_i(ii) = rx_i(ii);
    iir_out_i(ii) = b(1)*iir_in_i(ii)+ nterm_i + dterm_i;
    nterm_i = b(2)*iir_in_i(ii);
    dterm_i = a(2)*iir_out_i(ii);

    % low-pass IIR filter for Q-channel
    iir_in_q(ii) = rx_q(ii);
    iir_out_q(ii) = b(1)*iir_in_q(ii)+ nterm_q + dterm_q;
    nterm_q = b(2)*iir_in_q(ii);
    dterm_q = a(2)*iir_out_q(ii);

    % demodulating circuit
    xHat = 2*(iir_out_i(ii)>0) -1 ; % symbol estimate
    phiHatT =angle(conj(xHat)*rx_i(ii)); % phase error estimate angle(iir_out_i(ii) + i*iir_out_q(ii));%

    % accumulation
    phiHat = alpha*phiHatT + phiHat; % phase accumulator output
    % dumping variables for plot
    phiHatDump(ii) = phiHat;


  13. hi krishna
    i m new to matlab and i need to know tht ur code for ml equalisation uses viterbi algo aur something else,please tell i m not able to figure it out.


  14. im new in matlab.
    Hello Krishna, thanks for ur nice work on OFDM.
    i want to design an OFDM simulator using matlab GUI so that we can easily to find out the BER vs SNR when i change any parameter on the modulation..
    can u give me some idea which part i need to change mybe on the sampling freq or mybe on the no of sample..
    and lastly from ur code which part i must to do so…please teach me…-shah-

  15. Hi
    If the channel became Nakagami-m in OFDM system, how change the value of ht in program simulation of BER of multipath OFDM in Relaigh fading channel
    Thank you

  16. hi krishna!
    I need matlab code to obtain BER vs SNR curve for binary on-off keying modulation.
    also, i need code for SER vs SNR curve for 3ASK modulation.

  17. Can you demodulate the co-channel AIS signals(GMSK signals) and does there exists any methods to separete the co-channel AIS signals(GMSK signals) ?thanks very much

  18. i subscribed dsplog but i didn’t get BER e-book. i received the mail to download the book but its not working. Kindly send me.

      1. thank you for the same.
        i m doing a project on OFDM. i want to implement wavelet transform in place of FFT.can u suggest am i on right track or not?
        is it little possible to do this.

  19. Hello sir,
    i subscribed dsplog but i didn’t get ber e-book. i got mail to download book but its not working. its giving corrupted pdf. Kindly send me.

      1. plz sir help me in providing matlab code for interleaver using rs using qam or any other modulation scheme in awgn . its urgent. plz help
        thanks in advance

  20. thank you for sharing such information.

    i m doing a project on OFDM.can u please help me for the use of wavelet transform in OFDM.

  21. iam dioing simulation to find ber of bpsk modualtion for pass band case in awgn channel. i am using a carrier with some perticular frequency.

    1. @SREENU: I would recommend you to go over the paper
      Throughput and Delay Limits of IEEE 802.11, Yang Xiao, Jon Rosdahl, IEEE COMMUNICATIONS LETTERS, VOL. 6, NO. 8, AUGUST 2002
      Its available online and you should be able to find it by quick googling. Good luck.

  22. sorry about the incomplete comment !!
    I meant that the variance will be changed or not if I didn’t use a complex part ?

  23. Sir, while converting data into OFDM signal , it is observed that Subcarrier index is used. Inthis for standndard 802.11a , 64 subcarriers are used ,of which 52 is for data. The subcarrier index used is -26 to +26 . I want to know Why it is used so? Why 0 is not included in this.

Leave a Reply

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