Data Coding Theory/Repetition Codes

Repetition Codes
Repetition codes are not special "codes" so much as they are tricks to try to reduce the error rate. In a repetition code, data is transmitted multiple times, verbatim. The receiver reads enough of these repeats until a clear consensus emerges as to the value of the message.

Perhaps the most popular repetition code is "triple modular redundancy", sending the same message 3 times.

To send n data bits with k repetitions, nk bits need to be transmitted.

Other, more complicated codes can detect and correct occasional single-bit errors with much less overhead, giving a higher goodput data rate through the same channel.

Example
Let's say we have a repeated message of 3 bits that is sent 3 times. When it is received, each message is different:

Because we didn't receive exactly the same message all 3 times, we have detected that some errors occurred.
 * 101
 * 001
 * 100

We can see that the middle bit is almost certainly a 0, because it is the same in all messages. We can also see that the first and the last digit are likely to be a 1 because 2 out of 3 of the messages say that these values are 1. The transmitted message then was most likely 101.