Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
A.A. 2010-2011
Aceto Maria
Ronca Benedetta
13 MAGGIO 2011
Indice
Introduzione 3
1 Nozioni di base 5
1.1 Campi finiti . . . . . . . . . . . . . . . . . . . . . . 5
2 I codici 9
2.1 Codici lineari . . . . . . . . . . . . . . . . . . . . . 10
3 Codici ciclici 14
3.0.1 Proprietà di Rn = Fq [x]/<xn −1> . . . . . . . 14
3.0.2 Il numero dei codici ciclici . . . . . . . . . . 17
4 Codici BCH 21
4.1 Generalità sul campo GF (2n ) . . . . . . . . . . . . 21
4.2 Costruzione codici BCH . . . . . . . . . . . . . . . 23
4.2.1 Costruzione polinomio generatore . . . . . . 25
4.2.2 Correzione degli errori di un codice BCH . . 25
4.3 Codici Reed-Solomon . . . . . . . . . . . . . . . . . 31
4.3.1 Correzione degli errori nei codici Reed-Solomon 32
Bibliografia 34
2
Introduzione
3
• un canale di trasmissione, ovvero un mezzo fisico attraver-
so il quale il messaggio viene trasmesso che puó alterare il
messaggio;
4
Capitolo 1
Nozioni di base
5
rispetto a questa relazione. Gli elementi di Zp [x]/<f (x)> sono le
classi di equivalenza modulo la relazione data e una classe di equi-
valenza
g(x) = {g(x) + g(x)h(x)|h(x) ∈ Zp [x]}
• un’operazione di prodotto ·
• un’operazione di somma +
6
- associativa
∀a, b ∈ GF (q) ⇒ a + b + c = (a + b) + c = a + (b + c) ;
Osservazione 1.
E’ possibile costruire un campo di Galois con q elementi ⇔ q è
un numero primo oppure una potenza intera di un numero primo.
Inoltre se ∃ un campo di Galois con q elementi allora tale campo è
unico, ossia tutti gli altri campi di Galois con q elementi differiscono
solo per il nome dei simboli. Si dimostra che dato un numero primo
q si può costruire un campo di Galois GF (q) = Fq se
7
Per esempio il campo dei numeri reali è un’estensione dei numeri
razionali.
8
Capitolo 2
I codici
9
Esempio: A = Z2
n = 4 (rappresenta la lunghezza delle parole)
prendo x(0, 1, 1, 0) e y(0, 0, 0, 1)
allora la distanza di Hamming è data da dH (x, y) = 3.
d = min{dH (x, y) : x, y ∈ C, x 6= y}
10
primo. Inoltre sappiamo che se ∃ un campo di Galois con q elementi
allora tale campo è unico. Possiamo inoltre definire GF (q)n = Fnq
come spazio vettoriale n−dimensionale sopra Fq .
• d è la distanza minima;
dH (x, y) = wH (x − y).
w = min{wH (x) : x ∈ C e x 6= 0}
11
Definizione 2.11. Sia C un codice lineare di lunghezza n e dimen-
sione k in Fnq e sia x = (x1 , . . . xn ) una parola codice. H matrice di
dimensione (n − k) × n di rango massimo n − k si chiama matrice
di controllo di parità di C se
x
1
..
H · . = H · xT = 0 ∀x ∈ C.
xn
H = −M T |In−k .
12
Osservazione 2.
S è un vettore quindi può verificarsi uno dei due casi:
Osservazione 3.
Sia y ∈ Fnq e C un [n, k]−codice lineare. Allora S(y) = 0 ⇔ y ∈ C.
13
Capitolo 3
Codici ciclici
che lo genera.
Osservazione 4.
Sia < xn − 1 > l’ideale di Fq [x] generato dal polinomio xn − 1, de-
notiamo con Rn = Fq [x]/<xn −1> l’anello quoziente di Fq [x] rispetto
all’ideale < xn − 1 >.
14
f (x)+ < xn − 1 >, con f (x) ∈ Fq [x]
4. Ogni ideale di Rn è del tipo < f (x) >/<xn −1> , dove f (x) ∈
Fq [x] divide < xn − 1 >.
15
Osservazione 5.
Sia Fq = GF (q) un campo con q elementi e sia C un codice ciclico
con alfabeto Fq . Una parola codice a = (a0 , a1 , ..., an−1 ) ∈ Fnq si
può identificare con il polinomio
Osservazione 6.
Se si riguarda Rn = Fq [x]/<xn −1> come spazio vettoriale su Fq allora
la biiezione
a ∈ Fnq 7→ a(x) ∈ Rn
16
è an−1 + a0 x + a1 x2 + . . . + an−2 xn−1 ∈ Rn ed è la corrispondente
parola an−1 , a0 , a1 , . . . , an−2 che è lo shift di a = (a0 , . . . , an−1 ).
Dimostrazione. ⇒
C è lineare e ciclico, C(x) è sottospazio vettoriale di Rn e
∀a(x) ∈ C(x) e q(x) = q0 + q1 x + ... + qn−1 xn−1 ∈ Rn se moltiplico
q(x)a(x) = (q0 + q1 x + ... + qn−1 xn−1 )(a0 + a1 x + ... + an−1 xn−1 ) =
q0 a0 +q0 a1 x+...+qn−1 an−1 xn−1 +q1 xa0 +q1 xa1 x+...+q1 xan−1 xn−1 +
...+qn−1 xn−1 a0 +...+qn−1 an−1 xn = q0 a(x)+q1 xa(x)+...+qn−1 xn−1 a(x).
Dato che qi ∈ Fq che è un campo, per la definizione di sottospazio
vettoriale, q(x)a(x) ∈ C(x) perchè per l’osservazione 4 ottengo che
xs a(x) ∈ C(x), ∀s > 0.
⇐
Se C(x) è un ideale di Rn , allora C è sottospazio vettoriale di Fnq
e, per ogni parola a ∈ C ho che xa(x) è un elemento di C(x); cioè
C(x) è ciclico.
17
2. Se xn − 1 possiede s fattori irriducibili distinti in Fq [x], il
numero degli [n, k]−codici ciclici su Fq è 2s , in tale numero
essendo compresi anche il codice nullo {0} e Fnq .
x4 − 1 = (x − 1)(x + 1)(x2 + 1)
xn − 1 = c(x)h(x)
18
Dimostrazione. Le righe di Gc sono indipendenti e sono parole di
C perchè i polinomi corrispondenti sono
a(x) = q(x)c(x).
Dimostrazione. ⇒
Se a ∈ C ⇒ a(x) ∈ C(x) ⇒ ∃ un polinomio q(x) di grado minore
di n − m tale che
a(x) = q(x)c(x).
19
Moltiplico per h(x):
a(x)h(x) = q(x)c(x)h(x) = q(x)(xn − 1) = 0 in Rn .
⇐
Ora, per a(x) ∈ Fq [x], con deg (a) < n, sia a(x)h(x) = 0 in Rn e
sia a(x) = q(x)c(x) + r(x) con r(x) di grado minore di m = n − k.
Allora moltiplico per h(x):
q(x)c(x)h(x) + r(x)h(x) = 0
20
Capitolo 4
Codici BCH
21
Definizione 4.4. Sia f (x) ∈ F [x]. Un’estensione finita E di F si
dice campo di spezzamento su F di f (x) se f (x) si fattorizza su E
in fattori lineari, e ciò non avviene su un sottocampo proprio di E.
22
Ricordiamo inoltre la seguente definizione:
f (x) = xm − 1 ∈ Z2 [x]
23
L’insieme definito è uno spazio vettoriale in R di dimensione m −
deg g(x). Quindi i polinomi di C formano le parole codice di un
[m, m − deg g(x)]−codice lineare di R e il numero di tali parole è
2m−deg g(x)
. Il polinomio g(x) è il polinomio generatore del codice
C. Le parole del codice C possono essere considerate di lunghezza
m considerando che ogni parola è un polinomio di grado minore di
m e, quindi, è la somma di m monomi. Una parola c(x) ∈ Z2 [x] può
essere associata ad un vettore di Zm
2 le cui entrate sono i monomi
{x3 + x + 1, x4 + x2 + x, x5 + x3 + x2 , x6 + x4 + x3 }.
24
4.2.1 Costruzione polinomio generatore
ai = ai per i = 1, ..., s.
Dimostrazione. ⇒
Sia wi (x) il polinomio minimo di ai in Z2 [x], per i = 1, . . . s e
25
sia g(x) il minimo comune multiplo dei polinomi wi (x) in Z2 [x].
Se c(x) ∈ C allora c(x) = g(x)h(x) con h(x) ∈ Z2 [x]. Perciò
c(ai ) = g(ai )h(ai ) = 0h(ai ) = 0
⇐
c(ai ) = 0 per i = 1, . . . s ⇒ wi (x)|c(x) per i = 1, . . . s allora
g(x)|c(x) ⇒ c(x) = g(x)h(x) allora c(x) ∈ C.
26
per opportuni interi positivi m1 < m2 < · · · < mp , con p ≤ t e
mp < 2n − 1. Cerchiamo ora di trovare il polinomio errore e(x)
calcolando le prime 2t sindromi del polinomio r(x):
r1 = r(a) = e(a) = am1 + am2 + . . . + amp
r2 = r(a2 ) = e(a2 ) = (a2 )m1 + (a2 )m2 + . . . + (a2 )mp
..
.
r2t = r(a2t ) = e(a2t ) = (a2t )m1 + (a2t )m2 + . . . + (a2t )mp
X
σ1 = am i
1≤i≤p
X
σ2 = ami amj
1≤i≤j≤p
..
.
27
(am1 )i E(am1 ) = (am1 )i (am1 )p + (am1 )p−1 σ1 + . . . + σp = 0
(am2 )i E(am2 ) = (am2 )i (am2 )p + (am2 )p−1 σ + . . . + σ = 0
1 p
.
..
(amp )i E(amp ) = (amp )i (amp )p + (amp )p−1 σ + . . . + σ = 0
1 p
Da qui otteniamo
(am1 )i+p + (am1 )i+p−1 σ1 + . . . + (am1 )i σp = 0
..
.
(amp )i+p + (amp )i+p−1 σ + . . . + (amp )i σ = 0
1 p
28
Se la matrice precedente p × p è non singolare allora il sistema am-
mette una ed una sola soluzione per σ1 , . . . , σp incognite. Una volta
trovata tale soluzione ci costruiamo il polinomio localizzatore degli
errori E(z). Troviamo le radici z1 , . . . , zp di
E(z) = (z −am1 )(z −am2 )·. . .·(z −amp ) = z p +σ1 z p−1 +. . .+σp = 0.
Sia r(x) = b0 +b1 x+. . .+bm−1 xm−1 ∈ Z2 [x], sia b = (b0 , b1 , . . . , bm−1 )
e siano r1 , r2 , . . . , r2t le prime 2t sindromi del polinomio r(x). Allo-
ra è facile verificare che H ◦ bt = (r1 , r2 , . . . , r2t )t . Infatti il prodotto
della riga i−esima di H per bt è:
2 m−1
b0 + b1 ai + b2 (ai ) + . . . + bm−1 (ai ) = r(ai ) per i = 1, . . . , 2t.
Perciò r(x) ∈ C ⇔ H ◦ bt = 0. Quindi H può essere utilizzata
come matrice di controllo di parità per il codice C. Dimostriamo
29
adesso che il numero minimo di colonne H linearmente indipenden-
ti è esattamente 2t + 1. Comunque si scelgono 2t colonne in H,
esse devono essere linearmente indipendenti. Scegliamo dunque 2t
interi Jh tali che 0 ≤ J1 < J2 < . . . < J2t < m. Allora le colonne
di H corrispondenti a tali interi formano la seguente matrice di di-
mensione 2t × 2t
aJ1 aJ 2 ··· aJ2t
2 J1 2 J2 2 J2t
···
(a ) (a ) (a )
..
.
J1 J2 J2t
a2t (a2t ) ··· (a2t )
30
4.3 Codici Reed-Solomon
Una classe di codici BCH è costituita dai codici di Reed-Solomon.
Essi sono codici correttori di errori ideali, cioè riescono a correggere
esplosioni di errori. Una parola contiene un’esplosione di errori se
contiene errori molto vicini tra loro nella successione di simboli che
formano la parola ricevuta.
Scegliamo un polinomio primitivo p(x) di grado n in Z2 [x] e
costruiamo il campo finito F2n = Z2 [x]/<p(x)> . Le parole codice di
un codice RS sono quindi polinomi di grado minore di 2n − 1.
La costruzione di un codice RS t−error correcting
Usiamo il seguente polinomio generatore
31
4.3.1 Correzione degli errori nei codici Reed-
Solomon
32
riga in cui si verifica deg(rj ) < t. Poniamo quindi R(z) = rj
e V (z) = vj .
33
Bibliografia
34
[8] Sloane
A short course on error-correcting codes
SPRINGER
[9] R.Hill
A first course in coding theory
CLARENDON PRESS-OXFORD
35