V NonBinary Codes Introduction to Reed Solomon Codes
V. Non-Binary Codes: Introduction to Reed Solomon Codes
Binary Codes Transmitter Side Binary Data Channel Encoder Encoded Binary Data Receiver Side Received Binary Data Channel Decoder Decoded Binary Data l Code Symbols: The code is constructed from ‘ 0’ and ‘ 1’ symbols only l Hamming Distance: The number of bit locations in which any two sequences differ l Example (7, 3) Binary Code: l Number of valid codewords = 23 = 8 l Number of binary tuples of length 7 = 27= 128 l Only 1/16 of the binary tuples of length 7 are codewords © Tallal Elshabrawy 2
Non-Binary Codes Transmitter Side Binary Data Symbol Mapping Non. Binary Data Receiver Side Received Encoded Non-Binary Data Channel Encoder Decoded Non. Binary Data Decoded binary Data Bit Mapping l Code Symbols: The code is constructed by non-binary symbols l Hamming Distance: The number of symbol locations in which any two sequences differ l Example (7, 3) 8 Symbol Non-Binary Code: l Number of valid codewords = 83=512 l Total number 8 -symbol tuples of length 7 = 87 = 2097152 l Only 1/4096 of the 8 -symbol tuples of length 7 are codewords © Tallal Elshabrawy 3
Why Non-Binary Codes For the same rate, non-binary codes have the potential of supporting a better dmin (i. e. , better error correction/detection capabilities) © Tallal Elshabrawy 4
Requirement for Non-Binary Block codes An essential requirement for symbols of a nonbinary code is that the code symbols should belong to a finite field WHY? The construction of channel codes involves various mathematical operations. The resultant symbols from such operations must be a members of the same finite field © Tallal Elshabrawy 5
Constructing a Field of q Elements l Can you construct a finite field of 8 elements? l Lets say F = {0, 1, 2, 3, 4, 5, 6, 7} under modulo 8 addition and modulo 8 multiplication. Is F a valid finite field? NO! WHY? Many Reasons of which: l No multiplicative inverse for most elements in the field (e. g. , 6 has no inverse) l The identity element under multiplication is not unique for some elements (e. g. , 4 x 1 = 4 x 3 = 4) © Tallal Elshabrawy 6
Constructing a Field of 2 m Elements l Preliminaries l GF(2 m) is an Extension of GF(2) l GF(2) is a subfield of GF(2 m) l Elements 0 , 1 belong to GF(2 m) l Elements other than 0, 1 and constructing the field l Let p(X) be a primitive polynomial of degree m over GF(2) l p(X) has no roots in GF(2) l Assume that p(X) has a root α in GF(2 m) (i. e. , p(α) = 0 ) p(X) is a primitive polynomial α is a root of p(X) © Tallal Elshabrawy 7
Constructing a Field of 2 m Elements Even though α is non-binary, the coefficients of the polynomial are still binary, i. e. , Elements of the field GF(2 m) 2 m Elements © Tallal Elshabrawy 8
Multiplication in GF(2 m) l Let take any two elements αi, αj , 0 ≤ i, j< 2 m-1 where 0 ≤ r < 2 m-1 Elements in GF(2 m) constitute a closed group under multiplication l Let some element αi, 0 ≤ i <2 m-1 Each elements αi has an inverse in GF(2 m) © Tallal Elshabrawy 9
Addition in GF(2 m) p(X) is primitive polynomial. Therefore for 0 ≤ i <2 m-1, Xi is not divisible by p(X), i. e. , For 0 ≤ i, j <2 m-1, i≠j Note: Proof not required Since α is a root of p(x) p(α)=0 which means that any element in GF(2 m) is distinctly represented as an addition of elements in GF(2 m) Elements in GF(2 m) constitute a closed group under addition © Tallal Elshabrawy 10
Remember Conditions for a Field Let F be a set of elements on which two binary operations called addition “+” and multiplication “. ” are defined. The set F and the two binary operations represent a field if: i. F is a commutative group under addition. The identity element with respect to addition is called the zero element (denoted by 0) ii. The set of nonzero elements in F is a commutative group under multiplication. The identity element with respect to multiplication is called the unit element (denoted the 1 element) iii. Multiplication is distributive over addition: a. (b+c) = a. b + a. c, a, b, c in F © Tallal Elshabrawy 11
Example: Constructing GF(23) l Primitive Polynomial p(X) = 1+X+X 3 23=8 Elements l α is one of the roots of p(X) © Tallal Elshabrawy 12
Example: Constructing GF(23) Addition Table for GF(8) with p(X)=1+X+X 3 © Tallal Elshabrawy α 0 α 1 α 2 α 3 α 4 α 5 α 6 α 0 0 α 3 α 6 α α 5 α 4 α 2 α 1 α 3 0 α 4 α 0 α 2 α 6 α 5 α 2 α 6 α 4 0 α 5 α α 3 α 0 α 3 α α 0 α 5 0 α 6 α 2 α 4 α 5 α 2 α α 6 0 α 3 α 5 α 4 α 6 α 3 α 2 α 0 0 α 6 α 2 α 5 α 0 α 4 α 3 α 0 13
Example: Constructing GF(23) Multiplication Table for GF(8) with p(X)=1+X+X 3 © Tallal Elshabrawy α 0 α 1 α 2 α 3 α 4 α 5 α 6 α 1 α 2 α 3 α 4 α 5 α 6 α 0 α 1 α 3 α 4 α 5 α 6 α 0 α 1 α 2 α 3 α 5 α 6 α 0 α 1 α 2 α 3 α 4 α 5 14
Reed Solomon Codes l Reed Solomon Codes are: l Linear Block Codes l Cyclic Codes l Non-Binary Codes (Symbols are made up of m-bit sequences) l Used in channel coding for a wide range of applications, including l Storage devices (tapes, compact disks, DVDs, bar-codes) l Wireless communication (cellular telephones, microwave links, satellites, …) l Digital television l High-speed modems (ADSL, x. DSL). © Tallal Elshabrawy 15
Reed Solomon Codes For any positive integer m≥ 3, there exists a non-binary Reed Solomon code such that: - Code Length: No. of information symbols: No. of parity check symbols: Symbol Error correcting capability: © Tallal Elshabrawy n = 2 m-1 k = 2 m-1 -2 t n-k = 2 t t 16
Generator Polynomial Example (7, 3) double-symbol correcting Reed. Solomon Code over GF(23) © Tallal Elshabrawy 17
Encoding in Systematic Form l Three Steps: l l l Multiply the non-binary message polynomial u(X) by Xn-k Dividing Xn-ku(X) by g(X) to obtain the remainder b(X) Forming the codeword b(X)+Xn-ku(X) Encoding Circuit is a Division Circuit Gate g 2 g 1 g 0 b 0 + b 1 + gn-k-1 b 2 . . + bn-k-1 Xn-ku(X) + Information Symbols Codeword Parity Check Symbols © Tallal Elshabrawy 18
Encoding Circuit Example: Implementation Encoding Circuit of (7, 3) RS Cyclic Code with g(X)=α 3+α 1 X+ α 0 X 2+ α 3 X 3+X 4 α 3 α 1 x b 0 α 0 x + b 1 α 3 x + b 2 Gate x + b 3 + Xn-ku(X) Information Symbols. Codeword Parity Check Symbols © Tallal Elshabrawy 19
Bits to Symbols Mapping Transmitter Side Binary Data Symbol Mapping l l Non. Binary Data Decoded Non. Binary Data Received Encoded Non-Binary Data Channel Encoder Decoder Information message is usually binary A symbol mapping is usually necessary for the encoding process Remember the polynomial representation of symbols in GF(2 m) The coefficients of the polynomial representation may be used for the mapping © Tallal Elshabrawy Receiver Side Decoded binary Data Bit Mapping Symbol ai(α) Mapping 0 0 000 α 0 100 α 1 010 α 2 001 α 3 1+α 110 α 4 α +α 2 011 α 5 1+α +α 2 111 α 6 1 +α 2 101 20
Encoding Example Binary Information Message 010 111 Symbol Mapping Non-Binary Information Message α α 3 α 5 α+ α 3 X+ α 5 X 2 Encoding Mathematics: l X 4 u(X)= αX 4+ α 3 X 5+ α 5 X 6. l Dividing by g(X). The remainder b(X)= α 0+ α 2 X+ α 4 X 2+ α 6 X 3 l v(X)=b(X)+X 4 u(X)= α 0+ α 2 X+ α 4 X 2+ α 6 X 3+ αX 4+ α 3 X 5+ α 5 X 6 l l V=(α 0 α 2 α 4 α 6 α α 3 α 5) In Binary: V=(1 0 0 1 0 1 1 1) © Tallal Elshabrawy 21
Encoding Example Binary Information Message 010 111 Symbol Mapping Non-Binary Information Message Assume u=(α Input α α 3 α 5 α+ α 3 X+ α 5 X 2 α 3 α 5) Register Contents 0 0 (Initial State) α 5 α α 6 α 5 α (1 α 3 0 α 2 (2 α α 0 st nd α 2 α 4 α 6 Shift) α α 3 α 5 (3 rd Shift) V=(α 0 α 2 α 4 α 6 α α 3 α 5) © Tallal Elshabrawy 22
Syndrome Computation l Valid Codewords V(X) are divisible by g(X) l α, α 2, α 3, …, α 2 t are roots of g(X) Example in (7, 3) RS Code: r(X) = α 0+ α 2 X+ α 4 X 2+ α 0 X 3+ α 6 X 4+ α 3 X 5+ α 5 X 6 r is not a codeword © Tallal Elshabrawy 23
- Slides: 23