• No results found

e i corresponds to the calculated syndrome vector and finally corrects the received vector by

2.11 Forward Error Correction and Automatic Repeat ReQuest

2.11.5 Hybrid-ARQ Schemes

Up to now the characteristics of FEC and ARQ coding schemes have been described. Their essential difference resides in the possibility of having or not a return link for the transmission of ACK or NAK and to request a retransmission. From the operational point of view, FEC schemes having a constant coding rate, but not a return link over which to request a retransmission, must decode using only the received vector. As previously remarked, given a particular code with minimum distance dmin, the number of errors it is capable of correcting, t =

dmin1

2

, is less than the number it is capable of detecting, l=dmin−1. In terms of the most recent and

efficient coding techniques, like turbo and low-density parity check codes, it is necessary to use relatively long block lengths in order to obtain efficient and powerful error correction, and the complexity of the decoding operation is normally high.

Probability p 10−8 10−7 10−6 10−5 10−4 10−3 10−2 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 1 Efficiency Infinite memory selective repeat Stop and wait,

td=10−2

Stop and wait, td=1

Stop and wait, td=10−1 Go-back N, N=128, N=32 and N=4

Figure 2.8 Efficiency relative to k/n for stop-and-wait, go-back-N and selective-repeat ARQ schemes, with rb=262,k=262,n=524; N =4,32 and 128 (go-back N ); and for td=10−2,10−1and 1 (stop and wait)

On the other hand, ARQ systems have a coding rate that varies with the channel noise conditions. In addition, even the detection of very few errors leads to a retransmission and hence a loss of efficiency. In this sense, FEC systems maintain their code rate while cor- recting small numbers of errors without needing retransmissions. However, there exists the possibility of erroneous decoding if the number of errors exceeds the correction capability of the code, and so the possibility of retransmission can lead to ARQ schemes being more reliable.

Depending therefore on the state of the channel, one or other of the systems will be more efficient. This suggests that where possible a combination of the two techniques might operate more efficiently than either on its own. This combination of ARQ and FEC schemes is called hybrid ARQ. Here the FEC is used to correct small numbers of errors, which also will normally occur most often. Given that correction of only a small number of errors per word or packet is intended, the corresponding code can be quite simple. The FEC attempts correction of a word, and if the syndrome evaluated over the corrected word indicates that it is a valid codeword, then it is accepted. If the syndrome indicates that errors are detected in the corrected word, then it is highly likely that there were more errors in the received word than the FEC could correct, and ARQ is used to ask for a retransmission.

There are two forms of hybrid ARQ, called type 1 and type 2. Hybrid-ARQ type 1 is typically based on a block code that is designed partly to correct a small number of errors and partly to detect a large number of errors, as determined by the expression dmin≥l+λ+1. So for

example a code with minimum distance dmin=11 could be used to correct patterns of up to

λ=3 errors, and also to detect any pattern of up to l=7 errors. It should be remembered that l > λalways applies in the above expression.

As will be seen in the following chapters, block codes can often be decoded by solving a system of equations. Appropriate construction of the system of equations allows the number of errors in correctable error patterns to be controlled, permitting correction of all patterns of up to λerrors. The code can also have additional capability devoted to error detection. The decoder therefore attempts to correct up toλerrors per block or packet, and recalculates the syndrome vector of the decoded word. If the syndrome is equal to zero, the word is accepted, and if not, a retransmission is requested. In general, compared to a purely ARQ scheme (non-hybrid), the code rate Rcin a hybrid scheme will be less than that for a non-hybrid scheme. This reduces

the efficiency at low-error probabilities. However, at high-error probabilities the efficiency of a non-hybrid scheme decreases more rapidly than that of a hybrid scheme as the error rate increases.

Hybrid-ARQ-type 2 schemes generate an improvement in transmission efficiency by send- ing parity bits for error correction only when they are needed. This technique involves two kinds of codes, one a code C0(n,k) which has high rate and is used for error detection only,

and the other a 1/2-rate code C1(2k,k) which has the property that the information bits can

be obtained from the parity bits by a process of inversion, and for that reason it is called an invertible code. In what follows, a codeword will be represented in its systematic form as a vector where the parity bits are denoted as a function of the message (information) bits:

c=(f (m0,m1, . . . ,mk−1),m0,m1, . . . ,mk−1)=(f (m),m)

The operation of the hybrid-ARQ-type 2 scheme can be seen in Figures 2.9 and 2.10. In these figures the notation used is, for example, that ˜c=f (m)˜ ,m˜is the received version (affected by the channel and so possibly containing errors) of c=(f (m),m). Also, f (m) is the redundancy

obtained using code C0, while q(m) is that using C1. The hybrid-ARQ-type 2 scheme operates

by repeatedly iterating between the two alternatives described in the flow charts of Figures 2.9 and 2.10, respectively. In this iteration the transmission or retransmission is affected by sending the codeword produced by code C0from the message itself, m, or by sending the redundancy

(parity bits) of the codeword produced by code C1, q(m), respectively. The receiver stores the

received versions of the message (information bits) or the redundancy (parity bits), respectively, depending on which alternative is being carried out. Having the message bits and the parity bits generated by code C1, the decoder in the receiver can apply error correction. As the

redundancy and the message have the same number of bits, the retransmission does not lead to a loss of efficiency over a system that always retransmits the message m while also permitting an additional decoding process for more effective overall error control. The process continues until the message bits are correctly decoded. For more details of hybrid-ARQ schemes, and particularly of the invertible codes used in type 2, the reader is referred to the book by Lin and Costello [4].

No No No Calculation of codeword c0 = (f(m),m) using code C0 Calculation of redundancy q(m) using code C1, stored but not transmitted

m is accepted

The transmitter sends

c0q = (f(q(m)),q(m)) using code C0 q(m) is accepted, m is q−1(q(m)) q (m) and m estimate m using code C1 m is accepted Yes Yes Yes

Second iteration alternative First iteration alternative m discarded, q (m) stored, NAK sent s1= syndrome (q(m), m) = 0? sqq = syndrome (c0q) = 0? s0 = syndrome (c0) = 0? c0q = (f (q(m)),q(m)) c0 = (f (m),m)

NAK sent and m

stored

Figure 2.9 First alternative of the hybrid-ARQ-type 2 iterative scheme

Yes Yes Calculation of codeword c0=(f(m),m) using code C0 Message for transmission m Calculation of redundancy q(m) using code C1 m is accepted, ACK sent No No

First iteration alternative Second iteration

alternative

c0 =(f (m),m)

s0 = syndrome (c0) = 0 qm is accepted,(m) is discarded

q(m) and m used to correct errors with code C1

s1= syndrome (q(m),m) = 0

q(m) is discarded, m is stored, NAK sent

Figure 2.10 Second alternative of the hybrid-ARQ-type 2 iterative scheme

Bibliography and References

[1] Shannon, C. E., “A mathematical theory of communication,” Bell Syst. Tech. J., vol. 27, pp. 379–423, 623–656, July and October 1948.

[2] Shannon, C. E., “Communications in the presence of noise,”Proc. IEEE, vol. 86, no. 2, pp. 447–458, February 1998.

[3] Carlson, B., Communication Systems. An Introduction to Signals and Noise in Electrical Communication, 3rd Edition, McGraw-Hill, New York, 1986.

[4] Lin, S. and Costello, D. J., Jr., Error Control Coding: Fundamentals and Applications, Prentice Hall, Englewood Cliffs, New Jersey, Ed. 1983 and 2004.

[5] MacWilliams, F. J. and Sloane, N. J. A., The Theory of Error-Correcting Codes, North- Holland, Amsterdam, 1977.

[6] Sklar, B., Digital Communications, Fundamentals and Applications, Prentice Hall, En- glewood Cliffs, New Jersey, 1993.

[7] Berlekamp, E. R., Algebraic Coding Theory, McGraw-Hill, New York, 1968.

[8] Peterson, W. W. and Weldon, E. J., Jr., Error-Correcting Codes, 2nd Edition, MIY Press, Cambridge, Massachusetts, 1972.

[9] Hillma, A. P. and Alexanderson, G. L., A First Undergraduate Course in Abstract Algebra, 2nd Edition, Wadsworth, Belmont, California, 1978.

[10] Allenby, R. B. J., Rings, Fields and Groups: An Introduction to Abstract Algebra, Edward Arnold, London, 1983.

[11] Hamming, R. W., “Error detecting and error correcting codes,” Bell Syst. Tech. J., vol. 29, pp. 147–160, April 1950.

[12] Proakis, J. G. and Salehi, M., Communication Systems Engineering, Prentice Hall, Englewood Cliffs, New Jersey, 1993.

[13] Proakis, J. G., Digital Communications, 2nd Edition, McGraw-Hill, New York, 1989. [14] McEliece, R. J., The Theory of Information and Coding, Addison-Wesley, Massachusetts,

1977.

[15] Ad´amek, J., Foundations of Coding: Theory and Applications of Error-Correcting Codes with an Introduction to Cryptography and Information Theory, Wiley Interscience, New York, 1991.

[16] Slepian, D., “Group codes for the Gaussian channel,” Bell Syst. Tech. J., vol. 47, pp. 575– 602, 1968.

[17] Caire, G. and Biglieri, E., “Linear block codes over cyclic groups,” IEEE Trans. Inf. Theory, vol. 41, no. 5, pp. 1246–1256, September 1995.

[18] Forney, G. D., Jr., “Coset codes–part I: Introduction and geometrical classification,”IEEE Trans. Inf. Theory, vol. 34, no. 5, pp. 1123–1151, September 1988.

Problems

2.1 For the triple repetition block code Cb(3, 1) generated by using the parity check submatrix P=[1 1], construct the table of all the possible received vectors and calculate the corresponding syndrome vectors S=rHTto determine cor- rectable and detectable error patterns, according to the error-correction capabil- ity of the code.

2.2 The minimum Hamming distance of a block code is dmin=11. Determine the error-correction and error-detection capability of this code.

2.3 (a) Determine the minimum Hamming distance of a code of code length n that should detect up to six errors and correct up to four errors per code vector, in a transmission over a BSC. (b) If the same block code is used on a binary erasure channel, how many erasures in a block can it detect, and how many can it correct? (c) What is the minimum block length that a code with this minimum Hamming distance can have?

2.4 A binary block code has code vectors in systematic form as given in Table P.2.1. Table P.2.1 A block code table

0 0 0 0 0 0 0 1 1 1 0 0 1 0 1 0 1 0 1 1 0 1 1 0 1 1 0 0 0 1 1 0 1 1 0 1 0 1 1 0 1 1 0 0 0 1 1 1

(a) What is the rate of the code?

(b) Write down the generator and parity check matrices of this code in systematic form.

(c) What is the minimum Hamming distance of the code? (d) How many errors can it correct, and how many can it detect?

(e) Compute the syndrome vector for the received vector r=(101011) and hence find the location of any error.

2.5 (a) Construct a linear block code Cb(5, 2), maximizing its minimum Hamming distance.

(b) Determine the generator and parity check matrices of this code.

2.6 A binary linear block code has the following generator matrix in systematic form:

G= ⎡ ⎣11 10 01 11 10 01 00 11 01 10 01 10 00 1 1 1 0 0 0 1 1 1 1 0 0 1 ⎤ ⎦

(a) Find the parity check matrix H and hence write down the parity check equa- tions.

(b) Find the minimum Hamming distance of the code.

2.7 The generator matrix of a binary linear block code is given below:

G=

1 1 0 0 1 1 1 0

0 0 1 1 1 1 0 1

(a) Write down the parity check equations of the code.

(b) Determine the code rate and minimum Hamming distance.

(c) If the error rate at the input of the decoder is 10−3, estimate the error rate at the output of the decoder.

2.8 The Hamming block code Cb(15, 11) has the following parity check submatrix: P= ⎡ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ 0 0 1 1 0 1 0 1 1 0 0 1 0 1 1 0 1 0 1 0 1 1 0 0 0 1 1 1 1 1 1 0 1 1 0 1 1 0 1 1 1 1 1 1 ⎤ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ (a) Construct the parity check matrix of the code. (b) Construct the error pattern syndrome table.

(c) Apply syndrome decoding to the received vector r=(011111001011011). 2.9 A binary Hamming single-error-correcting code has length n=10. What is

(a) the number of information digits k; (b) the number of parity check digits nk;

(c) the rate of the code; (d) the parity check equation;

(e) the code vector if all the information digits are ‘1’s and

(f) the syndrome if an error occurs at the seventh digit of a code vector? 2.10 Random errors with probability p=10−3 on a BSC are to be corrected by a

random-error-control block code with n=15, k=11 and dmin=3. What is the overall throughput rate and block error probability after decoding, when the code is used

(a) in FEC mode and

(b) in retransmission error correction (ARQ) mode?

2.11 An FEC scheme operates on an AWGN channel and it should perform with a bit error rate Pbe< 10−4, using the minimum transmitted power. Options for this scheme are the block codes as given in Table P.2.2.

Table P.2.2 Options for Problem 2.11

n k dmin

31 26 3

31 21 5

31 16 7

(a) Determine the best option if minimum transmitted power is required. (b) Calculate the coding gain at the desired Pbewith respect to uncoded trans-

2.12 An ARQ scheme operates on an AWGN channel and it should perform with a bit error rate Pbe< 10−5. Options for this scheme are the block codes as given in Table P.2.3.

(a) Determine for each case the required value of rb/r . (b) Determine for each case the required value of Eb/N0.

Table P.2.3 Options for Problem 2.12

n k dmin

12 11 2

15 11 3

16 11 4

2.13 Show that the generator matrix of a linear block error-correcting code can be derived from the parity check equations of the code.

3