So in class, we've been asked to find the best bit mapping policy for QAM modulation schemes (4-QAM, 8-QAM, 128-QAM, etc). Best meaning the one that will provide the lowest bit error Probability ($P_{be}$). I think I understand the concept, which is for each point closest to a given point, try to change the fewest number of bits. The absolute best case is gray coding, but that would only be possible for 4-QAM.
For example, I can come up with the best bit mapping policy for the star 8-QAM constellation below. ( the points are numbered in red)
for outside points (points 1,3,5, and 7) I'm making sure that the two closest points to each only 1 bit changes. So point 1 = 000, and point 2 = 100 (only the Most significant bit changed) and points 8 = 001 (only the least significant bit changed). For the 8-QAM, it's small enough that Just pick a random bit combination for the outside points, and then try to only change 1 bit to get to the center, but for a 16-QAM, for even a 256-QAM this starts getting difficult to just go about picking at random.
So my question is this; Is there a systematic way to go about selecting the bit mapping for these larger constellations?
Also, once we find the bit mapping policy, how can we calculate the bit error probability $P_{be}$? I know how to find the symbol error probability $P_{es}$, and i know for gray coding $P_{be} = \frac{P_{es}}{log_2 M}$ where $M$ is the number of symbols (for 8-QAM $M = 8$). but since everything higher than 4-QAM can only be partial gray coding, how do we determine $P_{be}$ in terms of $P_{es}$?