Hi:
The QAM modulator receives the information from the channel and asume it is afected by noise. So for example if we use 4QAM, the symbols used to modulate the signals are +1,-1 for the I-channel and +1,-1 for the Q-channel. After the channel, we have the symbolos plus noise, so for example if +1 was Tx, we may receive 0.5456. We know that an error happens when we get a sign change i.ex -0.123. The key in soft demodulatipon (not soft decoding) is to pass to the decoder a quantization of the effect of the channel. If we use 3 bits quantization (with MSB for the sign) we get four levels of representation. That is:
00 ---- (for signals between 0 and 0.25)
01 ---- (for signals between 0.25 and 0.5)
10 ---- (for signals between 0.5 and 0.75)
11 ---- (for signals between 0.75 and 1)
and the third bit indicates if the symbol represents a one or a cero (used for hard decision). For 4QAM it is easy see that a greater magnitude on the symbol will not cause an error but for 16QAM the thing will go different.
I hope that can help you get started.
Mario