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
KN
K
N
in comparison to the no-channel-coding situation, which means
the energy per bit
E
b
E
b
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.
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
p
e
p
e
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.
Using MATLAB, calculate the probability a
bit is received incorrectly with a three-fold repetition
code. Show that when the energy per bit
E
b
E
b
is reduced by
1/3
13
that this probability is larger than the no-coding
probability of error.
With no coding, the average bit-error probability
p
e
p
e
is given by the
probability of error equation
:
p
e
=Q2α2
E
b
N
0
p
e
Q
2
α
2
E
b
N
0
. With a threefold repetition code, the bit-error
probability is given by
3
p
e
′
2×(1−
p
e
′
)+
p
e
′
3
3
p
e
′
2
1
p
e
′
p
e
′
3
, where
p
e
′
=Q2α2
E
b
3
N
0
p
e
′
Q
2
α
2
E
b
3
N
0
. 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
KK bits that enter
the block channel coder, it inserts an additional
N−K
N
K
error-correction bits to produce a block of NN 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
K
1
and
N=3
N
3
. A block code's coding efficiency EE equals the ratio
KN
K
N
, and quantifies the overhead introduced by channel
coding. The rate at which bits must be transmitted again
changes: So-called data bits
bn
b
n
emerge from the source coder at an average rate
BA-
B
A
and exit the channel at a rate
1E
1
E
higher. We represent the fact that the bits sent
through the digital channel operate at a different rate by using
the index ll for
the channel-coded bit stream
cl
c
l
. Note that the blocking (framing) imposed by the
channel coder does not correspond to symbol boundaries in the
bit stream
bn
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
KN
K
N
as large as possible).
"Electrical Engineering Digital Processing Systems in Braille."