Hard decision decoding takes a stream of bits say from the 'threshold detector' stage of a receiver, where each bit is considered definitely one or zero. Eg. for binary signaling, received pulses are sampled and the resulting voltages are compared with a single threshold. If a voltage is greater than the threshold it is considered to be definitely a 'one' say regardless of how close it is to the threshold. If its less, its definitely zero. Soft decision decoding requires a stream of 'soft bits' where we get not only the 1 or 0 decision but also an indication of how certain we are that the decision is correct. One way of implementing this would be to make the threshold detector generate instead of 0 or 1, say: 000 (definitely 0), 001 (probably 0), 010 (maybe 0), 011 (guess 0), 100 (guess 1), 101 (maybe 1), 110 (probably 1) , 111(definitely 1). We may call the last two bits 'confidence' bits. This is easy to do with eight voltage thresholds rather than one. This helps when we anticipate errors and have some 'forward error correction' coding built into the transmission. Define FEC precisely.
Example: A receiver receives a bit stream consisting of sequences of 8 bit words which contain 7 information bits and one parity bit. The parity bit is set at the receiver in such a way that the total number of ones in each 8 bit word is even. Even parity. A soft decision threshold detector as described above generates the following outputs.
(i) 000 110 010 111 001 011 110 111 (ii) 000 110 010 111 001 011 110 001
What is the most likely 8-bit word in each case?
Say what convolutional coding is and a half rate coder abd 3/4. The Viterbi alg can take these 'soft bit' words and compute distances etc. as easily as it deals with hard bits. No great additional complexity apart from dealing with words (in this example 3-bit words) rather than one bit words. But the decisions are likely to be much much better with the greater reliability being placed on bits we are certain about than on but we are more uncertain about. |
|