Skip to main content
Engineering LibreTexts

6.26: Block Channel Coding

  • Page ID
    1878
  • \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \) \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)\(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\) \(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\)\(\newcommand{\AA}{\unicode[.8,0]{x212B}}\)

    Learning Objectives
    • Repetition codes, a special case of block channel coding, proves not to improve coding efficiency.

    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 K/N in comparison to the no-channel-coding situation, which means the energy per bit Eb 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.

    Note

    It is unlikely that the transmitter's power could be increased to compensate. Such is the sometimes-unfriendly nature of the real world.

    Because of this reduction, the error probability pe of the digital channel goes up. The question thus becomes does channel coding really help: Is the effective error probability lower with channel coding even though the error probability for each transmitted bit is larger? The answer is no: Using a repetition code for channel coding cannot ultimately reduce the probability that a data bit is received in error. The ultimate reason is the repetition code's inefficiency: transmitting one data bit for every three transmitted is too inefficient for the amount of error correction provided.

    Exercise \(\PageIndex{1}\)

    Using MATLAB, calculate the probability a bit is received incorrectly with a three-fold repetition code. Show that when the energy per bit Eb is reduced by 1/3 that this probability is larger than the no-coding probability of error.

    Solution

    With no coding, the average bit-error probability pe is given by the probability of error equation :

    \[p_{e}=Q\left ( \sqrt{\frac{2\alpha ^{2}E_{b}}{N_{0}}} \right ) \nonumber \]

    With a threefold repetition code, the bit-error probability is given by

    \[3p_{e}^{'2} \times (1-p_{e}^{'}) +p_{e}^{'3} ,\; where\; p_{e}^{'}=Q\left ( \sqrt{\frac{2\alpha ^{2}E_{b}}{3N_{0}}} \right ) \nonumber \]

    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.

    signal to noise ratio.png
    Figure 6.26.1

    The repetition code represents a special case of what is known as block channel coding. For every K bits that enter the block channel coder, it inserts an additional N-K error-correction bits to produce a block of N bits for transmission. We use the notation (N,K) to represent a given block code's parameters. In the three-fold repetition code, K=1 and N=3. A block code's coding efficiency E equals the ratio K/N, and quantifies the overhead introduced by channel coding. The rate at which bits must be transmitted again changes: So-called data bits b(n) emerge from the source coder at an average rate \[\overline{B(A)} \nonumber \] and exit the channel at a rate 1/E higher. We represent the fact that the bits sent through the digital channel operate at a different rate by using the index l for the channel-coded bit stream c(l). Note that the blocking (framing) imposed by the channel coder does not correspond to symbol boundaries in the bit stream b(n), 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 K/N as large as possible).


    This page titled 6.26: Block Channel Coding is shared under a CC BY 1.0 license and was authored, remixed, and/or curated by Don H. Johnson via source content that was edited to the style and standards of the LibreTexts platform; a detailed edit history is available upon request.