QAM Theoretical BER

Quadrature Amplitude Modulation (QAM) is an important modulation scheme as it allows for higher data rates and spectral efficiencies. The bit error rate (BER) of QAM can be calculated through Monte Carlo simulations. However this becomes quite complex as the constellation size of the modulation schemes increases. Therefore a theoretical approach is sometimes preferred. The BER for Gray coded QAM, for even number of bits per symbol, is shown below.

BER of 4-QAM, 16-QAM, 64-QAM, 256-QAM in AWGN
BER of 4-QAM, 16-QAM, 64-QAM, 256-QAM in AWGN

Gray coding ensures that a symbol error results in a single bit error. The code for calculating the theoretical QAM BER for k even (even number of bits per symbol) is given below. The formula for calculating the BER for k odd is different, however, the formula given below can be used a first estimate.


1. Each additional bit/symbol requires about 2dB extra in SNR to achieve the same BER.
2. 4-QAM is essentially QPSK modulation.

About John

John has over 12 years of Research and Development experience in the field of Wireless Communications.
This entry was posted in BER Performance, LTE, WiMAX and tagged , , , , , , . Bookmark the permalink.

8 Responses to QAM Theoretical BER

  1. prabhu says:

    I simulate the BER performance of M-ary QAM over Rayleigh fading channel in Matlab tool, now I want to check that result with theoretical ber. So, please send to me theoretical BER equation of M-ary QAM over Rayleigh fading channel.

    Thanking you.

  2. Chris says:

    Hello, it seems that everyone is in need of those codes :) . Could you send me the code for matlab also??

    I’ll appreciate it. Thank you!!


    plz send me BER 64 QAM modulation code in AWGN

  4. Alain says:

    I´ve proved with the same code and the result was diferent

  5. John says:

    Gordon: Frankly speaking I could not figure this out easily and had to do a simulation. It turns out that there is significant difference (2-3 dB) at low EbNo but at higher signal to noise ratios the difference is reduced to a fraction of a dB.

    The simulation considered 64-QAM modulation but similar results are expected for other modulation schemes.

  6. Gordon Kokubunji says:

    May I know the sensitivity difference between the cases with and without gray coding?



  7. John says:

    Just use the code as it is. Change ‘k’ to get the different curves (k=2,4,6,8).

  8. Alain Fernandez says:

    I tried to do the graphic that you upload to the website in order to calculate the theorical BER of 4-QAM, 16-QAM and 64-QAM.
    I am not able to reproduce that graphic, could you send me the complete matlab code??

    Thank you very much

Leave a Reply

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

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" cssfile="">