0% found this document useful (0 votes)
6 views55 pages

Error Correcting Codes 3

The document discusses cyclic codes, particularly focusing on their properties, generator polynomials, and systematic encoding methods. It highlights that any circular shift of a valid codeword is also a valid codeword, and emphasizes the relationship between polynomials and integers in terms of division and modular arithmetic. Additionally, it covers the encoding process and the significance of generator polynomials in generating codewords.

Uploaded by

Gauss19
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views55 pages

Error Correcting Codes 3

The document discusses cyclic codes, particularly focusing on their properties, generator polynomials, and systematic encoding methods. It highlights that any circular shift of a valid codeword is also a valid codeword, and emphasizes the relationship between polynomials and integers in terms of division and modular arithmetic. Additionally, it covers the encoding process and the significance of generator polynomials in generating codewords.

Uploaded by

Gauss19
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 55

1 0 11

0 1 2 3
1 𝑥 + 0 𝑥 +1 𝑥 +1 𝑥
Cyclic Codes
Polynomial Properties
100100
010010
001001
Cyclic Codes
Generator Polynomial
(𝑛 −𝑘 )
𝑥 𝑚 ( 𝑥 )=𝑞 ( 𝑥 ) 𝑔 ( 𝑥 ) +𝑟 ( 𝑥
(𝑛 − 𝑘)
𝑐 ( 𝑥 )=𝑥 𝑚 ( 𝑥 ) +𝑟 ( 𝑥 )
Cyclic Codes
Systematic Encoding
Cyclic Polynomial Codes

(Cyclic) Reed-Solomon Codes


Cyclic Codes
• Any circular shift of a valid codeword is another valid codeword

10100 01010 ,00101 , 10010 , 01001


Cyclic Codes
• Any circular shift of a valid codeword is another valid codeword

10100 01010 ,00101 , 10010 , 01001


• Not necessarily linear
Cyclic (Linear) Codes
• Any circular shift of a valid codeword is another valid codeword
• We normally only care about cyclic codes that are also linear
𝑏 0 𝑏 1 𝑏2 … 𝑏𝑛

0 1 2 𝑛
𝑏 0 𝑥 +𝑏1 𝑥 +𝑏2 𝑥 + …+𝑏𝑛 𝑥
1 0 11
0 1 2 3
1 𝑥 + 0 𝑥 +1 𝑥 +1 𝑥
2 3
1+ 𝑥 + 𝑥
0110 1110

0100 1100
Generator
Matrix
0010 1010 0111 1111

0000 1000 0101 1101

[ ]
0011 1011 1 0 0 0 1 1 0
0001 1001 0 1 0 0 1 0 1
0 0 1 0 0 1 1
0 0 0 1 1 1 1

Message Space Codeword Space

[ 11 0 1] [ 11 0 1 1 0 0]
0110 1110

0100 1100
Generator
0000
0010

1000
1010 0111 1111
Polynomial
0101 1101

0011 1011
2
0001 1001
1+ 𝑥
Message Space Codeword Space
3 2 5
1+ 𝑥+ 𝑥 1+ 𝑥+ 𝑥 + 𝑥
10 11 𝑥 1+ 𝑥

𝑥
00 01 0 1
1 1] 1 1+ 𝑥
Message Codeword Message Codeword
0 00 0 0
1 11 1
110 111 𝑥+ 𝑥
2
1+ 𝑥+ 𝑥
2

010 011 𝑥 1+ 𝑥

100 101 𝑥
2
1+ 𝑥
2

000 001 𝑥 0 1
[ 1 1 1] 1+ 𝑥+ 𝑥
2
Message Codeword Message Codeword
0
1
000
111
1 0
1
0
Polynomials are like Integers
Integer Division Polynomial Division

Integer Modular Arithmetic Polynomial Modular Arithmetic

Prime Numbers Irreducible Polynomials


2 , 3 , 5 , 7 ,11 ,13 …
Polynomial Set Notation
Coefficient Set Variable
Polynomials are like Integers:
Division

𝑎= 𝑏⋅ 𝑞 +𝑟
11 5625

5625=11 ⋅ 511+ 4
5 4 2
𝑥 +1 𝑥 + 𝑥 + 𝑥 +1
2
Polynomials are like Integers: Modular
Arithmetic

ℤ /12 ℤ ℤ12
12 ℤ={… ,− 24 , −12 , 0 ,+12 ,+24 , …}
Polynomials are like Integers: Modular
Arithmetic
ℤ /5 ℤ ℤ [ 𝑥 ] / ( 𝑥 − 𝑥)
3

8=5+ 3 ≡3
17=5+ 5+5+ 2≡ 2
ℤ /2 ℤ
6=2+ 2+2 ≡0
−1=−(2)+1≡ 1
Polynomials are like Integers:
Irreducibles
Composites: Reducibles :

Primes: Irreducibles :
2,3,5,7,11,13,…
𝑏 0 𝑏 1 𝑏2 … 𝑏𝑛 −1
𝑏 0 𝑏 1 𝑏2 𝑏3 𝑏 4 ℤ2 [ 𝑥 ] / ( 𝑥 − 1)
5

2 3 4
𝑐 ( 𝑥 )= 𝑏0 +𝑏1 𝑥+ 𝑏2 𝑥 +𝑏3 𝑥 + 𝑏4 𝑥

𝑏 4 𝑏0 𝑏1 𝑏2 𝑏3
𝑏 0 𝑏 1 𝑏2 … 𝑏𝑛 −1 ℤ2 [ 𝑥 ] / ( 𝑥 𝑛
−1)

2 𝑛− 1
𝑐 ( 𝑥 )= 𝑏0 +𝑏1 𝑥+ 𝑏2 𝑥 +…+ 𝑏𝑛 −1 𝑥
ℤ2 [ 𝑥 ] / ( 𝑥 −1)
𝑛

Cyclic Codes
2 3
𝑐 ( 𝑥 ) ⇒ 𝑥 𝑐 ( 𝑥 ) ⇒ 𝑥 𝑐 ( 𝑥) ⇒ 𝑥 𝑐 ( 𝑥) ⇒ …

Linear Codes
ℤ2 [ 𝑥 ] / ( 𝑥 − 1)
6
ℤ2 [ 𝑥 ] / ( 𝑥 − 1)
6
ℤ2 [ 𝑥 ] / ( 𝑥 − 1)
6
ℤ2 [ 𝑥 ] / ( 𝑥 − 1)
6
Messages (k=3)

2 2
𝑥 +𝑥 𝑥 + 𝑥 +1

𝑥 𝑥+ 1

2
𝑥
2
𝑥 +1

0 1
Messages (k=3) Codewords (n=6)
𝑐 ( 𝑥 )=𝑚 (𝑥) 𝑔 ( 𝑥 )
⃗ =111110
𝑐 𝑐 ( 𝑥 )=𝑚 (𝑥) 𝑔 ( 𝑥 )
2 3 4
𝑐 ( 𝑥 )=1+ 𝑥 + 𝑥 + 𝑥 + 𝑥 𝑔 ( 𝑥 )=1+ 𝑥 3

4 3 2
𝑥 + 1 𝑥 + 𝑥 + 𝑥 + 𝑥 +1
3
⃗ =111110
𝑐 𝑐 ( 𝑥 )=𝑚 (𝑥) 𝑔 ( 𝑥 )
2 3 4
𝑐 ( 𝑥 )=1+ 𝑥 + 𝑥 + 𝑥 + 𝑥 𝑔 ( 𝑥 )=1+ 𝑥 3

1+ 𝑥+ 𝑥 + 𝑥 + 𝑥 = (1+ 𝑥 ) ( 1+ 𝑥 ) + 𝑥
2 3 4 3 2

⃗ =111110
𝑐 ⃗ =00 1 000
𝑒
⃗ =00 1 000
+𝑒
11 0 110
Cyclic (Linear) Polynomial Codes
All valid codewords must be divisible by the
generator polynomial .

Any “failure to divide” (i.e. remainder ) indicates an error.


The original message is mostly likely the quotient .

𝑐 ( 𝑥 )=𝑚 ( 𝑥 ) 𝑔 ( 𝑥 ) +𝑒 ( 𝑥)
Parity-Check Generator Matrix View Polynomial View

⃗ =𝑚
𝑐 ⃗ 𝐺 𝑐 ( 𝑥 )=𝑚 ( 𝑥 ) 𝑔 ( 𝑥 )

⃗ ⃗
𝑇
𝐻 𝑐 =0 h ( 𝑥 ) 𝑐 ( 𝑥 )=0
Parity-Check ℤ2 [ 𝑥 ] / ( 𝑥 −1)
𝑛

Polynomial
Definition: 𝑔 ( 𝑥 ) h ( 𝑥 )= ( 𝑥 − 1 ) ≡ 0
𝑛
ℤ2 [ 𝑥 ] / ( 𝑥 − 1) 𝑔 ( 𝑥 )=1+ 𝑥
6 3

𝑔 ( 𝑥 ) h ( 𝑥 )= ( 𝑥 − 1 ) ≡ 0
6

6
𝑥 +1 𝑥 −1
3
ℤ2 [ 𝑥 ] / ( 𝑥 − 1) 𝑔 ( 𝑥 )=1+ 𝑥
6 3

𝑔 ( 𝑥 ) h ( 𝑥 )= ( 𝑥 + 1 ) ≡ 0
6

3
𝑥 +1
6
𝑥 + 1 𝑥 +1
3

3
h ( 𝑥 )=1+ 𝑥

𝑚 𝐺=𝑐⃗
⃗ ⃗ =1101
𝑚 =101001𝑔
2 5 3
𝑚 ( 𝑥 ) =1+ 𝑥 + 𝑥 𝑔 ( 𝑥)= 1+ 𝑥+ 𝑥

𝑐=111000101
Word
Length
Word
Length
Word
Length
Simple Encoding:
𝑐 ( 𝑥 )=𝑚 ( 𝑥 ) 𝑔 ( 𝑥 )
Systematic Encoding
deg ⁡(𝑔 )
𝑥 𝑚 ( 𝑥 )=𝑞 ( 𝑥 ) 𝑔 ( 𝑥 ) +𝑟 ( 𝑥
deg ⁡(𝑔)
𝑐 ( 𝑥 )= 𝑥 𝑚 ( 𝑥 ) +𝑟 ( 𝑥)
Simple Encoding:
𝑐 ( 𝑥 )=𝑚 ( 𝑥 ) 𝑔 ( 𝑥 )
Systematic Encoding (common with CRCs)
(𝑛 −𝑘 )
𝑥 𝑚 ( 𝑥 )=𝑞 ( 𝑥 ) 𝑔 ( 𝑥 ) +𝑟 ( 𝑥
(𝑛 − 𝑘)
𝑐 ( 𝑥 )= 𝑥 𝑚 ( 𝑥 ) +𝑟 ( 𝑥 )
Polynomials are like Integers
Integer Division Polynomial Division

Integer Modular Arithmetic Polynomial Modular Arithmetic

Prime Numbers Irreducible Polynomials


2 , 3 , 5 , 7 ,11 ,13 …
𝑏 0 𝑏 1 𝑏2 … 𝑏𝑛 −1

Codewords of length
Cyclic (Linear) Codes
• Any circular shift of a valid codeword is another valid codeword
• We normally only care about cyclic codes that are also linear

Multiplication by = Circular Shift


2 3
𝑐 ( 𝑥 ) ⇒ 𝑥 𝑐 ( 𝑥 ) ⇒ 𝑥 𝑐 ( 𝑥) ⇒ 𝑥 𝑐 ( 𝑥) ⇒ …

another valid codeword


Generator Polynomial
• Can generate the entire code through circular shifts & addition
3
𝑔 ( 𝑥 )=1+ 𝑥 100100
( 1+ 𝑥 + 𝑥 ) 𝑔 ( 𝑥 )
2
Generator Polynomial
• Can generate the entire code through circular shifts & addition
3
𝑔 ( 𝑥 )=1+ 𝑥 100100
100100
010010
+ 001001
2
1+ 𝑥+ 𝑥 + 𝑥 + 𝑥 + 𝑥
3 4 5
111111
Simple Encoding:
𝑐 ( 𝑥 )=𝑚 ( 𝑥 ) 𝑔 ( 𝑥 )
Systematic Encoding (common with CRCs)
(𝑛 −𝑘 )
𝑥 𝑚 ( 𝑥 )=𝑞 ( 𝑥 ) 𝑔 ( 𝑥 ) +𝑟 ( 𝑥
(𝑛 − 𝑘)
𝑐 ( 𝑥 )= 𝑥 𝑚 ( 𝑥 ) +𝑟 ( 𝑥 )
Parity Check Polynomial

𝑔 ( 𝑥 ) h ( 𝑥 )= ( 𝑥 − 1 ) ≡ 0
𝑛
Next: (Cyclic) Reed-Solomon Codes

Pick with any

You might also like