Because of the higher datarate imposed by the channel coder, the probability of bit error occurring in the digital channel increases relative to the value obtained when no channel coding is used. The bit interval duration must be reduced by in comparison to the no-channel-coding situation, which means the energy per bit goes down by the same amount. The bit interval must decrease by a factor of three if the transmitter is to keep up with the data stream, as illustrated here.
Using MATLAB, calculate the probability a bit is received incorrectly with a three-fold repetition code. Show that when the energy per bit is reduced by that this probability is larger than the no-coding probability of error.
With no coding, the average bit-error probability is given by the probability of error equation : . With a threefold repetition code, the bit-error probability is given by , where . Plotting this reveals that the increase in bit-error probability out of the channel because of the energy reduction is not compensated by the repetition coding.
The repetition code represents a special case of what is known as block channel coding. For every bits that enter the block channel coder, it inserts an additional error-correction bits to produce a block of bits for transmission. We use the notation (N,K) to represent a given block code's parameters. In the three-fold repetition code, and . A block code's coding efficiency equals the ratio , and quantifies the overhead introduced by channel coding. The rate at which bits must be transmitted again changes: So-called data bits emerge from the source coder at an average rate and exit the channel at a rate higher. We represent the fact that the bits sent through the digital channel operate at a different rate by using the index for the channel-coded bit stream . Note that the blocking (framing) imposed by the channel coder does not correspond to symbol boundaries in the bit stream , especially when we employ variable-length source codes.
Does any error-correcting code reduce communication errors when real-world constraints are taken into account? The answer now is yes. To understand channel coding, we need to develop first a general framework for channel coding, and discover what it takes for a code to be maximally efficient: Correct as many errors as possible using the fewest error correction bits as possible (making the efficiency as large as possible).