*Sixteen unique 16-QAM symbols can each convey a unique 4-bit sequence.*

In part 1 of this series, we discussed quadrature amplitude modulation (QAM), which results from summing amplitude-modulated cosine and sine waves of the same frequency. We also looked at the constellation diagram, which a test instrument such as an oscilloscope or vector signal analyzer can display in the modulation domain to help evaluate QAM systems. We illustrated the 16 unique symbols, each corresponding to a unique bit sequence, that a 16-QAM system can transmit.

**How do we determine what bit sequence corresponds to each symbol?**

For 16-QAM, we can guess that each of the 16 symbols will map to a four-bit binary sequence from 0000 to 1111 or 0 to 15 decimal. In general, for an *n*-QAM system (that is, a QAM system with *n* unique symbols), you can calculate the bits per symbol *b *as follows:

*b* = log_{2}*n*.

So for 16-QAM, *b* is four, as we surmised, and for 4096-QAM (4K QAM), the number of bits per symbol is

*b* = log_{2}(4,096) = 12.

**For 16-QAM, how do we map our four-bit sequences to each symbol?**

You can map these positions in various ways, as long as both the transmitter and receiver know the details. **Figure 1** shows one rectangular mapping possibility.

**Wait — the top row seems to start with a binary pattern, 0, 1, but then we have 3, 2, and the second row is 4, 5, but then 7, 6. Is there a pattern here?**

I have made some adjustments to a binary sequence to implement Gray coding, which we looked at in an earlier article on testing PCIe gen 6 and about which we will have more to say shortly. For now, just note that a sequence of symbols represents a sequence of bits. **Figure 2** shows a sequence of four 16-QAM symbols conveying 16 bits.

**From a test and measurement perspective, what can we learn from the modulation-domain display?**

Unlike the diagrams we’ve looked at so far, points on a real-world constellation diagram will not be nicely centered in their regions of validity. If we capture a nonrepeating 16-symbol sequence, it might look like **Figure 3**.

**It looks like some of the symbols are migrating into their neighbor’s territory.**

Right, that’s the reason to use Gray coding, which assures that adjacent four-bit sequences vary in only one bit position. **Figure 4 **provides examples, in which a signal that should occupy the 0001 position migrates one position to the right. In the top, binary-coded row, the dot is read as 0010, with both the third and fourth bit flipping, representing a two-bit error. In the bottom, Gray-coded row, the errant signal is read as 0011, a single-bit error, for which is easier and quicker to perform error detection and correction than for a two-bit error.

**What else can we learn from the modulation-domain view?**

If you look at Figure 3, what we really need is a way to quantify each dot’s deviation from its ideal position. The parameter we use to do that is error-vector magnitude (EVM). We’ll cover the details of EVM in the concluding part of this series.

**Related EE World content**

How to interpret a QAM display: part 1

Should I use a spectrum, signal, or vector network analyzer? part 3

What is PCIe gen 6 and how do I test it? Part 2

Types of waves in an oscilloscope

Testing Wi-Fi 6E performance

What you need to know about error analysis in PCIe 6.0 designs