Constructing a rectangular constellation for 16-QAM

October 10, 2012 in Constellations, Digital Modulations, M-QAM

Any rectangular QAM constellation is equivalent to superimposing two ASK signals on quadrature carriers (I and Q components). For 4-QAM modulation, each symbol is of size k = log2(M) = log2(4) = 2 bits. For 16-QAM modulation, the symbol size is k = log2(16) = 4 bits.

There exist other constellations that are more efficient (in terms of energy required to achieve same error probability) than the standard rectangular constellation. But due to its simplicity in modulation and demodulation rectangular constellations are preferred.

In any M-QAM constellation, in order to restrict the erroneous symbol decisions to single bit error, the adjacent symbols in the transmitter constellation should not differ more than one bit. This is usually achieved by converting the input symbols to Gray coded symbols and then mapping it to the desired QAM constellation. But this intermediate step can be skipped altogether by using a Look-Up-Table (LUT) approach which properly translates the input symbol to appropriate position in the constellation. We will exploit the inherent property of Karnaugh Maps to generate the gray coded 16-QAM constellation

Karnaugh Maps:

If you are familiar with Karnaugh Maps (K-Maps) used in digital electronics, it is easier for you to identify that the K-Maps are constructed based on Gray Codes.

To generate a gray coded 16-QAM constellation we will use a 4 variable (since for 16-QAM, the symbol size is 4 bits) K-Map. A 16 QAM constellation can be constructed using two 4-ASK signals. For a 4-ASK signal there are 4 amplitude levels. For our case the 4 amplitude levels are {-3,-1,+1,+3}.

A 4 variable K-Map will look like the one shown below. Here ABCD are the 4 variables appearing in the bit order (MSB at A and LSB at D).

Now replace the variables AB and CD with the 4 amplitude levels {-3,-1,+1,+3}. Here AB is considered as the two bits ASK modulated on the in-phase arm and CD is considered as the two bits ASK modulated on the quadrature arm.

Now assign equivalent decimal values (shown in square brackets) to each cell value in the table.

Construct an array with the numbers indicated in the square brackets as array indices. The respective value for each index in the array is taken as AB + j CD. The array indices are the input to the 16-QAM modulator and the corresponding array values are the 16-QAM modulator output that are gray coded and mapped to constellation points. Note: In Matlab the array subscript always starts with ’1′. So, care has to be taken when accessing the array values.

Let’s draw the constellation to verify the above mentioned approach. Plot the in-phase and quadrature phase components (QAM output) and each point with the equivalent binary representation of the array index gives the 16-QAM constellation where the adjacent symbols differ by only one bit.

The same approach can be used to construct rectangular constellation for QAM modulation for any values of M. For example a 64-QAM constellation would require a k=log2(64) = 6 Variable Karnaugh Map to begin with.

See Also

[1] Simulation of Symbol Error Rate Vs SNR performance curve for 16-QAM in AWGN
[2] BER Vs Eb/N0 for 8-PSK modulation over AWGN
[3] BER Vs Eb/N0 for QPSK modulation over AWGN
[4]QPSK modulation and Demodulation
[5] Simulation of BER Vs Eb/N0 for BPSK modulation over AWGN in Matlab
[6] Intuitive derivation of Performance of an optimum BPSK receiver in AWGN channel
[7] Simulation of M-PSK modulation techniques in AWGN channel

Recommended Books

More Recommended Books at our Integrated Book Store

Your Thoughts ?

comments

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>