Before sending bits to the channel, they are usually somehow coded. By coding the bits we want to make it easier for the receiver to localize errors which are likely to occur during our transmission (the most easy case to understand is the additive noise added by the channel). It is actually also possible to correct some of these errors.
If we code, we of course have also to decode in order to get the original information back. When you read about decoding techniques you will find Hard Decoding and Soft Decoding. explanation.
It is important to understand what Hamming Distance and Euclidean Distance mean, especially applied to vectors. You can have a look at the following links:
Follow the link for Convolutional coding:
- http://www.comlab.hut.fi/opetus/333/2004_2005_slides/Convolutional_Coding_Viterbi_Algorithm.pdfFollow the link for Reed Solmon and Convolutional coding: