Sunteți pe pagina 1din 1

for enabling error-free communication which uses redundancy to correct errors.

We observed
that CRC was essential for ARQ to work correctly but FEC was not. We also looked at the
repetition code as the simplest FEC scheme. In this course, we will not go into the details of
more complicated FEC schemes as that will require a lot more time than what can be afforded for
such a topic which can span a whole course on its own. A final remark is due, however, regarding
which layer FEC schemes belong to. Although they should naturally belong to the data link
layer since they help provide error-free communication between adjacent nodes, they are usually
implemented as part of the physical layer. For instance, most physical layer specifications of
current wireless standards like 802.11 and WiMAX include the description of the particular
FEC scheme which can be used. One reason for this is that the physical layer algorithms
are implemented in hardware.The FEC encoding/decoding operations can be computationally
intensive and can be performed faster in hardware. Another reason is that soft-decision decoding
algorithms for FEC schemes which take into account the received signal values have better
performance than hard-decision decoding algorithms. The received signal values are available
only at the physical layer.

4.2.1 Cyclic Redundancy Check

The basic principle behind an error detection code is to append a fixed number of check bits
to the payload at the sender which are a deterministic function of the payload bits. At the
receiver, the check bits are recalculated using the same deterministic function acting on the
received payload bits and compared to the received check bits. The deterministic function is
chosen such that errors in the decoder output will cause a discrepancy between the recalculated
check bits and the decoded check bits. When a discrepancy arises, an error is detected. The
check bits are also called the checksum of the payload. This terminology is a result of the fact
that the earliest error detection codes just performed a binary summation of the bytes in the
payload to generate the check bits.

The number of check bits is much less than the number of payload bits and hence multiple
payload bit strings will map to the same checksum. So there is a possibility of channel errors
going undetected when they transform the actual payload bits to another payload bit string
which yields the same check bits. To alleviate this problem, the error detection code is chosen
such that a number of errors less than a fixed value cannot result in a valid payload-checksum
pair.

Binary Polynomials

The study of CRC is greatly simplified if we represent bit strings using binary polynomials, i.e.
polynomials with coefficients which are either 0 or 1. For example, the bit string 101 is mapped
to X 2 +1. In general, the one-to-one correspondence between n-length bit strings to polynomials
of maximum degree n − 1 is given by the following.
bn−1 bn−2 · · · b2 b1 b0 ←→ bn−1 X n−1 + bn−2 X n−2 + · · · + b2 X 2 + b1 X + b0 (4.1)
Here are some more examples for the case n = 8.
00000000 ←→ 0
00001000 ←→ X 3
10101010 ←→ X 7 + X 5 + X 3 + X
11111111 ←→ X 7 + X 6 + X 5 + X 4 + X 3 + X 2 + X + 1

31

S-ar putea să vă placă și