Block coding analogy

As an analogy, consider the input blocks of data as being represented by different-sized balls. After encoding, the different-sized balls have been given different colours. The decoder is now optimized for checking both size and colour. If the receiver detects a particular-sized ball, with the wrong colour, it can now detect the error. It may also be possible to correct the error from its stored knowledge of all valid ball sizes and colours.

If the channel errors are so numerous that the ball size and colour are transformed into another valid ball size and colour then the error will go undetected and uncorrected.