I read that BER performance would be improved if Gray code is used in 16 QAM rather than natural binary coding. I think that it should not depend on the coding used. 16 QAM simply assigns to each of the 16 combinations of 4 bits, one particular sinusoidal signal with fixed frequency but different amplitude and phase. When this is transmitted and detected properly at the receiver we can get the 4 bit group transmitted. The error depends on the detection capability and the noise in the system. Any arbitrary assignment between the signals and the group of 4 bits should give the same BER as long as the detection performance is the same. Where am I going wrong?
You are confusing symbol errors and bit errors. What you say is true for the symbol error rate; it only depends on the signal-to-noise ratio (SNR). However, depending on the coding, i.e. the mapping of the bits to the symbols, one symbol error can cause one or more bit errors. The most likely symbol errors are the ones where a symbol is confused with one of its closest neighbors. Gray coding makes sure that those most likely symbol errors cause only one bit error. Other types of coding will result in more bit errors per symbol error. This is why Gray coding minimizes the bit error rate for a given symbol error rate (i.e., a given SNR), if one assumes that symbols are only confused with their closest neighbors, which is very likely for moderate to high SNRs.
I got the answer from a friend through discussion. Actually, symbol error rate is independent of code used but the bit error rate will be different depending on the coding scheme used. I was saying BER but was thinking of SER (symbold error rate), that is the cause of the confusion.