Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Academia.eduAcademia.edu

Erasure Techniques in MRD Codes

2012

AI-generated Abstract

The book explores erasure techniques in concatenated Maximum Rank Distance (MRD) codes, introducing a new concept of concatenation with binary codes to create concatenated rank distance codes (CRM codes). These codes allow for flexibility in constructing codes with desired minimum distances and facilitate bulk transmission of messages. Applications of erasure decoding methods and the notion of integer rank distance codes are elaborated, with the text organized into chapters covering foundational concepts, algebraic structures, decoding techniques, and concatenation methods.

PREFACE

In this book the authors study the erasure techniques in concatenated Maximum Rank Distance (MRD) codes. The authors for the first time in this book introduce the new notion of concatenation of MRD codes with binary codes, where we take the outer code as the RD code and the binary code as the inner code. The concatenated code consists of the codewords of the outer code expressed in terms of the alphabets of the inner code. These new class of codes are defined as CRM codes. This concatenation techniques helps one to construct any CRM code of desired minimum distance which is not enjoyed by any other class of codes.

Also concatenation of several binary codes are introduced using the newly defined notion of special blanks. These codes can be used in bulk transmission of a message into several channels and the completed work is again consolidated and received.

Finally the notion of integer rank distance code is introduced. This book is organized into six chapters. The first chapter introduces the basic algebraic structures essential to make this book a self contained one. Algebraic linear codes and their basic properties are discussed in chapter two. In chapter three the authors study the basic properties of erasure decoding in maximum rank distance codes.

Some decoding techniques about MRD codes are described and discussed in chapter four of this book. Rank distance codes with complementary duals and MRD codes with complementary duals are introduced and their applications are discussed. Chapter five introduces the notion of integer rank distance codes. The final chapter introduces some concatenation techniques.

We thank Dr

BASIC CONCEPTS

In this chapter we give the basic concepts to make this book a self contained one. Basically we need the notion of vector spaces over finite fields and the notion of irreducible polynomials over finite fields. Also the notion of cosets of groups for error correction is needed. We will briefly recall only those facts, which is essential for a beginner to under stand algebraic coding theory. DEFINITION 1.1: Let G be a non empty set '*' a closed associative binary operation defined on G such that; (i) there exists a unique element e in G with g * e = e * g = g for all g ∈ G.

(ii)

For every g ∈ G there exists a unique g′ in G such that g * g′ = g′ * g = e; g′ is called the inverse of g in G under the binary operation *.

Then (G, *) is defined as a group.

If in G for every pair a, b ∈ G; a*b = b*a then we say G is an abelian group.

If the number of distinct elements in G is finite then G is said to be a finite group otherwise G is said to be an infinite group.

Example 1.5:

Let G = Z 2 × Z 2 × … × Z 2 , n times with G = {(x 1 , x 2 , …, x n ) / x i ∈ Z 2 ; 1 ≤ i ≤ n} is an abelian group under addition modulo 2 of order 2 n . Example 1.6: H = Z p × Z p × … × Z p -t times is an abelian group under addition modulo p of order p t . Now we will just define the notion of a subgroup.

We will illustrate this with examples. First it is important to note that in case of commutative groups every subgroup is normal.

We have so far given only examples of groups which are commutative.

Example 1.13: Let

G is a non commutative group under multiplication of matrices.

It is easily verified all subgroups of G are not normal in G,

x ∈ Q + } is a subgroup of G and H is not a normal in G.

Also P = x 0 x, y Q 0 y

is a subgroup of G and is P not a normal subgroup of G.

We now proceed onto recall the definition of cosets of a group.

DEFINITION 1.4: Let G be a group H a subgroup of G. For a ∈ G, aH = {ah | h ∈ H} is defined as the right coset of H in G.

We have the following properties to be true.

There is a one to one correspondence between any two right cosets of H in G.

(ii) In case H is a normal subgroup of G we have the right coset to be equal with the left coset.

If H is a normal subgroup of G we can define the quotient group or the factor group of H in G as G/H = {Hb / b ∈ G} = {bH / b ∈ G} (Hb = bH for all b ∈ G}.

G/H is a group and if G is finite o (G) / o (H) = o (G/H).

Now we proceed onto recall definition of rings and fields.

DEFINITION 1.5: Let R be a non empty set with the two binary operations + and ×, such that (i) (R, +) is an abelian group (ii) (R, ×) is such that '×' is a closed operation on R and '×' is an associative binary operation on R (iii)

If for all a, b, c ∈ R we have a × (b+c) = a × b + a × c and (b+c) × a = b × a + c × a; then (R, +, ×) is defined to be a ring.

If a × b = b × a for all a, b ∈ R, we define R to be a commutative ring.

If R contains 1 called the multiplicative identity such that a × 1 = 1 × a = a for all a ∈ R we define R to be a ring with unit.

If is important to note that all rings need not be rings with unit.

We will give examples of them.

is a non commutative ring with identity 1 0

Example 1.22:

Let P = {n × n matrices with entries from Q}, P is a non commutative ring with unit under matrix addition and multiplication.

We will now recall the definitions of subrings and ideals of a ring. Similarly if for all r ∈ R and h ∈ H, hr ∈ H we define H to be a right ideal. If H is both a left ideal and a right ideal then we define H to be an ideal of R.

The following observations are important.

If R is a commutative ring the notion of right ideal and left ideal coincides.

(ii) If I is an ideal of a ring R then (0) ∈ I.

(iii) (0) is called the zero ideal of R.

(iv) If I is an ideal of the ring R then 1 the unit of R is not in I. For if 1 ∈ I then I = R.

We will now give examples of ideals.

be the ring.

Clearly S is a non commutative ring.

Thus we see in general in a non commutative ring R a left ideal is not a right ideal of R. Now just like quotient groups we can define quotient rings using two sided ideals of the ring R. Let R be a ring and I a two sided ideal of R. R/I = {a + I / a ∈ R} is a ring defined as the quotient ring of R [2].

We will illustrate this situation by some examples. We proceed onto recall the definition of a field. If in F we have nx = 0 for all x ∈ F only if n = 0 where n is any positive integer then we say F is a field of characteristic zero.

If p(x) is not reducible that is p(x) = g(x) b(x) implies deg g(x) = deg p(x) or deg b(x) = deg p(x) then we define p(x) to be irreducible in R [x].

p(x) = x 2 + 1 ∈ R[x]; R reals is an irreducible polynomial in R[x].

p (x) = x 2 + 1 ∈ Z 2 [x] is reducible in Z 2 [x] as p(x) = (x+1) (x+1).

p(x) = x 2 -4 ∈ R[x] is a reducible polynomial as x 2 -4 = (x+2) (x-2) where R is the set of reals.

p (x) = x 2 + q is irreducible polynomial in R[x] where q is a positive value in R, R-reals.

We have seen examples of reducible and irreducible polynomials.

We first see the concept of reducibility or irreducibility is dependent on the ring or the field over which they are defined. The purpose of these irreducible polynomials is they generate a maximal ideal and this concept will be used in the construction of fields and finite fields. Suppose we replace Z by Z 2 and consider the polynomial ring Z 2 [x]; x 2 + 1 is a reducible polynomial in Z 2 [x].

Let I be the ideal generated by x 2 + 1. where I is the ideal generated by p(x) and I acts as the additive identity. Now 1 + I is the multiplicative identity. Further x + I is the inverse of 1 + x + I. To prove this we must show (x + I) (1 + x + I) = 1 + I. Now (x + I) (1 + x + I) = x (1 + x) + I = x 2 + x + I = (x 2 + x + 1) + 1 + I = 1 + I as 1 + x + x 2 ∈ I. 22 Now based on this we give the following facts interested reader can refer [2]. Let Z p [x] be a polynomial ring with coefficients from the field Z p , p a prime. p (x) ∈ Z p [x] be a polynomial of degree n. Suppose p(x) is irreducible over Z p and I be the ideal generated by p (x).

is a field and this field has p n elements in it and its characteristic is p.

Thus this method gives one the way of constructing non prime fields of characteristic p. Suppose V = 2 3 Z [x] I x x 1 = 〈 + + 〉 = {I, 1 + I, x + I, x 2 + I, 1 + x + I, 1 + x 2 + I, x + x 2 + I, 1 + x + x 2 + I}.

I is a field of characteristic two and V has 2 3 elements and the irreducible polynomial x 3 + x + 1 is of degree 3 so V has 2 3 elements in it. Suppose p(x) = x 3 + 1, clearly p(x) is reducible in Z 2 [x] for x 3 + 1 = (x + 1) (x 2 + x + 1).

Consider 2 2 Z [x] Z [x] p(x) I = 〈 〉 = V = {I, 1 + I, x + I, x 2 + I, 1 + x + I, 1 + x 2 + I, x + x 2 + I, 1 + x + x 2 + I}. V is not a field for V has zero divisors. I is the additive identity or zero in V. Consider 1 + x + I, 1 + x + x 2 + I in V. (1+x+I) (1+ x 2 +x) = I (using the fact I is an ideal of Z 2 [x] so (x+1) I = I and (1+x+x 2 )I = I and I + I + I).

(1 + x) (1 + x 2 + x) + I = 1 + x 2 + x + x + x 2 + x 3 + I = 1 + x 3 + I (as 2x = 0 and 2x 2 = 0) = I as 1 + x 3 ∈ I.

Thus V has zero divisors; so V is not a field only a ring as p(x) is a reducible polynomial.

Thus we wish to make a mention that the ideals generated by a single element will be known as principal ideals. Also we expect the reader to be familiar with the notion of minimal ideals, maximal ideals and prime ideals. Consider I = {0, 2, 4, 6, 8, 10} ⊆ Z 12 to be a maximal ideal of Z 12 . Take J = {0, 6} ⊆ Z 12 , J is a minimal ideal of Z 12 . However K = {0, 3, 6, 9} ⊆ Z 12 is also a maximal ideal. T = {0, 4, 8} ⊆ Z 12 is also a minimal ideal of Z 12 . Thus a ring can have many maximal ideals and many minimal ideals.

However we show a ring which has no minimal ideals. Example 1.62: Let Z be the ring of integers. Z has several maximal ideals, pZ is a maximal ideal where p is a prime.

For all primes p we obtain an infinite collection of maximal ideals.

However Z has no minimal ideal but it has infinite number of ideals which are neither maximal nor minimal. For nZ when n is a non prime is neither a maximal nor a minimal ideal.

2Z, 5Z, 3Z, 7Z, 11Z are maximal ideals.

When R is a commutative ring with unit and I a maximal ideal of R; then R / I is a field.

This property is used in the construction of finite fields of desired order.

We consider Z p [x]; p a prime Z p [x], the polynomial ring. I be the ideal generated by an irreducible polynomial p(x); then

If p(x) is of degree n then Z p [x] / I is a field of order n p Z .

Thus this method helps us in generating finite fields which are not prime. Likewise we can create fields or rings of finite order.

Notation:

If p(x) = a 0 + a 1 x + … + a n x n then p(x) has a representation in n + 1 tuples given by (a 0 , a 1 , …, a n ), a i 's are coefficients using which the polynomial ring R[x] is defined and p(x) ∈ R[x]. Now we just recall the definition of a primitive polynomial.

A polynomial p(x) = a 0 + a 1 x + … + a n x n in R[x] is said to be a primitive polynomial (where a 0 , a 1 , …, a n are integers) if the greatest common divisor of a 0 , a 1 , …, a n is 1.

We will use this concept also in the construction of linear codes. Now we proceed onto recall the definition of vector space as we associate or define the algebraic code as a subspace of a vector space. DEFINITION 1.11: Let V be an additive abelian group. F a field. We say V is a vector space over the field F if the following conditions are true.

(1) For every v ∈ V and a ∈ F we have av and va are in V (av = va and conventionally we write as av a is called the scalar and v a vector).

(2) a (v 1 + v 2 ) = av 1 + av 2 .

(3) (a+b) v = av + bv.

(Here 1 represents the unit element of F).

We give examples of vector spaces.

Example 1.64:

P is a vector subspace of V over Q.

W is a vector subspace of V over Q.

Example 1.70:

Now the reader is expected to recall the definition of basis and dimension of a vector space [2,16].

We will be using only finite dimensional vector spaces that too defined over the finite field. Infact we will be mainly using the field Z 2 or n 2 Z of order 2 n and of characteristic two; denoted by GF(2 n ) as most of the messages transmitted are binary, it is sufficient to study over Z 2 or GF(2 n ). Now we just recall the definition of Hamming distance and Hamming weight in vector spaces.

We say for any two vectors v 1 = (x 1 , …, x n ) and v 2 = (y 1 , …,y n ); v 1 and v 2 ∈ V = F × … × F; n-times where F is a field and V is a vector space over F. The Hamming distance between v 1 and v 2 denoted by d (v 1 , v 2 ) = number of places in which v 1 is different from v 2 .

For instance if v 1 = (1 0 0 1 0 0 1) and v 2 = (0 1 1 1 0 0 1) then the Hamming distance between v 1 and v 2 denoted by d (v 1 , v 2 ) = 3.

Now

Hamming weight x of a vector in V is the distance of x from the zero vector. Thus Hamming weight of x is the number of non zero co ordinates in the vector x, thus d(x, 0) = w(x) = number of non zero coordinates in x.

Thus if x = (1 0 1 0 1 0 0 1 1 1) be a vector in V then w(x) = d (x, 0) = 6. Now having defined Hamming weight and Hamming distance we now proceed onto define linear codes and illustrate them with examples in chapter two.

Chapter Two

ALGEBRAIC LINEAR CODES AND THEIR PROPERTIES

In this chapter we recall the definition of algebraic linear codes and discuss the various properties associated with them.

We give examples and define several types of codes. Let x = (x 1 , x 2 , …, x n ) where x i ∈F q , where F q is a finite field. (q, a power of a prime). In x the first k symbols are taken as message symbols and the remaining n -k elements x k+1 , x k+2 , …, x n are check symbols (or control symbols). x = (x 1 , …, x n ) is defined as the code word and it can be denoted by (x 1 , …, x n ) or x 1 x 2 … x n or x 1 , x 2 , …, x n .

We will now roughly indicate how messages go through the system starting from the sender (Information source).

We shall consider senders with finite number of discrete signals (telegraph) in contrast to continuous sources (examples radio).

Further the signals emanating from the source cannot be transmitted directly by the channel. For instance, a binary channel cannot transmit words in the usual latin alphabet. Encoder performs the important work of data reduction and suitably transforms the message into usable form. Thus there is a difference between the source encoding and the channel encoding.

The former reduces the message to its essential parts and the latter adds redundant information to enable detection and correction of possible errors in the transmission.

Also the channel decoding and the source decoding are distinct for they invert the corresponding channel and source encoding besides detecting and correcting error.

The main aim of coding theory is to formulate techniques for transmitting message, free of errors, at a less cost and with a great speed. However in few cases the possibility of repeating messages is acceptable; in some cases repeating messages is impossible; like in case of taking picture of planets or Mars or Moon where there is a steady motion of the unmanned machine. In these cases repetition is impossible and also the cost is very high so high accuracy is expected with minimum or no error. As repeating the message is also time consuming besides being costly. We want to find efficient algebraic methods to improve the realiability of the transmission of messages.

In this chapter we give only simple coding and decoding algorithms which can be easily understood by a beginner.

Binary symmetric channel is an illustration of a model for a transmission channel. Now we will proceed onto define a linear code algebraically. Let x = (x 1 … x n ) be a code word with k message symbols and n-k check symbols or control symbols. We know the message symbols are from F q , to determine the check symbols. We obtain the check symbols from the message symbols in such a way that the code words x satisfy the system of linear equations.

Hx t = (0), where H is the given n -k × n matrix with elements from F q .

The standard form for H is (A, I n-k ) with A an n -k × k matrix and I n-k the n -k × n -k identity matrix.

The set of all n-dimensional vectors x = (x 1 , …, x n ) satisfying Hx t = (0) over F q is called a linear (block) code C over F q of block length n.

The matrix H is called the parity check matrix of the linear (n,k) code C. If q = 2 then we call C a binary code. k/n is called transmission (or information) rate.

Since C under addition is a group we call C as a group code. Also C can be defined as the null space of the matrix H.

We will first illustrate this situation by some examples. Example 2.1: Let q = 2, n = 7 and k = 4 and C be a C(7, 4) code with entries from Z 2 . The message a 1 , a 2 , a 3 , a 4 is encoded as the code word x = a 1 a 2 a 3 a 4 x 5 x 6 x 7 . Here the check symbols are x 5 x 6 x 7 , such that for the given parity check matrix H = 0 0 1 0 1 1 1 Suppose we consider the (4, 2) code using another parity check matrix.

= {0 0 0 0, 1 0 1 1, 0 1 0 1, 1 1 1 0}.

We see both the codes are different though they have the same set of message symbols.

We now recall how the repetition code is constructed and the parity check matrix associated with it. If each code word of a code consists of only one message symbol x 1 ∈ Z 2 and n-1 check symbols a 2 = a 3 = … = a n are all equal to x 1 (x 1 is repeated n-1 times). Thus we obtain a binary (n, 1) code with paritycheck matrix;

There are only two code words in this code namely (0 0 … 0) and (1 1 … 1).

This code is used when it impossible and impracticable or too costly to send original message more than once, like transmission of information from space crafts or satellites where it is impossible to use ARQ protocols owing to time limitations. Moving space crafts which takes photos of heavenly bodies is an example where this code can be used.

. The two code words are 1 1 1 1 1 and 0 0 0 0 0. Now we proceed onto describe the parity-check code.

Parity check code is a (n, n-1) code where we have n-1 message symbols and one check symbol. The parity check matrix is H = (1 1 … 1).

Each code word has only one check symbol and H has only even number of ones.

These codes are used in banking where the last digit of the account number, usually is a control digit. is code associated with the parity check matrix H. Now we will proceed onto describe the canonical generator matrix of a linear (n, k) code. Suppose H = (A, I n-k ) is the parity check matrix associated with the (n, k) code then the generator matrix G = (I k -A t ) is such that GH T = (0).

Further every code word x = (x 1 , …, x n ) = (a 1 , …, a k ) G.

We will now describe this situation by some examples.

be a parity check matrix of a C(7, 4) code.

The generator matrix G associated with this (7, 4) code with the parity check matrix H is given by G =

. Now using the message symbols from 4 2 Z we get the following code words generated by G.

be parity check matrix associated with a C = C(7, 3) code.

The associated generator matrix G = 1 0 0 1 0 1 0

Now we generate the code, C = {0 0 0 0 0 0 0, 1 0 0 1 0 1 0, 0 1 0 0 1 1 1, 0 0 1 1 1 1 0, 1 0 1 0 1 0 0, 0 1 1 1 0 0 1, 1 1 0 1 1 0 1, 1 1 1 0 0 1 1} is the code generated by G.

Consider GH T = 1 0 0 1 0 1 0

Having seen the generator matrix and parity check matrix of a code we now proceed onto analyse the nature of the generator matrix.

A generator matrix G for a linear code C is a k × n matrix for which the rows are a basis of C. Now a natural question would be what is the purpose of the parity check matrix H.

We see the parity check matrix serves as the fastest means to detect errors. So error detection is done by the parity check matrix. Suppose y is the received code word then find S(y) = Hy T , S (y) is defined as the syndrome. If S(y) = (0) we say no error and accept y as the correct received word.

If S(y) ≠ (0) we declare error has occurred. Thus the parity check matrix helps in detecting the error in the received word. So error detection is not a very difficult task as far as coding is concerned. However it is pertinent to mention that when S(y) = 0, y is a code word, it need not be the transmitted code word. In certain cases when the error pattern e is identical to a non zero code word, y is the sum of two code words which is a code word so Hy T = (0). These errors are not detectable. We accept them as a correct transmitted message. Thus we have 2 k -1 non zero code words which can lead to undetectable errors, so we have 2 k -1 undetectable error patterns. Now the real problem lies in correcting the error.

We will just describe the coset leader method which is used to correct errors. Once the error is detected, we know every code C is a subspace of the vector space n q F where n q F is defined over F q .

The factor space n q F / C consists of all cosets a + C = {a + x | x ∈ C} for any a ∈ n q F .

Clearly each coset contains q k vectors as C has 2 k elements in it. Since a coset is either disjoint or identical we get a partition on n q F so n q F = C ∪ (a 1 + C) ∪ … ∪ (a t + C) for t = q n-k -1.

If a vector y is received then y must be an element of one of these cosets say a i + C. If the code word x 1 has been transmitted then the error vector e = y -x 1 ∈ a 1 + C -x 1 = a 1 + C. Thus we quote the decoding rule [16].

If a vector y is received then the possible error vectors e are the vectors in the coset containing y. The most likely error is the vector with minimum weight in the coset of y. Thus y is decoded as = ye . The vector of minimum weight in a coset is called the coset leader. If there are several coset leaders arbitrarily choose any one of them.

Let a (1) , a (2) , …, a (t) be the coset leaders. We have the following table.

x (1)

x } code words in C. a (1)

x } other cosets

x } other cosets coset leaders

If a vector y is received then we have to find y in the table.

Let y = a (i) + x, then the decoder decides that the error e is the coset leader a (i) . Thus y is decoded as the code word x = ye = x (i) . The code word x occurs as the first element in the column of y. The coset of y can be found by evaluating the so called syndrome.

We will illustrate this situation by an example.

Thus error e = 1 0 0 0 and y is decoded as x = y -e = 0 1 1 1 and the corresponding message is 0 1. Now we will proceed onto define cyclic codes.

We say a code word v in C (C a k dimensional subspace of

We generate cyclic codes using polynomial called the generator polynomial of a cyclic code.

If g = g 0 + g 1 x + … + g m x m is a generator polynomial then g / x n -1 and deg g = m < n.

Let C be a linear (n, k) code with k = n-m defined by the generator matrix;

Then C is cyclic. The rows of G are linearly independent and rank G = k, the dimension of C. If x n -1 = g 1 … g t is a complete factorization of x n -1 into irreducible polynomials over F q then the cyclic codes (g i ) generated by polynomials g i are called maximal cyclic codes.

A maximal cyclic code is a maximal ideal in q n F [x]

If g is the polynomial that generates the cyclic code C then h = x n -1 / g is defined as the check polynomial of C.

Thus if h = Σ h i x i , h k ≠ 0 then the parity check matrix associated with the cyclic code C is given by

We will illustrate this situation by an example.

Example 2.9:

Let C = C (7, 4) be a code of length 7 with 4 message symbols and q = 2.

Suppose g(x) = x 3 + x + 1 be the generator polynomial of the cyclic code C. The check polynomial of the cyclic code C is h = x 7 -1 / g = x 4 + x 2 + x + 1.

Now we can generate the cyclic code using G. aG = x where a is the message from 4 2 Z and x the resulting code word of C. We have referred and information are from [1,16]. Now we proceed onto just recall the definition of rank distance codes and give some of the properties related with them.

Error detection, error correction for these linear block codes can be found in [1,6,16,18]. However the erasure techniques for these codes are very meagre hence we just describe the erasure techniques in these codes.

When the code symbols are from the Galois field GF(2 n ) of an arbitrary dimension the function of the modulator is to match the encoder output to the signals of the transmission channel.

The modulator accepts the binary encoded symbols and produces wave forms or signals appropriate to the physical transmission medium. At the receiving end of the communication link, the demodulator operates on the signals received from a separate transmission symbol interval or a set of elements in {0, 1}. The demodulator is designed to make a definite decision for each received symbol 0 or 1.

The definition of a channel includes the modulator, the demodulator and all intervening transmission equipment and media. Most of them are discrete memoryless channel. The assumption is made in that the output symbol at any instant of time depends statistically only on the input symbol at that time.

The coding system is described by the following figure. ↓ ↓ ↓ ↓ ↓ ↓ This simple model [20] is known as the binary symmetric channel and is described in the following figure.

Figure

In this model the modulator input x has value 0 or 1 and the demodulator output y has value 0 or 1. When 0 is transmitted and 1 is received the error probability is p. When 0 is transmitted and 0 is received the probability is 1 -p. Similarly when 1 is transmitted and 0 is received the probability is p and when 1 is transmitted and 1 is received the probability is 1 -p. This model can be described simply as a binary-input and binary-output model.

Sender encoder modulator channel demodulator decoder receiver corrected message

Binary symmetric channel

When erasure occurs [20] has studied the binary symmetric erasure channel. This channel model is depicted in the following figure which includes a symmetric transmission from either input symbol to an output symbol labeled '?' to denote ambiguity. Now when an input symbol is sent we have the three possibilities.

The correct output is received.

An erroneous output is received.

The demodulator is unable to decide, the result is a blank space, that is ambiguous.

Binary symmetric erasure channel

Here when the received signal is very weak the demodulator does not give an output. That is the output corresponding to that particular input is erased and the blank space is left out. Here we assume when 0 is transmitted and the demodulator does not give an output and the probability of that is q when 0 is transmitted and 0 is received the probability is 1 -p -q. Similarly when 1 is transmitted and the demodulator does not give a output the probability is q. When 1 is transmitted and the modulator does not give an output the probability is p. When 1 is transmitted and 1 is received the probability is 1 -p -q.

The outputs that are erased by the demodulator are called erasures or blank spaces [6][7][8]. Thus when erasures are present in the received code word those coordinates received in the code word would be blank spaces.

The study of properties of erasures out weighs the study of properties of errors in a code as we are sure of the number of errors that has occurred by counting the number of blank spaces (erasures) and we are also aware of their locations as they are blank during the transmission process.

But if are to study only errors we may not completely be certain of the number of errors occurred during the transmission, for instance when a message is sent and the received message is also a code word different from the sent message, we may not be able to determine it as error but in case of erasures it may be blank.

Another advantage of erasure techniques over the study of error is that even a lay man can guess that the received message is an erroneous one. Also we can say whether the original message is retrievable or not. The study of erasures in case of Hamming metric has been widely studied by and [6][7][8].

We would be defining the new notion of "blanks" which are not erasures. These 'blanks' will be known as "special blanks" and we will not be using the notion of erasure decoding we use only the error decoding technique. We will use this "special blank" notion in the last chapter of this book where we will be using them in concatenation of linear coding with Hamming metric defined on it. Now refer Gabidulin for the notion of rank distance codes. DEFINITION 2.1: Let X n be a n-dimensional vector space over the field GF(2 N ). Let u 1 , u 2 , …, u n be a fixed basis for X n over GF (2 N ). Then any element x ∈ X n can be represented as a ntuple (x 1

GF (2 N ) is a vector space of dimension N over GF (2). Let v 1 , v 2 , …, v N be a fixed basis for GF(2 N ) over GF (2). Then any element x i ∈ GF (2 N

where the i th column represents the i th coordinate x i of x over GF (2).

The rank of a vector x ∈ X n over GF (2) is defined as the rank of the matrix M(x) over GF (2). Let r(x) denote the rank of the vector x ∈ X n over GF (2). By the properties of the rank of a matrix the mapping x → r(x) defines a norm on X n ; called the rank norm.

Let X n be a vector space of dimension n over GF(2 n ) equipped with the rank norm. Clearly the rank norm induces a metric defined as the rank metric (rank distance) on X n and is denoted by d R . For x, y ∈ X n , the rank distance between x and y is d R (x, y) = r (x-y). A vector space X n over GF (2 n ) such that n ≤ N equipped with the rank metric d R is defined as a rank distance space. So if X n is a rank distance space, a linear (n, k) rank distance code is a linear subspace of dimension k in the rank distance space X n and is denoted by C.

A generator matrix G of C is a k × n matrix with entries from GF(2 N ) whose rows form a basis for C.

Then a (n -k) × n matrix H with entries from GF(2 N ) such that GH T = (0) is called the parity check matrix of C where (0) denotes a k × n -k zero matrix.

Suppose C is a (n, k) rank distance code with generator matrix G and parity check matrix H then C is the row space of G or the null space of H. We have minimum distance of C defined as d = min {r(x -y) : x, y ∈ C; x ≠ y}. C is a kdimensional subspace of the rank distance space X n , if x, y ∈ C then x -y ∈ C.

Hence d the minimum distance, d = min {r(x) | x ∈ C; x ≠ 0}. The notion of maximum rank and the erasure techniques would be studied in the following chapters.

ERASURE DECODING OF MAXIMUM RANK DISTANCE CODES

This chapter has three sections. Section one is introductory in nature. In section two we describe the class of MRD codes as given by E.M. Gabidulin [9]. In section three we discuss the systematic guessing process or filling up of the blank spaces in case of erasures for MRD codes [17,29,32].

Introduction

Algebraic coding theory is required in communication systems to combat the errors that occur during transmission. In many communication systems, it is often convenient to represent the set of signals to be transmitted as a higher dimensional Galois field. There are many reasons to do so. One is that it makes it possible to visualize the signals by means of vectors, which in turn has the advantage of recognizing the relationship among various types of signals that is to be considered. Secondly, the length of the message will be very much reduced resulting an increase in the rate of transmission.

Here the set of basic signals will be represented by a prime Galois field GF(p) and all the possible linear combinations of the basic signals will be represented by a higher dimensional Galois field, GF(p n ).

When the code symbols are from a higher dimensional Galois field the function of the modulator is to match the encoder output to the transmission channel. A definition of a channel generally includes the modulator, the demodulator and all the intervening transmission equipment and media. In this model in certain situations, for example when the received signal is very weak the demodulator does not give an output. That is, the output corresponding to that particular input is erased and a black space of left out.

The outputs that are erased by the demodulator are called erasures or blank spaces. Hence the events in which the demodulator does not give a output when the evidence does not clearly indicate one signal as the most probable are called erasures. Hence when erasures are present in the received vector those coordinates in the received vector will be blank spaces. Erasure decoding in case of Hamming metric has been widely studied by W.W. Peterson , David Forney [6][7][8].

Here we obtain a method of erasure decoding for the class of MRD codes when the minimum distance is same as the length of the code. The error correcting capability of the MRD code depends on the minimum distance and greater the minimum distance greater the error correcting capability. In this chapter the minimum distance of the MRD code is equal to its length.

By making use of this systematic guessing process an erasure or blank space can be regarded as an error which can either be detected or corrected by making use of the decoding algorithm for MRD codes. We have proved that a MRD code of length n, dimension 1 and minimum distance n = 2t + 1 can correct atmost t erasures and detect more than t erasures. We have obtained the number of ways in which a particular erasure can be chosen during the guessing process and we have established that the result is unaffected by various choices for the erasures available during the guessing process at each stage.

Also the method of erasure decoding is illustrated through an example.

Minimum distance is a one of the chief parameters which determines the error-correcting capability of a code. In fact, the maximum number of errors corrected by a code is proportional to its minimum distance. For a linear code of length n, dimension k and minimum distance d, the upper bound for the minimum distance is n -k + 1. A code which has the minimum distance d = n -k + 1 is defined as the Maximum Distance Separable codes. The Reed-Solomon codes are important Maximum Distance Separable codes. Analogues to Maximum Distance Separable codes, Gabidulin in [9] defines the class of Maximum Rank Distance (MRD) codes. An Distance code whose minimum distance d is equal to n -k + 1 is called an MRD code, n ≤ N. As the error-correcting capability of a code is proportional to its minimum distance, codes with larger minimum distance is preferred for error correction. It makes it justifiable to study the characteristics or properties enjoyed by such class of codes so as to enunciate their uses in the communication channels. This chapter has four sections. Section one is introductory in nature. Section 2 introduces for the first time, a combined error-erasure decoding technique to the class of presented [25]. A coding problem for the noisy 2-user F-Adder Channel is explained.

2 Maximum Rank Distance Codes

Maximum Rank Distance (MRD) codes are a class of codes which are analogs of generalized Reed-Solomon codes [26]. MRD codes are codes of length n < N defined over GF(2 N ) equipped with the rank metric.

Suppose X n is a n-dimensional vector space over the field GF(2 N ). Let u 1 , u 2 , …, u n be a fixed basis for X n over GF(2 N ). Then any element x ∈ X n can be represented as an n-tuple (x 1 ,

GF(2 N ) is a vector space of dimension N over GF (2). Let v 1 , v 2 , …, v N be a fixed basis for GF(2 N ) over GF (2). Then any element x i ∈ GF(2 N ) can be uniquely represented in the form of a N-tuple (a 1i , a 2i , …, a Ni ). Let n N A denote the ensemble of all (N × n) matrices with elements from GF(2).

Consider the bijection A : X n → n N A defined by the following rule: For any vector x = (x 1 , x 2 , …, x n ) ∈ X n the associated matrix A(x) = 11 12 1n

where the i th column represents the i th coordinate 'x i ' of 'x' over GF (2). We recall some of the basic definition from [9,29,30,32].

DEFINITION 3.2.1:

The rank of a vector x ∈ X n over GF (2) is defined as the rank of the matrix A(x) over GF (2). In other words the rank of a vector x ∈ X n is the maximum number of columns that are linearly independent over GF (2) in the associated matrix A(x) of the vector x. Let r(x) denote the rank of the vector x ∈ X n over GF (2). By the properties of the rank of a matrix the mapping x r (x) specifies a norm on X n and is called the rank norm. DEFINITION 3.2.2: Let X n be a vector space of dimension n over GF(2 N ) equipped with rank norm. The rank norm induces a metric defined as the rank metric (rank distance) on X n and is denoted by d R . For x, y ∈ X n the rank distance between x and y is d R (x, y) = r (x-y).

DEFINITION 3.2.3:

A vector space X n over GF (2 N ) such that n < N equipped with the rank metric d R is defined as a rank distance space.

DEFINITION 3.2.4: Let X n be the rank distance space. A linear (n, k) rank distance code is a linear subspace of dimension k in the rank distance space X n and is denoted by C.

DEFINITION 3.2.5: Let C be a linear (n, k) rank distance code.

A generator matrix G of C is a k × n matrix with entries from GF(2 N ) whose rows form a basis for C. Suppose C is a linear (n, k) rank distance code with generator matrix G and parity check matrix H, then C can be thought of as :

1. the row space of G or 2. the null space of H.

DEFINITION 3.2.7: Let C be a linear (n, k) rank distance code. The minimum distance of C is defined as d = min {r (x -y) : x, y

A linear (n, k) rank distance code C with minimum distance d satisfies the following bound.

Singleton-style bound [12,16]: A linear (n, k) rank distance code C with minimum distance d satisfies the inequality d ≤ n-k+1. MRD codes are analogs of generalized Reed-Solomon codes and can be defined through generator and parity check matrices. A MRD code with length n = N can be defined as follows:

Let h i ∈ GF(2 N ), i = 1, 2, …, n be linearly independent over GF (2).

For a given design distance d < n let us generate the matrix

The linear (n, k) rank distance code with parity check matrix H given in equation (3.2.2) is an MRD code of length n and minimum distance d. We denote a (n, k, d) MRD code as C[n, k].

The encoding and decoding algorithm for MRD codes are given by Gabidulin [9].

Erasure Decoding of MRD codes

It has long been recognized that there are advantages in allowing the demodulator not to guess at all on certain transmission (for example when the received signal is very weak) when the evidence does not clearly indicate one signal as the most probable: such events are called erasures. In the event of an erasure or blank space it is convenient to passes on the side information to the decoder that this guess is not completely reliable. By the guessing process or filling up of the blank space an erasure or blank space can be regarded as an error which can be either detected or corrected by making use of the decoding algorithm for MRD codes.

The guessing process or filling up of the blank spaces can be done systematically by making use of the decoding properties of the MRD codes and this procedure is described below.

The C[n, 1] be a (n, 1, n) MRD code defined over GF(2 n ), where n = 2t + 1. Since the minimum distance of this code is n the associated matrix of every code word in this code has n columns to be linearly independent over GF (2). Suppose x = (x 1 , x 2 , …, x n ) is the codeword that is transmitted. Let y = (y 1 , y 2 , …, y n ) be the received vector where t coordinates are erasures. Let * 1 , * 2 , …* t denote the t erasures. The t erasures can occur either in an array or can occur intermittently with the y i 's or it can be randomly placed in between the y i 's. Still the method adopted by us will not affect the result. Without loss of generality we can assume that * 1 , * 2 , …, * t be the first t coordinates of y. Let y t+1 , y t+2 , …y n be the rest of the n -t coordinates. The choosing of each of the * j 's for j = 1, 2, …, t is detailed below. Now choose * 1 (* 1 ≠ 0) such that the set {* 1 , y t+1 , y t+2 , …, y n } is a linearly independent set over GF (2). Having chosen * 1 , now choose * 2 (* 2 ≠ 0) such that the set (* 2 , * 1 , y t+1 , y t+2 , …, y n ) is a linearly independent set over GF (2). Having chosen * 1 , * 2 , …, * s , s < t, * s+1 is chosen such that * s+1 ≠ 0 and the set {* s+1 , * 1 , * 2 ,… , *s, y t+1 , y t+2 , …, y n } is linearly independent over GF(2).

By the above guessing process or filling up of the blank spaces the t erasures * 1 , * 2 , …, * t in the received vector y are filled by the t probable errors. Let the vector y′ = ( 1 2 n y , y ,..., y ′ ′ ′ ) be the vector obtained from y after converting the t erasures or t blank spaces into t errors by using the guessing process. Now we apply the decoding algorithm of the MRD codes for decoding y′ and obtain the correct message transmitted.

The following theorem gives the number of ways in which the erasures or blank spaces can be chosen by using the guessing process or filling up of the blank spaces. Proof: Let C[n, 1] be a MRD (n, 1, n) code defined over GF(2 n ) where n = 2t + 1. Suppose x = (x 1 , x 2 , …, x n ) is the codeword that is transmitted. Let y = (y 1 , y 2 , …, y n ) be the received vector where t coordinates are erasures or blank spaces.

Let * 1 , * 2 , …, * t denote the t erasures or blank spaces. Without loss of generality let * 1 , * 2 , …, * t be the first coordinates of the vector y. Then when applying the guessing process * 1 is chosen such that * 1 ≠ 0 and the set {* 1 , y t+1 , y t+2 , …, y n } is a linearly independent set over GF (2). That is, * 1 is chosen from the set B 1 = GF(2 n ) \ {0, y t+1 , …, y n , y t+1 + y t+2 , …, y n-1 + y n , y t+1 + y t+2 + y t+3 , …, y n-2 + y n-1 + y n , …, y t+1 + y t+2 + … + y n-1 + y n }.

Hence * 1 can be chosen in |B 1 | ways, where |B 1 | denotes the number of elements in the set B 1 . Clearly |B 1 | = 2 n -(1 + nt C 1 + nt C 2 + nt C 3 + … + nt C n-t-1 + nt C n-1 ) = 2 n -(1+1) n-1 (by Binomial theorem) = 2 n -2 n-t = 2 n-t [2 t -1].

Having chosen * 1 , * 2 can be chosen such that * 2 ≠ 0 and the set {* 2 , * 1 , y t+1 , y t+2 , …, y n } is linearly independent over GF (2). That is, * 2 is chosen from the set B 2 = GF(2 n ) \ {0,* 1 , y t+1 , …, y n , * 1 + y t+1 , y t+1 + y t+2 , …, y n-1 + y n , * 1 + y t+1 + y t+2 , y t+1 + y t+2 + y t+3 , …, y n-2 + y n-1 + y n , …, * 1 + y t+1 + y t+2 + … + y n-1 + y n }. Hence * 2 can be chosen in |B 2 | ways. Clearly |B 2 | is given by;

= 2 n -(1+1) n-t+1 (By binomial theorem) = 2 n -2 n-t+1 = 2 n-t+1 [2 t-1 -1].

Having chosen * 1 , * 2 ,..., * s , s < t, *s+1 is chosen such that * s+1 ≠ 0 and {* s+1 , * 1 , * s , …, * s , y t+1 , y t+2 , …, y n } is linearly independent set over GF (2). Hence * s+1 can be chosen in |B s+1 | ways. Clearly |B s+1 | is |B s+1 | = 2 n -(1 + n -(t+s) C 1 + n -(t+s) C 2 + n -(t+s) C 3 + … + n -(t+s) C n-t+s-1 + n -(t+s) C n-t+s ) = 2 n -(1+1) n-t+s = 2 n -2 n-t+s = 2 n-t+s [2 t-s -1].

Hence the theorem.

THEOREM 3.3.2: Let C[n, 1] be a (n, 1, n) MRD code with minimum distance n = 2t + 1. Then C[n, 1] corrects atmost t ensures and detects more than t erasures.

Proof: Let C [n, 1] be a (n, 1, n) MRD code with minimum distance n = 2t + 1. Suppose x = (x 1 , x 2 , …, x n ) is the codeword that is transmitted. Let y = (y 1 , y 2 , …, y n ) be the received vector where t coordinates are erasures or blank spaces. Let y′ = ( 1 2 n y , y ,..., y ′ ′ ′ ) be the vector obtained from y after converting the t erasures into t errors by using the guessing process or filling up of the blank spaces. Therefore, d R (x, y′) < t, by [9,29,30] we know that a MRD code with n = 2t + 1 can correct atmost t errors and detect more than t errors. Hence C[n, 1] can correct atmost t erasures and detect more than t erasures. Proof : Let C[n, 1] be a (n, 1, n) MRD code defined over GF(2 n ) where n = 2t + 1. Suppose x = (x 1 , x 2 , …, x n ) be the transmitted codeword. Let y = (y 1 , y 2 , …, y n ) be the received vector where t coordinates are erasures or blank spaces. Let * 1 , * 2 ,…, * t denote the t erasures or t blank spaces. Let y′ = ( 1 2 n y , y ,..., y ′ ′ ′ ) be the vector obtained from y after applying the guessing process or filling up of the blank spaces to obtain from y after applying the guessing process or filling up of the blank spaces to the received vector y. Let y″ = ( 1 2 n y , y ,...., y ′′ ′′ ′′ ) be another vector obtained from y after applying the guessing process or filling up of the blank spaces to the received vector y and be such that y′ ≠ y″, then d R (y′, y″) ≤ t. By the guessing process the t erasures in the received vector y are converted into t errors. Hence d R (x, y′) ≤ t and d R (x, y″) ≤ t. We know MRD code with n = 2t + 1 can correct atmost t errors and detect more than t errors. Since d R (x, y′) ≤ t and d R (x, y″) ≤ t both the vector y″ and y′ are both decoded as the vector x, which is the transmitted message. Hence the theorem.

The guessing process and the above results are illustrated by the following example.

Let m 1 = α 5 be the message. Let x = (α 5 , a 1 , a 2 ). The Hx T = (0) gives a 1 = α 6 and a 2 = α 2 . The codeword corresponding to the message m 1 = α 5 is c = (α 5 , α 6 , α 2 ). Suppose c is the transmitted vector and let y = (α 5 , *, α 2 ) be the received vector with one erasure or one blank space. By applying the guessing process we choose * ≠ 0 and such that the set {*, α 5 , α 2 } is linearly independent over GF (2). Then there are four choices for * namely * = 1, * = α, * = α 4 and * = α 6 . We see that the choice of * does not change the result and we get the corrected message for all the four choices of *.

Choose * = 1. Now the vector y′ obtained after filling up of the blank space in the received vector y is y′ = (α 5 ,1, α 2 ). By applying the decoding algorithm for MRD codes to the vector y′ we have 2. ∆ (z) = α 2 z + z 2 .

The non zero root of

gives Y 11 = 0, Y 12 = 1, Y 13 = 0 and hence the matrix Y = (0 1 0). 6. Error vector e = E 1 Y = (0, α 2 , 0). 7. y′ + e = (α 5 , α 6 , α 2 ) is the required codeword.

Choose * = α. Now the vector y′ obtained after filling up of the blank space in the received vector y is y′ = (α 5 , α, α 2 ). By applying the decoding algorithm for MRD codes to the vector y′ we have 1 Syndrome = (α 6 ,1) = (s 0 , s 1 ).

2. ∆ (z) = α 5 z + z 2 .

3. The non zero root of ∆ (z) is E 1 = α 5 .

Solving s

gives Y 11 = 0, Y 12 = 1, Y 13 = 0 and hence the matrix Y = (0 1 0). 6. Error vector e = E 1 Y = (0, α 5 , 0). 7. y′ + e = (α 5 , α 6 , α 2 ) is the required codeword.

Choose * = α 4 . Now the vector y′ obtained after filling up of the blank space in the received vector y is y′ = (α 5 , α 4 , α 2 ). By applying the decoding algorithm for MRD codes to the vector y′ we have

This indicates that y′ is the correct message.

Let m 2 = α 3 be the message. Let x = (α 3 , a 1 , a 2 ). The Hx T = (0) gives a 1 = α 4 and a 2 = 1 . The codeword corresponding to the message m 1 = α 3 is c = (α 3 , α 4 , 1). Suppose c is the transmitted vector and let y = (α 3 , * 1 , * 2 ) be the received vector with two erasures or blank spaces. By applying the guessing process we choose * 1 ≠ 0 and such that the set {* 1 , α 3 } is linearly independent over GF (2). Since the set {α 6 , α 3 } is linearly independent over GF(2) choose * 1 = α 6 . Again since the set {α 2 , α 6 , α 3 } is a linearly independent set over GF(2) choose * 2 = α 2 . Now the vector y′ obtained after filling up of the blank spaces in the received vector y is y′ = {α 3 , α 6 , α 2 }.

By applying the decoding algorithm for MRD codes to the vector y′ we have 1. Syndrome = (α 4 , α 5 ) = (s 0 , s 1 ).

gives Y 11 = 0, Y 12 = 1, Y 13 = 0 and hence the matrix Y = (0 1 0). 6. Error vector e = E 1 Y = (0, α 3 , 0). 8. y′ + e = (α 5 , α 6 , α 2 ) is the required codeword.

Choose * = α 6 . Now the vector y′ obtained after filling up of the blank space in the received vector y is y′ = (α 5 , α 6 , α 2 ). By applying the decoding algorithm for MRD codes to the vector y′ we have

This indicates that y′ is the correct message.

Let m 2 = α 3 be the message. Let x = (α 3 , a 1 , a 2 ). The Hx T = (0) gives a 1 = α 4 and a 2 = 1 . The codeword corresponding to the message m 1 = α 3 is c = (α 3 , α 4 , 1). Suppose c is the transmitted vector and let y = (α 3 , * 1 , * 2 ) be the received vector with two erasures or two blank space. By applying the guessing process we choose * 1 ≠ 0 and such that the set {* 1 , α 3 } is linearly independent over GF (2). Since the set {α 6 , α 3 } is linearly independent over GF(2) choose * 1 = α 6 . Again since the set {α 2 , α 6 , α 3 } is a linearly independent set over GF(2) choose * 2 = α 2 . Now the vector y′ obtained after filling up of the blank spaces in the received vector y is y′ = {α 3 , α 6 , α 2 }.

By applying the decoding algorithm for MRD codes to the vector y′ we have

The erasure decoding method declares that more than one erasure has been detected.

Hence the (3, 1, 3) MRD code corrects atmost one erasure and detects more than one erasure in the received vector. We also note that the result is independent of the choice of *.

The study of erasure decoding is better than the study of errors. Erasure decoding in case of Hamming codes has been widely studied in literature. In this chapter we have started the study of erasure decoding of the class of MRD codes. We give a guessing process by which the erasures or blank spaces in the received vector can be converted into errors. We have proved that the MRD code of length n, dimension one and minimum distance n = 2t + 1 can correct atmost t erasures and detect more than t erasures. We have obtained the number of ways in which a particular erasure can be chosen during the guessing process and we have established that the result is unaffected by the various choices of erasures or blank spaces that are available in the guessing process or filling up of the blank spaces at each stage.

It is pertinent to mention that these results are true for any (n, k, d) MRD code defined over GF(2 n ) where d = 2t + 1.

MRD CODES -SOME PROPERTIES AND A DECODING TECHNIQUE

Error-Erasure Decoding Technique to MRD Codes

This section introduces a combined error-erasure decoding technique for the first time to the class of

where h 1 , h 2 , …, h n ∈ GF(q N ) are linearly independent over GF (q).

be the j th row-vector in H (1) .

The resultant matrix H (1) is given by

i h for each i ≠ l 1 .

The (d-2) × (n-1) matrix H (1) now takes the following form

Call the matrix H (1) An important relationship between x (1) and H (1) is proved in the following lemma. Then y = x (1)

i h for each i ≠ l 1 .

One needs to show that

i.e. y j = 0, for each j = 1, 2, …, d-2.

. Hence the lemma.

The above lemma is true for the general case also. That is, if x (m) is the deletion of m coordinates, say Thus the proof of the following lemma follows immediately.

where h i ∈ GF(q N ), i=1, 2, …, N are linearly independent over GF(q). Let x = (x 1 , x 2 , …, x n ) ∈ Γ be a codeword transmitted over a noisy channel. Because of the channel noise, the receiver may not receive the transmitted codeword x. Let y = y + e be the received vector, where e = (e 1 , e 2 , …, e n ) is an error-vector and y denotes the codeword x with erasures; the details of the notations ' ' and ' + ' are given in the next line. Since the erroneously received vector y also has erasures and erasures are nothing but blank spaces, ' ' and ' + ' are so used to represent the received vector in terms of the error-vector and erasurevector.

Assume that the received vector y = (y 1 , y 2 , …, y n ) has m ≤ r rank-errors and t ≤ s erasures such that 2r + s < d, where d is the minimum-rank distance of the N q [n,k,d] MRD code and m is the rank of the error-vector e. Without loss of generality, assume that the received vector y has erasures in the first t coordinates; i.e., y = (* 1 , * 2 , …, * t , x t+1 , …, x n ) with * 1 , * 2 , …, * t representing erasures. One should note that the t coordinates of e that are corresponding to the erasures in the received vector y are zeros; i.e., e 1 , e 2 , …, e t are all zero. Therefore, e = (0, 0,..., 0 t terms , e t+1 , e t+2 , …, e n ). Then the received vector takes the form y (* 1 , * 2 , …, * t , x t+1 , …, x n ) + (0, 0, …, 0, e t+1 , e t+2 , …, e n ).

where the unknowns f 1 , f 2 , …, f t (t ≤ s) are to be determined.

Then y′ = (f 1 , f 2 , …, f t , x t+1 , …, x n ). Having replaced the erasures with the unknown f 1 , f 2 , …, f t , the received vector y is now expressed as y′ + e; i.e., y = y′ + e. The syndrome of y is given by Equating each component in the right-hand side of (4.2), f 1 h 1 + … + f t h t + (x t+1 + e t+1 ) h t+1 + … + (x n + e n ) h n = 0

In the above system θ (d-1) of d-1 equations, one needs to eliminate f 1 , f 2 , …, f t . For each i = 1, 2,…, t, the elimination of f i , results in a system, say θ (d-1-i) , of d-1-i equations, say ( )

Therefore, θ

after the elimination of f 1 , f 2 , …, f t from the system θ (d-1) = ( )

θ is of the following form. 0 s′ = (x t+1 + e t+1 ) t 1 h + ′ + (x t+2 + e t+2 ) t 2 h + ′ + … + (x n + e n ) n h′ 1 s′ = (x t+1 + e t+1 ) [1] t 1 h + ′ + (x t+2 + e t+2 ) [1] t 2 h + ′ + … + (x n + e n ) [

, which is the deletion of the first t columns of H.

If i s′ = 0 for each i, then it is concluded that the received vector y contains no errors. Then solving the system θ (d-1) of d-1 equations, one can determine the values for the unknowns f 1 , f 2 , …, f t . If i s′ ≠ 0 for some i, then the received vector y contains errors. To find the error-vector e = (0, 0, …, 0, e t+1 , e t+2 , …, e n ), one is to continue the following procedure with the known syndrome values i s′ , i = 0, 1, …, d-2-t. Actually, one needs to find the error vector e (t) = (e t+1 , e t+2 , …, e n ).

Since the rank norm of the error-vector e is assumed to be m, e (t) can be written in the following form: If the solution of the system (4.8) has been found, then from (4.7) and (4.4), one can determine the matrix Y and the errorvector e (t) respectively. Note that the above system (4.8) has many solutions for a specified m; for m ≤

all solutions lead to the same vector e (t) . Thus, the decoding problem reduces to finding the solution of the system (4.8).

Let S′(z) = Set F 0 (z) = z [d-1-t] , F 1 (z)=S′(z) and employ Euclid's division algorithm until reaching a remainder polynomial F m+1 (z) such that deg(F m (z)) ≥ q (d-1-t)/2 and deg(F m+1 (z)) < q (d-1-t)/2 . Then it is concluded that the received vector y has m rank-errors; that is, r[e (t) ; q] = m.

[p] p p 0 z = ∆ ∑ , ∆ m = 1 be a polynomial whose roots are all possible linear combinations of E 1 , E 2 , …, E m with coefficients from GF(q).

Using the coefficients of the remainder polynomial F m+1 (z), the coefficients ∆ 0 , ∆ 1 , …, ∆ m of the polynomial ∆(z) can be determined recursively as follows:

Let j be such that i s′ = 0 and j s′ ≠ 0 for i < j.

Then ∆ 0 = f j / j s′ ,

where f j is the coefficient of F m+1 (z) for degree [j] and for j + p ≥ m, set f j+p = 0.

Determine the roots E 1 , E 2 , …, E m of ∆(z) that are linearly independent over GF(q). Methods for determining the roots of ∆(z) are described in [25]. After determining the roots E 1 , E 2 , …, E m of ∆(z), consider the following truncated system;

Solving the system (4.9), one obtains [p ] j x′ and hence the error-vector e (t) . Then, by substituting e (t) in the system θ (d-1) of d -1 equations, one can determine the values for the unknowns f 1 , f 2 , …, f t . Hence x = y -e, which is the actually transmitted codeword.

Summary of the error-erasure decoding technique:

Step 1: Compute the syndrome values ( 0 s′ , …, d 2 t s − − ′ ) for the vector y = (f 1 , f 2 , …, f t , x t+1 , …, x n ) + (0, 0, …, 0, e t+1 , …, e n ) and the corresponding syndrome polynomial

Step 2: Set F 0 (z) = z [d-1-t] , F 1 (z) = S′(z) and employ Euclid's division algorithm until reaching a F m+1 (z) such that deg (F m (z)) > q (d-1-t)/2 and deg (F m+1 (z)) < q (d-

∆ m = 1 be such that its roots are all possible linear combinations of E 1 , E 2 , …, E m over GF(q).

Step 3: Determine the coefficients of ∆(z) as follows:

Let j be such that i s′ = 0 and j s′ ≠ 0 for i < j.

∆ 0 = f j / j s′ ,

where f j is the coefficient of F m+1 (z) for degree [j] and f j+p = 0 for j + p ≥ m.

Step 4: Compute the roots E 1 , E 2 , …, E m of ∆(z) that are linearly independent over GF(q). Then, by substituting E 1 , E 2 , …, E m in system (4.9), one can determine [ p] j x and hence the error-vector e (t) .

Step 5: Substituting e (t) in system θ (d-1) , one can obtain the values for the unknown f 1 , f 2 , …, f t .

Step 6: The transmitted codeword is then obtained as x = y -e.

where α is a root of the primitive polynomial x 8 + x 6 + x 5 + x + 1 over GF (2). Let x = (0, 0, 0, 0, 0, 0, 0) ∈ Γ be the transmitted codeword and y = α 31 , α 147 , 0, 0, * 5 , 0, * 7 ) be the received vector, where '* 5 ' and '* 7 ' represent erasures. Note that the received vector y has two erasures. Equating each component on the right-hand side of (4.10) to 0, α 4 f 5 + α 6 f 7 + 1 = e 1 + αe 2 + α 2 e 3 + α 3 e 4 + α 5 e 6 , α 8 f 5 + α 12 f 7 + α 147 = e 1 + α 2 e 2 + α 4 e 3 + α 6 e 4 + α 10 e 6 , α 16 f 5 + α 24 f 7 + α 108 = e 1 + α 4 e 2 + α 8 e 3 + α 12 e 4 + α 20 e 6 , α 32 f 5 + α 48 f 7 + α 113 = e 1 + α 8 e 2 + α 16 e 3 + α 24 e 4 + α 40 e 6 , α 64 f 5 + α 96 f 7 + α 41 = e 1 + α 16 e 2 + α 32 e 3 + α 48 e 4 + α 80 e 6 , and α 128 f 5 + α 192 f 7 + α 62 = e 1 + α 32 e 2 + α 64 e 3 + α 96 e 4 + α 160 e 6 . α 149 f 7 + α 78 = α 23 e 1 + α 52 e 2 + α 143 e 3 + α 203 e 4 + α 206 e 6 , α 43 f 7 + α 105 = α 46 e 1 + α 104 e 2 + α 31 e 3 + α 151 e 4 + α 157 e 6 , α 86 f 7 + α 104 = α 92 e 1 + α 208 e 2 + α 62 e 3 + α 47 e 4 + α 59 e 6 , α 172 f 7 + α 16 = α 184 e 1 + α 161 e 2 + α 124 e 3 + α 94 e 4 + α 118 e 6 , and α 89 f 7 + α 240 = α 113 e 1 + α 67 e 2 + α 248 e 3 + α 188 e 4 + α 236 e 6 . α 95 = α 197 e 1 + α 71 e 2 + α 131 e 3 + α 196 e 4 + α 10 e 6 , α 68 = α 139 e 1 + α 142 e 2 + α 7 e 3 + α 137 e 4 + α 20 e 6 , α 44 = α 23 e 1 + α 29 e 2 + α 14 e 3 + α 19 e 4 + α 40 e 6 , and α 48 = α 46 e 1 + α 58 e 2 + α 28 e 3 + α 38 e 4 + α 80 e 6 . Here S′(z) = α 95 z [0] + α 68 z [1] + α 44 z [2] + α 48 z [3] .

Let F 0 (z) = z [4] and F 1 (z) = α 95 z + α 68 z 2 + α 44 z 4 + α 48 z 8

Dividing F 0 (z) on the right by F 1 (z).

F 0 (z) = (α 207 z 8 + α 203 z 4 + α 227 z 2 + α 254 z + α 199 ) * F 1 (z) + F 2 (z). where F 2 (z) = α 103 z 4 + α 136 z 2 +α 39 z.

Dividing F 1 (z) on the right by F 2 (z). F 1 (z) = (α 200 z 4 + α 233 z 2 + α 136 z) * F 2 (z) + F 3 (z), where F 3 (z) = α 48 z 2 + α 72 z.

Since deg(F 2 (z)) = 4 ≥ 2 2 and deg (F 3 (z)) = 2 < 2 2 , it follows the received vector has m = 2 rank-errors i.e., r [e (2) ; 2] = 2.

Since e (2) is of rank norm m = 2, e (2) = (E 1 , E 2 ) 11 12 13 14 16

where E 1 and E 2 are linearly independent over GF (2), and Y = [Y ij ] is the 2 × 5 matrix of rank 2 with entries from GF(2).

Here ∆ (z) =∆ 0 Z [0] + ∆ 1 Z [1] + ∆ 2 Z [2] with ∆ 0 = α 232 , ∆ 1 = α 160 and ∆ 2 = α 160 .

The roots of ∆ (z) are α 31 , α 147 , α 149 and 0. Take E 1 = α 31 , and E 2 = α 147 .

Solving the above equation,

Therefore, e = (α 31 , α 147 , 0, 0, 0, 0, 0). By substituting e = (α 31 , α 147 , 0, 0, 0, 0, 0) in the system θ (6) of 6 equations, one obtains f 5 = 0 and f 7 = 0. Hence x = y′ -e = (α 31 , α 147 , 0, 0 , 0, 0, 0) -(α 31 , α 147 , 0, 0, 0, 0, 0) = (0, 0, 0, 0, 0, 0, 0), which is the actually transmitted codeword.

Invertible q-Cyclic RD Codes

There are two categories of techniques for controlling transmission errors in data transmission systems: the Forward-Error Control (FEC) scheme and the Automatic-Repeat -Request (ARQ) scheme. In an FEC system, an error-correcting code is used, when the receiver detects the presence of errors in a received vector, it attempts to determine the error locations and then corrects the errors. If the exact locations of errors are determined, the received vector will be correctly decoded; if the receiver fails to determine the exact locations of errors, the received vector will be decoded incorrectly and erroneous data will be delivered to be destination. In an ARQ system, a code with good error-detecting capability is used. At the receiver, the syndrome of the received vector is computed. If the syndrome is zero, the received vector is assumed to be error-free and is accepted by the receiver. At the same time, the receiver notifies the transmitter, via a return channel, that the transmitted codeword has been successfully received. If the syndrome is not zero, errors are detected in the received vector. Then the transmitter is instructed, through the return channel, to retransmit the same codeword. Retransmission continues until the codeword is successful received.

The throughput efficiency (or throughput) is a measure of performance of an ARQ system. Throughout efficiency is defined as the ratio of the average number of information symbols successfully accepted by the receiver per unit of time to the total number of symbols that could be transmitted per unit of time. The retransmission of an erroneously received vector continues until the received vector is successfully received by the receiver. Though the retransmission requests provide a powerful means of improving reliability performance at the cost of a reduction in throughput, the frequency of retransmission must be reduced to improve the throughout efficiency. Both systems have their own limitations and drawbacks. To improve the throughput efficiency, a hybrid -ARQ scheme which is a combination of both FEC and ARQ, came into existence [25].

There are two types of hybrid -ARQ schemes : type I hybrid -ARQ scheme [25] and type II hybrid -ARQ scheme [25]. This section deals only the type II hybrid-ARQ scheme, the description of it is given in the following.

The type II hybrid -ARQ scheme is devised based on the concept that the parity -check symbols for error correction are sent to the receiver only when they are needed [25]. Two linear codes are used in this type of scheme; one is a high-rate (n, k) code C 0 , which is designed for error detection only, the other is a half-rate invertible (2k, k) code C 1 , which is designed for simultaneous error correction and error detection.

When a message, say u of k information symbols is ready for transmission, it is encoded into a codeword v = (f(u), u) of n symbols based on the error-detecting code C 0 , where f(u) denotes the n-k parity-check symbols. The codeword v = (f(u), u) is then transmitted. At the same time, the transmitter computes the k parity-check symbols, denoted by q(u), based on the message u and the half-rate invertible code C 1 . Clearly the 2k-tuple (q(u), u) is a buffer of the transmitter for later use.

Systematic Encoding of q-Cyclic RD Codes

The generator and parity-check matrices for linear codes greatly simplify encoding at the transmitter and error detection at the receiver. The problem of recovering the message block from a codeword can be greatly simplified through the use of systematic encoding. As in the case of ordinary cyclic codes, systematic encoding for the class of n q [n,k,d] q-Cyclic RD codes can be done either by means of a generator polynomial or by means of a generator matrix in systematic (or standard) form. be such that z [n] -z = H(z) * G(z). If one assumes that g n-1 , g n-2 , …, g n-k are information symbols, then s/he can determine the parity-check symbols g n-k-1 , g n-k-2 , …, g 0 as follows.

Let u(z) = g n-1 z [n-1] + g n-2 z [n-2] + … + g n-k z [n-k] be a message polynomial to be encoded.

Divide u(z) on the right by G(z); u(z) = q(z) * G (z) + f(z), deg (f (z)) < [n-k].

where q(z) is the quotient polynomial and f(z) is the remainder polynomial.

Then the coefficients g n-i for degree g n-i for degree [n-i], i = k+1, k+2, …, n of the remainder polynomial f (z) will be the parity-check symbols. Then g(z) = u(z) -f(z) is the systematically encoded code polynomial corresponding to the message polynomial u(z), where f(z) is called as the paritycheck polynomial.

(b) Systematic encoding through generator matrix

The systematic encoding of the n q [n,k,d] q-cyclic RD code C can also be carried out through generator and parity-check matrices in systematic form. This is accomplished in the following.

The generator matrix and the parity-check matrix corresponding to G(z) and H(z) of C in systematic form can be obtained as follows:

Dividing z [n-k+i] on the right by G(z) for each i = 0, 1, …, k-1, one gets z [n-k+i] = q i (z) * G(Z) + f i (z), where q i (z) is the quotient polynomial and f i (z) = f i0 z [0] + f i1 z [1] + … + f i, n-k-1 z [n-k-1] is the remainder polynomial.

Since G(z) is a right divisor of z [n-k-i] -f i (z), i = 0, 1, …, k-1, they are code polynomials of C.

Arranging these k code polynomials as rows of a k × n matrix, one obtains the matrix say G:

which is the generator matrix of C in systematic form. Recall that any set of k linearly independent vectors can be used as the rows of the generator matrix to form a k-dimensional linear code.

The corresponding parity-check matrix, say H in systematic form is given by H = 00 10 k 1,0 01 11 k 1,1 0,n k 1 1,n k 1 k 1,n k 1

Note that GH T = (0). If u = (g n-k , g n-k+1 , …, g n-1 ) is a message vector, then v = uG = (g 0 , g 1 , …, g n-1 ) is the systematically encoded codeword corresponding to the message vector u and one can note that H T = (0), where g 0 , g 1 , …, g n-k-1 are the corresponding parity-check symbols.

The systematic encoding for the class of n q [n,k,d] q-Cyclic RD codes given above is demonstrated through the following example. Dividing z [2] on the right by G[z], one gets z 4 = α 29 z * G (z) + αz 2 + α 22 z with f 1 (z) = α z 2 + α 22 z.

Dividing z [3] on the right by G[z], one gets z 8 = (α 27 z 2 + z) * G (z) + α 7 z 2 + α 24 z with f 2 (z) = α 7 z 2 + α 24 z.

Dividing z [4] on the right by G[z], one gets Z 16 = (α 23 z 4 + z 2 + α 12 z) * G(z) + α 20 z 2 + α 5 z with f 3 (z) = α 20 z 2 + α 5 z.

Then the generator matrix G and the parity-check matrix H for the

Let u 1 (z) = α 5 z [4] + z [3] + α 23 z [2] be the message polynomial to be encoded. Dividing u 1 (z) on the right by G(z), one gets. u 1 (z) = (α 28 z 4 + α 12 z 2 + α 6 z) * G(z) + α 17 z 2 + α 30 z.

Then g 1 (z) = α 30 z + α 17 z [1] + α 23 z [2] + z [3] + α 5 z [4] is the systematically encoded code polynomial corresponding to the message polynomial u 1 (z). Note also that (α 30 , α 17 , α 23 , 1, α 5 ) H T = (0).

Similarly, g 2 (z) = α 13 z + α 11 z [1] + α 9 z [2] + 0z [4] is the code polynomial corresponding to the message polynomial u 2 (z) = 0z [4] + α 21 z [3] + α 9 z [2] and that (α 13 , α 11 , α 9 , α 21 , 0) H T = (0). The next subsection gives the shortening technique to the class of n q [n,k,d] q-Cyclic RD codes. In shortening of an n q [n,k,d] q-Cyclic RD code, each codeword is shortened (in length) by t information symbols, resulting in a linear code of length n -t, dimension k -t with the same error-correcting capability as the original code, t < k.

Shortened q-Cyclic RD codes

In many applications, there are external constraints such as puncturing, extending, shortening, lengthening, expurgating, or augmenting [25], which are unrelated to error-control but determine the allowed length of the error-control code. In system design, if a code of suitable length or suitable number of information symbols can not be found, it may be possible to shorten a code to meet the requirements. In extending, a code is extended by adding an additional redundant coordinate. Thus an (n, k) code becomes an (n + 1, k) code. In shortening, a code is shortened by deleting a message coordinate from the encoding process. Thus an (n, k) code becomes an (n -1, k -1) code. This section gives shortening technique to the class of Consider the set of codewords of C for which the t < k leading higher-order information symbols are identical to zero. There are q n(k-t) such codewords in C and these q n(k-t) codewords in fact form a linear subcode of C. If the t zero information symbols are deleted from each of these codewords, one obtains a set of q n(k-t) vectors of length n-t. These set of q n(k-t) shortened vectors forms an can be accomplished by the generator polynomial G(z) and the parity-check polynomial H(z) in the same way as C. This is so because the deleted t zero information symbols do not affect the parity-check and syndrome computations.

The following example shortens the

Shortening the code C by t = 1 leading zero information symbol, one obtains the shortened 5 2 [4,2] 2-Cyclic RD code C (1) . Take (α 24 , α 3 , α 2 , 0, 0) ∈ C. Then the shortened codeword (α 24 , α 3 , α 2 , 0) (by one information symbol) is in C (1) .

Similarly shortening the code C by t = 2 leading zero information symbols, one obtains the shortened 5 2 [3,1] 2-Cyclic RD code C (2) and the shortened codeword (α 24 , α 3 , α 2 ), shortened by two zero information symbols from (α 24 , α 3 , α 2 , 0, 0), is in C (2) .

Having given the shortening technique to the class on n q [n,k,d] q-Cyclic RD codes, the next subsection studies the invertible property enjoyed by the class of n q [n,k,d] q-Cyclic MRD codes, for the cases: n -k ≥ k and n -k < k.

Invertible Property of q-Cyclic MRD Codes

If one is able to find the k message symbols in a codeword of an (n, k) F-ary linear code only with the knowledge of n -k parity-check symbols through an inversion process, the code is said to be invertible. This section explores the invertible property for the class of ∑ be a systematically encoded code polynomial. Then as described in subsection 4.3.1, in systematic encoding, the k leading high-order coefficients g n-k , g n-(k-1) , …, g n-1 are identical to the information symbols, the n -k low-order coefficients g 0 , g 1 , …, g n-k-1 are the corresponding parity-check symbols.

Let u(z) = u n-1 z [n-1] + u n-2 z [n-2] + … + u n-k z [n-k] be a message polynomial to be encoded. Divide u(z) on the right by G(z). u(z) = q(z) * G(z) + f(z), deg (f(z)) < [n -k] (4.14)

where q(z) and f(z) are respectively the quotient and the remainder polynomials.

Then g(z) = u(z) -f(z) is the code polynomial corresponding to the message polynomial u(z). Dividing u (1) (z) and u (2) (z) on the right by G(z). u (1) (z) = q 1 (z) * G(z) + f 1 (z), deg (f 1 (z)) < [n-k] (4.15) and u (2) (z) = q 2 (z) * G(z) + f 2 (z), deg (f 2 (z)) < [n-k]. (4.16) The code polynomials corresponding to u (1) (z) and u (2) (z) respectively are, g 1 (z) = u (1) (z) -f 1 (z) and g 2 (z) = u (2) (z) -f 2 (z).

Suppose that f 1 (z) = f 2 (z).

Subtracting (4.16) from (4.15),

i.e., z [n-k] * (u′ (1)

where u (i) (z) = z [n-k] * u′ (i) (z) for each i = 1, 2.

The above equation shows that G(z) is a right divisor of z [n-k] * (u′ (1) (z) -u′ (2) (z)). Since z [n-k] is relatively prime to G(z), G(z) must be a right divisor of u′ (1) (z) -u′ (2) (z). However this is impossible, because u′ (1) (z) ≠ u′ (2) (z) and degree of u′ (1) (z) -u′ (2) (z) is less than or equal to [k -1] but the degree of G(z) is [n-k] which is strictly greater than [k-1], since n -k ≥ k.

Thus f 1 (z) ≠ f 2 (z). Hence the theorem.

Since the remainder f(z) resulting from dividing u(z) by G(z) is unique, the Theorem 4.3.3.1 implies that there exists an one-to-one correspondence between a message polynomial u(z) and its parity-check polynomial f(z). Therefore knowing only the parity-check polynomial f(z), the message polynomial u(z) can be determined uniquely.

In what follows, it is shown how to recover the message polynomial u(z) from its parity-check polynomial f(z). Now one has the equation (4.14):

Consider z [k] * f(z) :

Let u 1 (z) = z 16 + αz 8 be the message polynomial to be encoded.

Dividing u 1 (z) on the right by G(z), one obtains z 16 + αz 8 = (z 2 + α 12 z) * G(z) + f 1 (z), where f 1 (z) = α 14 z 4 + α 24 z 2 + α 25 z.

Dividing z [2] * f 1 (z) on the right by G(z), one obtains α 25 z 16 + α 3 z 8 + α 7 z 4 = (α 25 z 2 + α 22 z) + G(z)

where 1 f (z) ′ = z 2 + α 4 z. Then the message polynomial u 1 (z) is z [3] * (z 2 + α 4 z) = z 16 + αz 8 .

Thus the message polynomial u 1 (z) = z 16 + αz 8 is obtained only with the knowledge of the parity-check polynomial f 1 (z) = α 14 z 4 + α 24 z 2 + α 25 z.

Similarly, the message polynomial u 2 (z) = z 8 can be obtained from the parity-check polynomial f 2 (z) = α 10 z 4 + α 17 z 2 + α 13 z, as the remainder obtained by dividing z [2] * f 2 (z) on the right by G(z) is 2 f (z) ′ = z and thus u 2 (z) = z [3]

The case when n-k < k, the q-Cyclic MRD codes are not invertible, but the class of shortened

MRD codes, 2k-n ≤ t 0 < k has the invertible property which is proved in what follows.

Case (ii) n -k < k

The case when n -k < k, the class of

Let u(z) = α 22 z 9 + α 7 z 3 be a message polynomial.

Dividing u(z) on the right by G(z), one obtains

where f(z) ≡ 0, the zero polynomial.

Then dividing z [2] * f (z) on the right by G(z), one obtains the remainder polynomial u′(z) ≡ 0 so that z [1] * u′(z) ≡ 0; but u(z) = α 22 z 9 + α 7 z 3 , which is not the zero polynomial.

Thus from the parity-check polynomial f(z), the message polynomial u(z) is not retrieved. This is because the parity block is same for the codewords (0, 0, 0) and (0, α 7 , α 22 ). Dividing u (1) (z) and u (2) (z) on the right by G(z),

and u (2)

The code polynomials corresponding to u (1) (z) and u (2) (z) respectively are, g 1 (z) = u (1) (z) -f 1 (z) and g 2 (z) = u (2) (z) -f 2 (z).

Suppose that f 1 (z) = f 2 (z).

Subtracting (4.20) from (4.19),

i.e., z [n-k] * (u′ (1) (z) -u′ (2) (z)) = (q 1 (z) -q 2 (z)) * G(z),

where u′ (1) , u′ (2) are such u (1) (z) = z [n-k] * u′ (1) (z) and u (2) (z) = z [n-k] * u′ (2) (z).

This shows that G(z) is a right divisor of (since G(z) is a right divisor of z [n] -z).

= (z [k] * (-q(z)) + u′(z) * H(z)) * G(z) + u′(z), (4.21) where u′(z) = Having carried out a comprehensive study on a characteristic of RD codes, namely the invertible property of the class of RD codes, the next section deals yet another characteristic enjoyed by the class of RD codes: Rank Distance codes having complementary duals.

Rank Distance Codes With Complementary Duals

It is known that an (n, k) F-ary linear code is just a kdimensional subspace of the n-dimensional vector space F n of ntuples with coordinates in the finite field F. Recall that the vectors u and v in F n are said to be orthogonal if 〈u, v〉 = 0 and that, if Γ is an (n, k) F-ary linear code, the dual code Γ ⊥ is the (n, n-k) F-ary linear code consisting of all vectors v ∈ F n that are orthogonal to every vector u in Γ. The class of Linear codes with Complementary Duals (LCD codes) is defined by J.L. Massey [19] in 1992. A F-ary linear code Γ is called an LCD code if Γ ∩ Γ ⊥ = {0}. It is immediate that Γ is an LCD code just when the following occurs F n = Γ ⊕ Γ ⊥ ; that is, when F n is the direct sum of Γ and Γ ⊥ .

The following theorem due to J.L. Massey [19] gives an algebraic characterization to the class of LCD codes.

THEOREM 4.4.1: [19] Let Γ be an (n, k) F-ary linear code with generator matrix G. Then Γ is an LCD code if and only if the k × k matrix GG T is non-singular. Further, if Γ is in LCD code, then ∏ Γ = G T (GG T ) -1 G is the orthogonal projector from F n onto Γ.

Recall that the trace function tr : GF(2 n ) → GF (2)

where α 1 , α 2 , …, α n are linearly independent over GF (2).

Represent the generator matrix G defined as in

MRD Codes with Complementary Duals

It is observed that an n q [n,k,d] RD code, n ≤ N with d < n -k + 1 need not be an LCD code but it is interesting to see that the class of n 2 [n,k,d] MRD codes generated by the traceorthogonal-generator matrices are LCD codes.

The following counter example shows that an n q [n,k,d] RD code, n ≤ N with d < n -k + 1 need not be an LCD code.

where {α 1 , α 2 , …, α n } is a trace-orthogonal basis in GF(2 n ).

In order to prove that Γ is an LCD code, one has to prove that the k × k matrix GG T is non-singular.

Since {α 1 , α 2 , …, α n } is a trace-orthogonal basis in GF(2 n ), the k row vectors 2i 2i 2i 1 2 n ( , ,..., ) α α α , i = 0, 1, …, k-1 are orthonormal vectors. It follows that GG T = I, where I denotes the identity matrix. Thus, GG T is non-singular. Therefore, Γ is an LCD code.

Further, the orthogonal projector ∏ Γ from [GF(2 n )] n onto Γ defined by r∏ Γ = rG T (GG T ) -1 G for each r ∈ [GF(2 n )] n exists.

In the above theorem, it is proved that the class of duals is effective at coding over the noiseless 2-user F-Adder Channel, which can be seen in the next subsection.

The 2-user F-Adder Channel

Given a finite field F, the F-Adder Channel is described as the channel whose inputs are elements of F and the output is the sum (over F) of the inputs [25]. This section describes 2-user F-Adder Channel as the F-Adder Channel shared by 2 users. Following are the descriptions to the 2-user F-Adder Channel, for both the noiseless and noisy cases.

Case (i) Noiseless 2-user F-Adder Channel

A pictorial representation of the noiseless 2-user F-Adder Channel is depicted in the following figure. In this noiseless communication channel, the two users of the 2-user F-Adder Channel transmit two n-tuples, say γ 1 and γ 2 respectively from the F-ary linear codes Γ 1 and Γ 2 . Then the received vector, say r is the componentwise sum γ 1 + γ 2 over the finite field F.

Consider the pictorial representation of the noiseless 2-user F-Adder Channel given in figure for F = GF (2 n ). Let Γ be an n 2 [n, k] MRD code generated by a trace-orthogonal-generator matrix and Γ ⊥ = n 2 [n,n k] − denote its dual code. Assume that the two users of the noiseless 2-user GF(2 n )-Adder Channel transmit the codewords γ and β from Γ and Γ ⊥ respectively. Then, in this noiseless 2-user GF(2 n ) -Adder Channel, the received vector r is the componentwise sum γ + β over GF(2 n ).

Since Γ is an LCD code, the orthogonal projector ∏ Γ = GT (GG T ) -1 G defined from [GF(2 n )] n onto Γ exists. To receive the codewords γ and β, the receiver simply applies the orthogonal projector ∏ Γ on r which gives r∏ Γ = γ. The codeword β is then obtained by subtracting γ from r = γ + β. Thus the codewords γ and β transmitted are retrieved from the received vector r successfully.

The following example describes the coding for the noiseless 2-user GF(3 4 )-Adder Channel via

where α is a root of the primitive polynomial x 4 + x + 2 over GF (3). Note that the generator matrix for the dual code Γ ⊥ is H.

Since Γ being an LCD code, the orthogonal projector ∏ Γ defined from [GF (3 4

Suppose the codewords γ 1 = (1, α 61 , α 76 ) and γ 2 = (α 2 , α 5 , α 8 ) from Γ and Γ ⊥ respectively be transmitted over the noiseless 2-user GF (3 4 )-Adder Channel. Then r = γ 1 + γ 2 = (α 24 , α 78 , α 35 ) is the received vector.

Applying the orthogonal projector ∏ Γ on r:

Then γ 2 = r -(1, α 61 , α 76 ) = (α 2 , α 5 , α 8 ). Hence the codewords γ 1 = (1, α 61 , α 76 ) and γ 2 = (α 2 , α 5 , α 8 ) are retrieved from r = (α 24 , α 78 , α 35 ).

Noiseless 2-user F-Adder Channel

In this noiseless channel, the problem for the receiver is to decode the received vector r = γ 1 + γ 2 into the codewords γ 1 and γ 2 originally transmitted. The next subsection provides a solution to this problem through the class of

Case (ii) Noisy 2-user F-Adder Channel

Consider the pictorial representation of the noisy 2-user F-Adder Channel depicted in the following figure in which the two users are attempting to transmit two

Consider the pictorial representation of the noisy 2-user F-Adder Channel depicted in figure.

In this noisy channel, the received vector r′ may not always be the sum of the transmitted codewords γ 1 and γ 2 , but may be a sum of the transmitted codewords along errors, i.e., r′ = γ 1 + γ 2 + e, where e is an error-vector. Let r[e; q] ≤ d 1 2

The problem here for the decoder is to employ an errorcorrecting decoding scheme to decode the received vector r′. If one employs the coding scheme described for the noiseless case s/he would not recover the transmitted codewords γ 1 and γ 2 from the erroneously received vector r′. Suppose Γ is an LCD code such that γ 1 ∈ Γ, γ 2 ∈ Γ ⊥ , then γ 1 + γ 2 ∈ F n = Γ ⊕ Γ ⊥ so that error correction is not possible in the erroneously received vector r′ = γ 1 + γ 2 + e. Consider a situation wherein γ 1 + γ 2 is a codeword of an (n, k, d) F-ary linear code with the parity-check matrix H. Then employing the associated error-correcting decoding technique and using the syndrome r′H T , one can decode the received vector r′ into γ 1 and γ 2 .

If this is the situation, one can correct upto d 1 2

the erroneously received vector r′. So, the prime motivation is to construct multiuser error-correcting codes that can be employed over the noisy 2-user F-Adder Channel effectively.

Chapter Five

Noisy 2-user F-Adder Channel

codewords, say γ 1 and γ 2 respectively from the F-ary linear codes Γ 1 and Γ 2 . Then, in this noisy channel, the received vector, say r′ is the componentwise sum γ 1 + γ 2 + e over F, where e is an error-vector. The problem for the receiver is to decode the received vector r′ = γ 1 + γ 2 + e into the transmitted codewords γ 1 and γ 2 .

Coding for the 2-user F-Adder Channel

As described in the previous subsection, the 2-user F-Adder Channel is a F-Adder Channel shared by 2 users. This subsection describes how the class of n 2 [n,k,d] MRD codes having complementary duals can be effectively used over the noiseless 2-user GF(2 n ) -Adder Channel. For the case when the 2-user F-Adder Channel is noisy, the coding problem is described. It is observed that the class of LCD codes is not suitable for coding over the noisy 2-user F-Adder Channel.

EFFECTIVE ERASURE CODES FOR RELIABLE COMPUTER COMMUNICATION

PROTOCOLS USING CODES OVER ARBITRARY INTEGER RINGS

Linear algebraic codes can be defined using symbols chosen from a set of arbitrary size. However, most of the results of coding theory have been derived assuming that the code symbols are elements of a finite field especially the finite field Z 2 = {0, 1}. Recently linear codes over integer rings have raised a great interest for their role in algebraic coding theory and their successful applications in combined coding and modulation. [2,3] has constructed cyclic codes over Z m (the ring of integers modulo m) where m is an interger of the form p 1 , p 2 , …, p k where p i 's are distinct primes, from cyclic codes over i p Z . In his later paper, Blake derived parity check matrices for codes over Z m analogous to Hamming codes and Reed-Solomon codes. Calderbank and Sloane [4], Priti Shanker [23], J.C. Interlando et al [13] extended the notion of cyclic codes, Reed-Solomon codes and BCH codes over GF(q) to class of codes over finite rings Z q , with q a power of a prime. Most studies in algebraic coding theory deal with Hamming metric. Since the Hamming metric is not always well matched to the characteristics of the real channels EM. Gabidulin [9] introduced a new metric, called the rank metric, and he called the codes equipped with this metric as rank distance codes.

In this chapter we study the codes with rank metric over the ring of integers modulo 2m, where 2m = 2p 1 , p 2 , …, p t , where p i 's are distinct primes. These codes are proved to be better than the codes with Hamming metric as they can cater to the complex and unpredictable situations in the communicating channels. Further, they are found to have a better error correcting capability.

This chapter is divided into two sections. In the first section we define a new class of codes, called the integer rank distance codes using the ring of integers modulo 2m. In the second section we define the Maximum Integer Rank Distance codes (MIRD codes) using the main result -Singleton -style bound for integer rank distance codes. Further we give the method of coding and decoding algorithm for this new class of MIRD codes without which the construction will not be complete.

Integer Rank Distance Code

As said earlier Z 2m is the ring of integers modulo 2m where 2m = 2p 1 p 2 … p t , where p i 's are distinct primes. Let Z 2m [x] be the ring of polynomials in the indeterminate x. Let p(x) ∈ Z 2m [x] be an irreducible polynomial of degree n over Z 2m . Let V be Z 2m [x] / 〈p (x)〉, where 〈p(x)〉 denotes the ideal generated by p (x). Clearly V is a module of dimension n over Z 2m . Any element x ∈ V can be represented by x = (x 1 , x 2 , …, x n ) where x i ∈ Z 2m i.e., a polynomial is regarded as a n-tuple. The elements of Z 2m can be treated as polynomials in 2 over Z 2 . Hence an element x 1 ∈ Z 2m has representation as a N 0 -tuple

2i N

x , x ,..., x , x ij ∈ Z 2 . Hence, with each x ∈ V we have an

where the i-th column represents the i-th coordinate 'x i ' of 'x' over Z 2 .

Let n(x) denote the rank of the m(x). Then it is clear that the function x → r 1 (x) is a norm on V. We call this as the integer rank norm and denote this by r 1 (x). The metric induced by the integer rank norm is defined as the integer rank metric on V.

If x, y ∈ V, then the integer rank distance between x and y is

We illustrate this by an example.

Clearly rank of m(x) is 3.

We define a linear (n, k) integer rank distance code as :

1. The linear submodule generated by the rows of the generator matrix (or) 2. the solution space of the parity check matrix.

Note:

The usual Hamming distance between any two vectors, x, y ∈ V, which is the number of places in which x and y differ also induces a norm on each vector x ∈ V, called the Hamming norm, which is denoted throughout this paper as r H (x).

Maximum Integer Rank Distance Codes

In this section we mainly arrive at a singleton -style bound for integer rank distance codes, using which we define Maximum Integer Rank Distance codes, which we refer by MIRD codes here after. To achieve this we essentially make use of the following lemma. Further, we give a characterization theorem for finding the maximum integer rank distance of a integer rank distance code.

Lemma 5.2.1:

Let n 1 and n 2 be any two norms defined on V with n 1 (x) ≤ n 2 (x), for all x ∈ V. Let V 1 (n, d) and V 2 (n, d) be the volumes of codes with maximum distance d with norms n 1 and n 2 , respectively. Then, V 1 (n, d) ≤ V 2 (n, d).

Proof : Since n 1 (x) ≤ n 2 (x), for all x ∈ V, any y ∈ V 1 (n, d) will also be in V 2 (n, d).

Hence V 1 (n, d) ≤ V 2 (n, d). The following theorem is used to find the minimum integer rank distance of the linear (n, k) integer rank distance code. We define a class of MIRD codes of length n ≤ N 0 . These codes are analogous to the generalized Reed-Solomon codes over integer rings.

We introduce the notation [i] = 2 i ; i = 0, ± 1, ± 2, … Assume that h i ∈ Z 2m , i = 1, 2, …, n and assume that these elements are linearly independent over Z 2 . Given the designed distance d < n, we generate the matrix H = As polynomials with coefficients from Z 2m play an important role in the theory of maximum distance separable codes over Z 2m the linearized polynomials play similar role in the theory of maximum rank distance codes over GF(2 N ) [29,32]. In a analogous way we can use linearized polynomial with coefficients from Z 2m to study MIRD codes over Z 2m . where R 2m (f i + g i ) is the least nonnegative integer when f i + g i is divided by the integer 2m. The multiplication product is the symbolic product F * G = F (G(z)). This multiplication operation is non-commutative. The set of all linearized polynomials with coefficients from Z 2m form a noncommutative ring with identity element f 0 (z) = z.

Generalized Inversionless Euclidean algorithm for division (whether left or right) of one polynomial by another exists in this ring. Here we consider right division.

Let F 0 (z) and F 1 (z) be two linearlized polynomials with degF 1 (z) < degF 0 (z). Then by generalized Euclidean algorithm we get a sequential chain of equalities F 0 (z) = G 1 (z) * F 1 (z) + F 2 (z), degF 2 (z) < degF 1 (z) F 1 (z) = G 2 (z) * F 2 (z) + F 3 (z), degF 3 (z) < degF 2 (z) (5.2.9) F s-1 (z) = G s (z) * F s (z) + F s+1 (z), degF s+1 (z) < degF s (z) F s (z) = G s+1 (z) * F s+1 (z)

The last non zero remainder F s+1 (z) in this chain is the right symbolic LCD of polynomials F 0 (z) and F 1 (z). If we introduce polynomials U i (z), A i (z), V i (z) and B i (z), defined recursively for i ≥ 1, by

, V 0 (z) = z, V -1 (z) = z (5.2.10) B i (z) = B i-1 (z) * G i (z) + B i-2 (z), B 0 (z) = z, B -1 (z) = z then, F 0 (z) = U i (z) * F i (z) + U i-1 (z) * F i+1 (z) (5.2.11) F 1 (z) = V i (z) * F i (z) + V i-1 (z) * F i+1 (z).

In addition, The codes with generator matrix of the form (5.2.7) can be described in terms of the linearlized polynomials. Assume that g 1 , g 2 , …, g n are specified elements that are linearly independent over Z 2 . Then all vectors of the form g = (F(g 1 ), F(g 2 ), …, F(g n )), where F(z) extends over all linearlized polynomials of degree less than or equal to [k-1] = 2 k-1 with coefficients from Z 2m are codewords.

Code C is called 2-cyclical if a 2-cyclical shift of any codeword is also a codeword i.e., if (g 0 , g 1 , …, g n-1 ) ∈ C then its 2-cyclic shift [1] [1]

is the generator polynomial then H(z) can be taken as the corresponding check polynomial.

We note that an element in V is a code vector if and only if the corresponding linearlized polynomial can be divided without remainder by the generating polynomial G(z).

In otherwords, an element g is a code vector if and only if the corresponding polynomial g(z) is such that

If H(z) =

Now we proceed onto give the coding and decoding techniques of MIRD codes.

As in the case of cyclic codes over the integer ring, systematic coding can be effected either by means of a check polynomial or by means of a generating polynomial. MIRD codes with check matrix (5.2.5) can be decoded using an algorithm that is similar to the algorithm for maximum rank codes over fields [32] with appropriate modifications due to the presence of zero divisors. Let g = (g 1 , g 2 , …, g n ) be the code vector. e = (e 1 , e 2 , …, e n ) be the error vector and y = g + e be the received vector. We first calculate the syndrome s = (s 0 , s 1 , …, s d-2 ) = yH T = eH T . (5.2.17) The decoders problem is to determine the error vector e on the basis of the known syndrome vector s.

since Λ (E j ) = 0, j = 1, 2, …, m.

If the coefficients of polynomial F(z) are known, then the coefficients of polynomial Λ (z).

where for j + p ≥ m we set F j+p = 0. Now we assume that E 0 , E 1 , …, E m as well as the coefficients of Λ(z), are known. We consider the following truncated system in the unknows:

We will solve (5.2.23) using the method of successive elimination of variables. We set A ij = E j , Q 1p = s p ; we multiply the (p+1)-th equation of the system by A 11 , we extract the root of degree 2, and we subtract the p-th equation. As a result we obtain a system that does not contain x 1 : We now state the above in the form of a decoding algorithm.

Step 1: We calculate the syndrome s = (s 0 , s 1 , …, s d-2 ) and the corresponding polynomial s (z) =

Step 2: We set F 0 (z) = z [d-1] , F 1 (z) = s(z) and employ generalized Euclidean algorithm until we reach a F 1+1 (z) such that deg F 1 (z) ≥ 2 (d-1)/2 , deg F 1+1 (z) < 2 (d-1)/2 . Then

where, γ is chosen such that the coefficient of Λ m is equal to 1.

Polynomial Λ(z) can be determined either on the basis of the first formula in (5.2.22), if polynomials A i (z), i = 1, 2, …, are calculated in parallel in the course of Euclidean algorithm, or using (5.2.23), which employ the coefficients of the remainder F m+1 (z) calculated in the course of the algorithm. Then roots E 0 , E 1 , …, E m of Λ(z) that are linearly independent over Z 2 are determined. Let y = (3, 2, 1) be the received codeword. Then, the syndrome is s = (s 0 , s 1 ) = yH T = (5, 5). Hence, by modified inversionless Euclid's algorithm,

0 s / s 1 ) + z [1] = -5z + z 2 . The nonzero root of Λ(z) is 5. Hence, E = 5. From the single equation of the system (5.2.26) we determine x = (s 1 / s 0 ) = 1 = (1 × 1) + (0 × 4) + (0 × 2) = y 1 h 1 + y 2 h 2 + y 2 h 2 ) which gives (y 1 , y 2 , y 3 ) = (1, 0, 0). The error vector is e = (y 1 E, y 2 E, y 3 E) = (5, 0, 0)

Figure 1

We have constructed a new class of effective erasure codes over the ring of integers using the rank distance metric. This class of codes can be suited in different applications like reliable computer communication protocols, ARQ protocols in satellites communications and in amateur radios.

Chapter Six

CONCATENATION OF ALGEBRAIC CODES

In this chapter we study concatenation of linear block code with another linear block code or concatenation of three or more linear block codes. We describe this in section one. This chapter has two sections. In section two we describe concatenation of RD codes with CR-matric. We give the probable ways of building concatenated bicodes, biconcatination of codes and quasi concatenated bicodes.

Concatenation of Linear Block Codes

The construction and the encoding procedure of the concatenated codes is described in this section which is as follows:

Let S = ((n 1 , n 2 , …, n t ), (k 1 , …, k t )) be the special supercode defined over the Galois field Z 2 = GF(2) and the inner codes C 1 = C 1 (n 1 , k 1 ), C 2 = C 2 (n 2 , k 2 ), … and C t = C t (n t , k t ) be codes with Hamming metric defined over the Galois field GF (2). Suppose m = (x 1 | x 2 | … | x t ) be the message to be encoded where each x i is a k i tuple of the form Thus we have a k 1 + k 2 + … + k t dimensional super vector space associated with this concatenated code or the super code is a k 1 + k 2 + … + k t dimensional vector subspace of a n 1 + n 2 + … + n t dimensional vector space over Z 2 . Infact S has 1 2 t k k ... k 2 + + + elements.

We can consider a map;

This map g is one to one linear transformation of S to C 1 × C 2 × … × C t .

The concatenated code is comprised of the outer code and t number of inner codes. The outer code is a super code and the tinner codes are the row submatrices of the outer code. That is the outer code which is the super code has its sub row vectors from these t inner codes. The t inner codes can be distinct or otherwise. The following is the concatenated coding system.

Thus we see the concatenated code word which is a super code takes the form of a super row matrix x , x ,..., x ) ∈ C j = C j (n j , k j ); 1 ≤ j ≤ t; j p x ∈ Z 2 ; 1 ≤ j, p ≤ t}.

For any two x, y ∈ S we can define d S (x, y) = t j j j j 1 d (x , y ) = ∑ where x j , y j ∈ C j (n j , k j ); 1 ≤ j ≤ t. It is easily verified d S (x, y) = d S (x+y) denotes the super Hamming metric on S over GF (2) 4 ) | x 1 ∈ C (2, 3), x 2 ∈ C(5, 2), x 3 ∈ C (7, 4) and x 4 ∈ C (4, 2)} be a concatenated code with the codes C 1 = C (8, 3), C 2 = (5, 2), C 3 = C (7, 4) and C 4 = C (4, 2).

We see error detection can be done using the parity check matrices of C 1 , C 2 , C 3 and C 4 .

Error correction can be carried out using coset leader method [16]. This type of concatenated super codes has the following advantages.

(i)

The rate of transmission is increased.

(ii) This concatenated codes saves time during transmission as insteaded of sending t-vectors of each n t tuples we send a lengthened code.

(iii) We can retrieve the messages.

Further t min min

So in a Super code which is the concatenated code using linear codes with Hamming metric we can detect and correct errors, with in the limits of compatibility. Now we describe another type of concatenated code of a linear codes with Hamming metric.

The message x = into t messages and the messages are sent to t encoder and they pass the super channel and reach as t decoders, from the decoder units reaches the consolidation unit and then the destination. These codes will be useful when the bulk work is distributed to different units and the result is consolidated to get the final message.

Let C 1 , C 2 , …, C t be t number of linear codes distinct or otherwise of length n 1 , n 2 , …, n t and messages k 1 , k 2 , …, k t respectively. We denote by P = x , x ,..., x ) | j i x ∈ Z 2 ; 1 ≤ j ≤ t and 1 ≤ i ≤ n 1 , n 2 , …, n t }.

We say P is concatenated using t inner codes, however P is not a super code, just a code. By using usual transmission the rate of transmission is certainly less or equal to the sum of the rates of transmissions.

The diagram is self explanatory.

We can use error connection technique or erasure correction technique.

Finally we give yet another type of concatenated linear codes which we will define in the following. These will also be known as special blank concatenated codes.

Suppose C 1 = C(n, k) code and C 2 = C(n, k′) or C(n-1, k 1 ) code. Then we form the concatenated code C = C 1 C 2 = {(x 1 y 1 x 2 y 2 … x n y n ) | (x 1 , x 2 , …, x n ) is in C (n, k) and (y 1 , y 2 , …, y n ) ∈ C(n, k′)} ((x 1 y 1 x 2 y 2 … x n-1 y n-1 x n ) where (x 1 , …, x n ) ∈ C(n, k) and (y 1 , …, y n-1 ) ∈ C (n-1, k 1 )) will be defined as the alternate concatenated two code or special blank concatenated code and the transmission is done using the 'special blank'; however 'special blanks' are not erasures.

We will describes how the transmission takes place. These units acts as the sender of the message, these messages are encoded by encoder 1, encoder 2, …, encoder m. From the encoder it passes thro' the modulator, and from the modulators to the channels from channels to decoders and from the decoders to the m receiver if the purpose of the concatenated coding is to send the message to m receivers from one sender.

But on the other hand if the purpose is to send to receiver but each channel or system does a different type of m-jobs and should reach the single receiver then we have the decoded mmessages would be sent to m-reversing units and then m of these reversing units to m-rewriters who include the blanks and from it reaches a single reconverter and from the reconverter the receiver receives the message then in that case of extended diagram would be as follows. Thus it is a 12 step process.

Concatenation of RD Codes with CR-metric

The concatenated code consists of an outer and an inner code. The outer code is a RD code and the inner code is a binary code and the outer code is a code over the inner code. The concatenated code consists of the codewords of the outer code expressed in terms of the alphabets of the inner code. This concatenated coding system is depicted in the following figure:

From the above figure we see that the encoder of a concatenated code consists of an outer encoder and an inner encoder corresponding to the outer and inner codes respectively. Similarly the decoder of a concatenated code consists of an outer decoder and an inner decoder corresponding to the outer and inner codes respectively. Here the combination of the inner encoder, channel and the inner decoder can be thought of as forming a new channel called a super-channel. The superchannel transmits the codewords of the outer code.

The encoding procedure of concatenated codes is given in the following section.

Let the outer code A be a linear (2 ) . The procedure of concatenation of the outer code A and the inner code B is given in the following three steps:

Step 1: The message m = (a 1 , a 2 , …, 2 ) is encoded with the outer code A into a codeword. Thus we get a n a -tuple a = (a 1 , a 2 , …, a n a ) T where each a i ∈ GF( b k 2 ). Now a is the codeword of MRD code which is to be transmitted after applying the following steps: where b ij ∈ GF (2), i = 1, 2, …, k b and j = 1, 2, …, n a .

Step After applying steps 1, 2, and 3 of the encoding procedure described above to the message m and encoding each row of the matrix (6.2.1) by using the inner code we get the codeword of the concatenated code represented by the following matrix.

where b ij ∈ GF(2), i = 1, 2, …, n b and j = 1, 2, …, n a .

From here onwards the matrix (6.2.2) will be known as the Concatenated Code Matrix (CC matrix) and will be denoted by CCM (m), that is, it is the related concatenated code matrix of the message m. Thus d c is a metric on the set of all concatenated code matrices on CCM and we define d c as the concatenated rank metric (CR-metric).

DEFINITION 6.2.3: The set of all concatenated code matrices (CCM) equipped with the concatenated rank metric (CR-metric) d c is called the concatenated Rank Metric code (CRM code).

Throughout we denote a CRM code by (CCM, d c ). It is clear from the very construction that the CRM code is not a RD code or a binary code. For X, Y ∈ CCM we have X + Y ∈ CCM we can restate the above definition as follows:

If r (X+Y) > s, s > 0, then Y has an error of rank s.

A relation between the minimum distance of the concatenated rank metric code and the minimum distance of the outer RD code is given by the following theorem. where each a i ∈ GF( b k 2 ) be encoded with the outer code A into a codeword a = (a 1 , a 2 , …, a n a ) T ∈ A. Since the minimum distance of the outer RD code is d a , so r(a) ≥ d a . This implies atleast d a columns of the matrix a T are linearly independent over GF (2). Without loss of generality let us assume that the first d a columns of the matrix a T are linearly independent over GF (2). That is, a 1 , a 2 , …, a d a are linearly independent over GF (2). By the method of concatenating the codes A and B given earlier and after applying the mapping g we get the matrix

where b ij ∈ GF(2), i = 1, 2, …, k b and j = 1, 2, …, n a .

Since r(a) ≥ d a , we get r(b) ≥ d a . We have, after applying the inner encoder to the matrix B, let the concatenated code matrix corresponding to the message m be CCM(m) = b 1 , that is, (2), i = 1, 2, …, n b and j = 1, 2, …, n a .

Then, r(b 1 ) ≥ d a since the addition of parity bits by the inner code B to the matrix b does not change the rank of the matrix b. Hence the minimum distance of the concatenated rank metric code of d a .

The above theorem is illustrated by the following example. Example 6.2.1: Let the outer code A be a (2, 1, 1) RD code with minimum distance 1 defined over GF(2 2 ) = {0, 1, α, α 2 } where α is the root of the primitive polynomial x 2 + x + 1 of GF(2 2 ). Let the generator matrix of the outer code A be G = (1 0) where 0, 1 ∈ GF(2 2 ). Let the inner code B be a binary (4, 2, 3) code with minimum distance 3 be defined over GF (2) having the parity check matrix H = 1 0 1 0

The mapping g : GF(2 2 ) → [GF(2)] 2 is the mapping given by the primitive polynomial of GF(2 2 ), defined as 0 → 00, 1 → 01, α →10, α 2 →11.

It is interesting to note that, in the case of (CCM, d c ) code or CRM codes if we want to have a desired minimum distance we can without hesitation take the outer RD code with the desired minimum distance and use any convenient binary inner code, for the minimum distance is independent of he choice of the inner code. Thus this concatenation technique helps one to construct any CRM code of desired minimum distance which is not enjoyed by any other class of codes. 2 code defined over GF (2). Let X be the transmitted CC matrix and Y be the received matrix. If r(Y) < d a then an error has occurred in the matrix Y during transmission.

Proof : Let m be the message transmitted. Let X be the associated concatenated code matrix of m, that is X = CCM(m). Let Y be the received concatenated code matrix which contains errors occurred during transmission. Suppose r(Y) < d a . From corollary 6.2.1 the minimum distance of the concatenated rank metric code is the true minimum distance and hence r(X) ≥ d a for every X ∈ CCM. So, r(Y) < d a indicates that an error has occurred during transmission.

It is very important to note that from the above theorem we can just by computing the rank of the received matrix, we can immediately conclude that an error has occurred during transmission.

We give the decoding procedure for CRM codes.

Our decoding procedure for CRM codes is nothing but to obtain a decoding method for the received concatenated code matrix which is done by first decoding with the inner code and then decoding with the outer code. The reason for doing so is due to the systematic construction of CRM codes explained earlier. We know by the very construction of the CRM codes that the received concatenated code matrix has its entries from the alphabets of the inner code. Hence the received concatenated code matrix is first decoded by using the inner code and then it is decoded with the decoding algorithm of the outer code. Hence the decoder of a concatenated code consists of an inner decoder and an outer decoder. Now we explain the decoding procedure for concatenated rank metric codes (CCM, d c ) with CR-matrix d c .

Let Y be the received message. Clearly Y is the matrix given by where y ij ∈ GF (2), i = 1, 2, …, n b and j = 1, 2, …, n a .

We describe the decoding procedure of a received concatenated code matrix Y in the following three steps.

Step 1: For each i = 1, 2, …, n b decode (y 1i , y 2i , …, b n i y ) using the inner code decoder and obtain a k b -tuple (y 1i , y 2i , …, b k i y )

where b ji ∈ GF (2), j = 1, 2, …, n b and obtain the matrix. where y ij ∈ GF(2), I = 1, 2, …, k b and j = 1, 2, …, n a . Here when decoding with the inner code the number of columns in the received concatenated matrix Y is reduced and the number of row remains unaltered.

Suppose the matrix Y = 1 1 1 0

received matrix Y is decoded using the decoding procedure of CRM codes described above.

By step 1, we first use the inner decoder to decode the received matrix Y. The inner decoder decodes (1 1 1 0) to (1 1) and (1 0 0 0) to ( 0 0) to obtain the matrix y = 1 1

Then by step 2, on applying the map g -1 : [GF(2)] 2 → GF(2 2 ) to each row of matrix y, we get y 2 = 2 0   α     . By step 3, the outer decodes this column vector y 2 to α 2 the transmitted message symbol (since in this example the RD code has only one message symbol). Now from these concatenated MRD codes we can define biconcatenated MRD codes or concatenated MRD bicodes, C = C 1 ∪ C 2 where each C i is a concatenated CRM codes. We can also extend this to n-concatenated CRM codes or concatenated n-CRM codes as C = C 1 ∪ C 2 ∪ … ∪ C n where each C i is a CRM code; 1 ≤ i ≤ n. This form of n-codes will help in the simultaneous processing using n-units which will be time saving.

We can also define quasi n-concatenated CRM codes, when some t of them are concatenated CRM codes and the rest are MRD codes. Further the n-concatenated special super codes; C = C 1 ∪ C 2 ∪ … ∪ C n if each C i is a special super code; i = 1, 2, …, n. If n = 2 we get the biconcatenated special super code.

We can also have biconcatenated CRM code with a special super codes defined as mixed biconcatenated code. That is C = C 1 ∪ C 2 where C 1 is a super special code and C 2 is a CRM code. We can extend this to mixed n-concatenated codes where t of them are super special codes (t < n) and rest are just CRM codes. We can also have the notion of quasi mixed nconcatenated codes where t 1 of them are CRM codes, t 2 of them are just MRD codes, t 3 of them special super codes and the rest of them are just linear codes. Thus we can have quasi mixed nconcatenated codes. These codes will help when bulk messages are sent and this will save time and economy.