C hannel C oding
2.3.1 A sim ple ECC exam ple
To provide an illustrative framework for some basic definitions, an example of a very simple linear binary (7,4) code with a minimum Hamming distance dmin = 3 will be considered. This has k = A information bits encoded into n = 7 code word bits. Therefore, 2^ possible distinct messages will be encoded into 2” code words using a one-to-one correspondence. The generator m atrix G of such a code is of the following form:
G = ^0 9i 92 9z 1 1 0 1 0 0 0 0 1 1 0 1 0 0 1 1 1 0 0 1 0 1 0 1 0 0 0 1
while the parity check m atrix H will be the following
C h ap ter 2 - Forward Error Control 17
H =
1 0 0 1 0 1 1
0 1 0 1 1 1 0 (2.2)
0 0 1 0 1 1 1
Assume th a t a message ü = (1101) must be transm itted using the above code. To achieve this, the message must be multiplied with the generator m atrix so th at the code word vector v is produced, i.e.
V = Ü ' G = (1101) C — 1 - po 4-1 ' T 0 - ^2 T 1 ' p3 —
( 1101000) + (0110100) + (1010001) = 0001101
Thus the transm itted EC code word will be 0001101. Because the (7,4) code is a systematic one, the four last bits contain the original message in the correct order, while the initial three bits are the parity bits required for error detection and correction at the receiver. Table 2.1 contains the mappings for all possible four bit information words.
2.4
D ecoding a Sim ple ECC
In the previous section, a 4-bit information message was encoded into a 7-bit code word using a linear block code. In this section, the received word will be decoded and up to t errors will be corrected. Since t = and for our code dmin = 3 then t = 1, i.e. it is a single error correcting code.
Assume th a t f = (ro, r i , r 2, rs, r 4,rs, re) is the received vector. The syndrome
Information word (7,4) code words 0000 000 0000 0001 101 0001 0010 Oil 0010 0011 010 0011 0100 o i l 0100 0101 110 0101 0110 010 0110 0111 001 0111 1000 110 1000 1001 o i l 1001 1010 001 1010 1011 100 1011 1100 101 1100 1101 000 1101 1110 010 1110 n i l 111 n i l
Table 2.1: Linear block code with k = 4 information bits and n = 7 code word bits.
C h ap ter 2 - Forward Error Control 19
S = s = r ' = (so, Si, ... , S(„_fc_i)). (2.3) From this it is deduced th a t the syndrome is simply the sum of the received parity digits and those re-computed at the decoder. Thus if 5 / 0 an error has been detected.
Using equation 2.3 in our example (7,4) code the following equation is obtained;
s = (sq, Si, S2) = f ’ = {u F ë) - = ü • + ë - = 0 F ë ’ = ë • Assuming th a t the vector f = (1001001) has been received, i.e. a single error exists in bit position 5 the syndrome will be equal to:
5 = f • 77^ - (1001001) 100 010 001 110 Oil 111 101 = (111) (2.4)
Therefore S ^ 0 and an error has been detected. In order to detect the error position it is noted th at
(111) — (co, ei, 62, 63,64,65, eg) 100 010 001 110 Oil 111 101 (2.5)
Using equations 2.4 and 2.5 the following error vectors are derived:
1 — 60 + 63 + 65 + 66 1 — 6 1 + 6 3 + 6 4 + 6 5 1 — 6 2 + 6 4 + 6 5 + 6 6 (2.6) (2.7) (2 .8)
A number of possible solutions exist th at satisfy the above equations. If max imum likelihood decoding is used for error location then the error pattern with the minimum number of corrected positions is selected. In this case, this is the
(0000010) error vector. If this is added to our received vector the transm itted vector will be obtained.
In chapter 4, Berlekamp’s iterative algorithm will be briefly presented. This is an algorithm for generating the error locator polynomial, appropriate for more complex and powerful codes. It is a well-established technique which lends itself to software implementation.
C hap ter 2 - Forward Error Control 21
2.5
Soft D ecision D ecoding
In the previous sections it was dem onstrated how the information bits could be encoded and decoded so th at error detection and correction were possible. At the receiver, only the algebraic properties of the code were utilised to locate any possible errors. This is termed hard decision decoding (HDD).
In this section, the basic principles of soft decision decoding (SDD) are pre sented. SDD uses the analogue information to try to increase the error correcting capability of the code. As has been mentioned before, a code of minimum distance
dmin can correct up to t errors. The use of SDD allows this limit to be exceeded, under certain conditions. The penalty is the increased complexity of the decoder and the fact th at the t-error correcting capability ^ ^ 7 not be guaranteed anymore SDD techniques are not suitable for very noisy systems. However, modern telecommunication and data storage systems usually have very low error rates and can thus benefit from the application of such techniques.
A modified communications system which includes SDD, is shown in figure 2.3. Here extra information is provided to the decoder in the form of the analogue values of the received bits. These values are provided by the demodulator and are used to facilitate the decoding process by indicating possible error positions.
SDD algorithms can be grouped into two broad classes:
(a) Minimum distance (or minimised sequence error rate) decoding algorithms, based on [6].
(b) Trellis decoding algorithms, adapted for block codes.
Digilal Data
ECC Encoder M odulator
u=(u ,u ...u v = ( v ,v V
(k-1)
N oise and Interference
TX system
ECC Decoder Dem odulator
Analogue Infotm ation
Figure 2.3: Communications system (with SDD) block diagram.
used are the Chase algorithms. This is because they can offer a balance between decoding power and complexity. In the following sections the Chase algorithms will be examined in detail. Their shortcomings will be identified and then addressed in chapter 5.