When mapping symbols of various modulation constellations, Gray code is used such that - each adjacent symbol only differs by one bit. Why do we want small physical changes in the signal to correspond to small changes in the symbol ? Why not use binary mapping ?

  • 1
    \$\begingroup\$ Using gray code means that in the presence of an incorrect slice/demap it's more likely only one bit will be wrong. If you used binary, you might get two bits wrong in such a case. Given the improved probability of getting only one bit wrong using gray coded symbols, the addition of error-correction codes is now also more meaningful as they can be easily designed to correct single-bit errors. \$\endgroup\$
    – jonk
    Oct 21, 2020 at 3:23

1 Answer 1


Because of noise and channel distortion.
Any noise or distortion would result in a change in amplitude and phase of receiving symbols. So for instance in 16-QAM with 4-bit words, if an amount of distortion causes a symbol to place in the adjacent room, we will have only one bit error while other 3 bits are ok. In this case if we use binary sequence, the same amount of distortion could end up more losses, even the all bits of the symbol.

  • 1
    \$\begingroup\$ So in other words it's done to make the job for the FEC module easier ? \$\endgroup\$
    – shaiko
    Oct 21, 2020 at 8:05
  • \$\begingroup\$ Yes, using Gray code reduces the overall error rate with respect to the case of using normal-binary code. And of course, makes error correction process much more easier. \$\endgroup\$ Oct 21, 2020 at 8:29

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.