UNIVERSITÀ DEGLI STUDI DI UDINE
DIEGM DIPARTIMENTO DI INGEGNERIA ELETTRICA, GESTIONALE E MECCANICA
PrincipiPrincipi di di TeoriaTeoria deidei CodiciCodici
Andrea Tonello
e-mail: [email protected]
http://www.diegm.uniud.it/tlc/tonello
Udine, 24 Febbraio 2005
2DIEGM UNIVERSITÀ DEGLI STUDI DI UDINE
Sommario
Approcci alla Codifica di Canale
Codici a Blocco
Prestazioni Codici a Blocco
Codici Convoluzionali
Bibliografia:
– J. Proakis, Digital Communications
– S. Lin, D. Costello, Error Control Coding
3DIEGM UNIVERSITÀ DEGLI STUDI DI UDINE
Modello Sistema di Comunicazione
CodificatoreSorgente
CodificatoreCanale
ModulatoreNumerico
Canale
De-Modul.De-Cod.Canale
De-Cod.Sorgente
• Lo scopo della Codifica di Canale e` di consentire la correzione e/o rivelazione deglierrori introdotti dal canale.
4DIEGM UNIVERSITÀ DEGLI STUDI DI UDINE
Codifica di Canale
Codificatoreb c
• Idea: Introdurre ridondanza in trasmissione, ad. es. ripetere l’informazione.
• Il codificatore attua una trasformazione dalle parole di ingresso b alle parole di uscitac con una certa legge:
b=[…,bi, bi+1,…] → c=[…,ci, ci+1,…]
• Alfabeto: il campo cui appartengono gli elementi delle parole di ingresso, ad. es. GF(2).
• Codice: insieme delle parole codificate.
• Rate: rapporto tra numero di simboli di ingresso e quello di uscita (<1).
5DIEGM UNIVERSITÀ DEGLI STUDI DI UDINE
Approcci alla Codifica di Canale
• Codici Algebrici a Blocco
• Codici Convoluzionali
• Codifica e Modulazione Congiunta
– Modulazione codificata a traliccio (TCM)
• Turbo Codici
6DIEGM UNIVERSITÀ DEGLI STUDI DI UDINE
Codici a Blocco
7DIEGM UNIVERSITÀ DEGLI STUDI DI UDINE
Codici a Blocco
• Codice a blocco (n, k):
– Parole (Vettori) di ingresso hanno lunghezza k : b=[b1,…,bk]
– Parole di uscita hanno lunghezza n>k : c=[c1,…,cn]
– Alfabeto e` q-ario e le operazioni sono definite su un campo finito GF(q) con q primo o potenza di un
numero primo.
– Se q e` primo, l’algebra e` modulo q.
• Definizione: e` un insieme di qk parole di n elementi.
• Codice Lineare: se c1 e c2 sono di codice allora ac1 + bc2=c3 e` di codice.
– La parola nulla appartiene al codice.
8DIEGM UNIVERSITÀ DEGLI STUDI DI UDINE
Matrice di Codice
• Matrice di Codice . Elementi appartenti a GF(q)1 n 1 k k n× × ×=c b G
• Le k righe di G sono vettori linearmente indipendenti e sono di codice.
• I vettori di codice appartengono al sottospazio k-dimensionale generato dalle righe di G.
• Forma sistematica
+= k 1 n[ |c ,...,c ]c b11 1n k
k1 kn k
1 ... 0 p ... p... ... ... ... ... ...0 ... 1 p ... p
[ | ]
−
−
⎡ ⎤⎢ ⎥⎢ ⎥= ⎢ ⎥⎢ ⎥⎣ ⎦
=
G
I P
9DIEGM UNIVERSITÀ DEGLI STUDI DI UDINE
Matrice di Controllo Parita`
• Matrice di Controllo Parita`
( ) ( )Tk (n k)k n (n k) n × −× − ×=G H 0
• Le n-k righe di H sono vettori linearmente indipendenti e generano il codice duale (n-k,n)
• Le parole del codice duale sono ortogonali a quelle del codice (n,k)
• Se il codice e` in forma sistematica:
T
kn k
[ | ] −
⎡ ⎤−⎢ ⎥ =⎢ ⎥⎣ ⎦GH
PI P 0
I
Tn k−
⎡ ⎤= −⎣ ⎦H P I
10DIEGM UNIVERSITÀ DEGLI STUDI DI UDINE
Matrice di Controllo Parita`
• Matrice di Controllo Parita`ci consente di verificare se un vettore e` di codice
T 0 se c0 se c
⎧= ∈⎪⎪⎨⎪≠ ∉⎪⎩cH
• Vettore Sindrome:T
1 (n k)× −=s cH
• Assumendo il codice binario abbiamo:
– 2k vettori di ingresso e di codice.
– 2n possibile vettori di dimensione n, quindi 2n -2k non sono di codice.
– 2n-k sindromi.
11DIEGM UNIVERSITÀ DEGLI STUDI DI UDINE
Distanza e Peso di Hamming
• Distanza di Hamming: numero di simboli di cui differiscono due parole con alfabeto q-ario
H 1 2d ( , )r r
• Peso di Hamming: numero di simboli diversi da zero
H 1w ( )r
• Vale la seguente: H 1 2 H 1 2d ( , ) w ( )= −c c c c
12DIEGM UNIVERSITÀ DEGLI STUDI DI UDINE
Distanza Minima
• Distanza Minima di Hamming: e` la minima distanza tra parole di codice
{ }1 2
H,min H 1 2,d min d ( , )=
c cc c
• In un codice lineare la distanza minima e` pari al peso minimo:
H,min H,mind w=
{ }
{ }
{ }
1 2
1 2
H,min H 1 2,
H 1 2,
H
d min d ( , )
min w ( )
min w ( )≠
=
= −
=
c c
c c
c 0
c c
c c
c
Dim:
13DIEGM UNIVERSITÀ DEGLI STUDI DI UDINE
Singleton Bound
• Bound di Singleton: In un codice lineare a blocco
H,mind n k 1≤ − +
• Codici a massima distanza verificano
H,mind n k 1= − +
Dim: Basta pensare alla forma sistematica.
• Gli unici codici binari a massima distanza sono quelli ripetitivi altrimenti ci sono quelli di
Reed Solomon su GF(q).
14DIEGM UNIVERSITÀ DEGLI STUDI DI UDINE
Esempi di Codici Lineari a Blocco
• Codici di Hamming.
• Codici di Hadamard.
• Codici BCH (Bose, Chaudhuri, Hocquenghem) e di Reed Solomon .
15DIEGM UNIVERSITÀ DEGLI STUDI DI UDINE
Codici di Hamming Binari
• (n,k) = (2m-1,2m-1-m) m>1 intero n-k=m
• La matrice H ha le n colonne ottenute prendendo tutti i vettori di m elementi binari
escluso il vettore nullo.
• Codice di Hamming (7,4)
Tn k
1 0 1 1 |1 0 0[ | ] 1 1 0 1 | 0 1 0
0 1 1 1 | 0 0 1−
⎡ ⎤⎢ ⎥⎢ ⎥= = ⎢ ⎥⎢ ⎥⎣ ⎦
H P I
k
1 0 0 0 0 1 10 1 0 0 1 1 0
[ | ]0 0 1 0 1 0 10 0 0 1 1 1 1
⎡ ⎤⎢ ⎥⎢ ⎥⎢ ⎥= = ⎢ ⎥⎢ ⎥⎢ ⎥⎣ ⎦
G I P
• Il peso minimo e` uguale a 3
16DIEGM UNIVERSITÀ DEGLI STUDI DI UDINE
Codici di Hadamard
• (n,k) = (2m,m+1) m>1 intero
• Si ottengono dalle matrici di Hadamard cosi` definite
2 22 4
22
M M0 0M M
0 1 M M
⎡ ⎤⎡ ⎤ ⎢ ⎥⎢ ⎥= = ⎢ ⎥⎢ ⎥⎣ ⎦ ⎣ ⎦
• L’insieme delle parole di lunghezza n=4 ottenute dalle 4+4 righe di e di
sono un codice a blocco lineare con k=3 e peso minimo dmin=n/2=2
4M 4M
17DIEGM UNIVERSITÀ DEGLI STUDI DI UDINE
Codici BCH e Reed Solomon
• Binari (n,k) hanno parametri
– n=2m-1
– n-k ≤ mt con m≥3 t≥1
– dmin=2t+1
• Reed Solomon sono una sottoclasse non binaria.
18DIEGM UNIVERSITÀ DEGLI STUDI DI UDINE
Modello di Canale
19DIEGM UNIVERSITÀ DEGLI STUDI DI UDINE
Modello di Canale
Canale
EquivalenteCodificatore De-Codificatore
bb c y
• Modulatore – Canale – Demodulatore possono essere visti come un blocco equivalente.
• Bisogna definire la relazione ingresso-uscita. Essa dipende dal tipo di modulazione e
demodulazione/decodifica:
– Demodulazione/Decodifica Congiunta.
– Demodulazione/Decodifiva disgiunta:
• HARD
• SOFT
20DIEGM UNIVERSITÀ DEGLI STUDI DI UDINE
Modello di Canale
• Alfabeto di codice binario, Modulazione 2-PAM, Rumore Additivo Gaussiano Bianco
= +i S i iy E x n i i
i
i
i 0
x 2c 1c {0,1} x { 1, 1}n N(0,N / 2) ed indip.
= −∈∈ + −=
• In forma vettoriale possiamo raccogliere le n osservazioni in un vettore e scrivere
SE= +y x n
• C’e` una relazione biunivoca tra c ed x
2 1= −x c
21DIEGM UNIVERSITÀ DEGLI STUDI DI UDINE
Decodifica Soft
22DIEGM UNIVERSITÀ DEGLI STUDI DI UDINE
Decodifica Ottima a Massima Verosimiglianza
• Il decodificatore ML decide per la parola di codice che massimizza la densita` di probabilita`
del vettore ricevuto condizionata dal vettore trasmesso:
i i
2i S i
0
2S
0
n
| Y|X i ii 1
1n (y E x )N
i 1 0
1 || E ||Nn / 2
0
p ( | ) p (y | x )
1 eπN
(πN ) e
=
− −
=
− −
=
=
=
∏
∏
Y X
y x
y x
• Il decodificatore ML decide per il vettore di codice che e` a distanza Euclidea minima dal
vettore ricevuto
2Sˆ argmin{|| E || }
∈= −
xx y x
n2 2
S i S ii 1
|| E || (y E x )=
− = −∑y x
23DIEGM UNIVERSITÀ DEGLI STUDI DI UDINE
Probabilita` Errore con Decodifica Soft
i
e
i i
ˆ ˆP P[ ] P[ ]ˆP[ ]P[ | ]
∈
= ≠ = ≠
= = ≠ =∑x
c c x xx x x x x x
ij i ij ijj j
ˆP[E ] P[ | ] P[ E ] P[E ]≤ ≠ = = ≤∑x x x x ∪
ij j iˆE { }= = ≠ =x x x x
24DIEGM UNIVERSITÀ DEGLI STUDI DI UDINE
Probabilita` Errore a Coppie
ij i j
E S E S
2 2S
2 TS S
ˆP[E ] P[ ]
ˆP[d ( , E ) d ( , E )]
ˆP[|| E ( ) || || || 0]
ˆ ˆP[E || || 2 E ( ) 0]
= = → =
= <
= − + − <
= − − − <
x x x x
y x y x
x x n n
x x x x n
20 S ˆ2N E || ||−x xV.a. gaussia a media nulla e varianza:
2 2S S E
ij0 0
ˆ ˆE || || E d ( , )P[E ] Q Q2N 2N
⎛ ⎞ ⎛ ⎞− ⎟ ⎟⎜ ⎜⎟ ⎟⎜ ⎜= =⎟ ⎟⎜ ⎜⎟ ⎟⎜ ⎜⎟ ⎟⎝ ⎠ ⎝ ⎠
x x x x
Q(a) distribuzione gaussiana complementare
25DIEGM UNIVERSITÀ DEGLI STUDI DI UDINE
Probabilita` Errore Condizionata
j i
j i
i ijj
2S E i j
ˆ 0
2S E,min
ˆ 0
2S E,mink
0
ˆP[ | ] P[E ]
ˆE d ( , )Q
2N
E dQ
2N
E d(2 1)Q
2N
≠
≠
≠ = ≤
⎛ ⎞⎟⎜ ⎟⎜≤ ⎟⎜ ⎟⎜ ⎟⎜⎝ ⎠⎛ ⎞⎟⎜ ⎟⎜≤ ⎟⎜ ⎟⎜ ⎟⎜⎝ ⎠
⎛ ⎞⎟⎜ ⎟⎜≤ − ⎟⎜ ⎟⎜ ⎟⎜⎝ ⎠
∑
∑
∑
x x
x x
x x x x
x x
E,min 1 2,1 2d min {|| ||}
∈= −
x xx x
Minima distanza Euclidea tra parole di codice 2-PAM
26DIEGM UNIVERSITÀ DEGLI STUDI DI UDINE
Probabilita` Errore
i
i
e i i
2S E,mink
i0
2S E,mink
0
ˆP P[ ]P[ | ]
E d(2 1) P[ ]Q
2N
E d(2 1)Q
2N
∈
∈
= = ≠ =
⎛ ⎞⎟⎜ ⎟⎜≤ − = ⎟⎜ ⎟⎜ ⎟⎜⎝ ⎠⎛ ⎞⎟⎜ ⎟⎜≤ − ⎟⎜ ⎟⎜ ⎟⎜⎝ ⎠
∑
∑
x
x
x x x x x x
x x
2 2S E,min S E,mink
e0 0
E d E dLQ P (2 1)Q
2N 2N
⎛ ⎞ ⎛ ⎞⎟ ⎟⎜ ⎜⎟ ⎟⎜ ⎜≤ ≤ −⎟ ⎟⎜ ⎜⎟ ⎟⎜ ⎜⎟ ⎟⎜ ⎜⎝ ⎠ ⎝ ⎠E,min
k
n. parole a dL 1
2= ≤Pe blocco
2 2S E,min S E,mink
b0 0
E d E dL Q P (2 1)Qk 2N 2N
⎛ ⎞ ⎛ ⎞⎟ ⎟⎜ ⎜⎟ ⎟⎜ ⎜≤ ≤ −⎟ ⎟⎜ ⎜⎟ ⎟⎜ ⎜⎟ ⎟⎜ ⎜⎝ ⎠ ⎝ ⎠Pe bit
27DIEGM UNIVERSITÀ DEGLI STUDI DI UDINE
Confronto Sistema Codificato e Non Codificato
b H.minb,COD
0
2E RdP QN
⎛ ⎞⎟⎜ ⎟= ⎜ ⎟⎜ ⎟⎜⎝ ⎠b
b,UNCOD0
2EP QN
⎛ ⎞⎟⎜ ⎟= ⎜ ⎟⎜ ⎟⎜⎝ ⎠
E,min H,mind 2d= b S SE E /R E n /k= =
Per mantenere la velocita` di TX ugualebisogna incrementare la banda di 1/R H,minG Rd=
G 3 4 / 7 2.34 dB= × =Esempio: Hamming (7,4)
28DIEGM UNIVERSITÀ DEGLI STUDI DI UDINE
Canale Binario Simmetrico
29DIEGM UNIVERSITÀ DEGLI STUDI DI UDINE
Modello di Canale Binario Simmetrico (BSC)
Decodifica hard: operiamo la demodulazione ottenendo un canale equivalente binario
1-p
i iy r {0,1}→ ∈
be
0
2Ep P QN
⎛ ⎞⎟⎜ ⎟= = ⎜ ⎟⎜ ⎟⎜⎝ ⎠
0 0
p
1 1
• Probabilita` di transizione (con trasmissione 2-PAM) e`
30DIEGM UNIVERSITÀ DEGLI STUDI DI UDINE
Decodifica ML in Canale BSC
• In forma vettoriale abbiamo per il canale binario simmetrico senza memoria
• Decodifica ML hard: massimizziamo la probabilita
= +r c e
H H
n
i ii 1
n
i i i ii 1
ˆ ˆ ˆ ˆw ( ) n w ( )
ˆ ˆ ˆ ˆP[ | ] P[r r | c c ]
ˆ ˆ ˆP[e r c | c c ]
p (1 p)
=
=
− − −
= = = = =
= = − =
= −
∏
∏r c r c
r r c c
Se p<1/2, decidiamo per il vettore di codice a distanza di Hamming minima
Hˆ argmin{d ( , )}∈
=c
c r c
31DIEGM UNIVERSITÀ DEGLI STUDI DI UDINE
Correzione
• Con decodifica Hard possiamo correggere tutti i pattern di errore di peso minore uguale di
H,min1t (d 1)2⎢ ⎥⎢ ⎥= −⎢ ⎥⎣ ⎦
– Puo` accadere che correggiamo errori di peso > t
32DIEGM UNIVERSITÀ DEGLI STUDI DI UDINE
Rivelazione
• Con decodifica Hard possiamo rivelare tutti i pattern di errore di peso minore uguale di
H,mind 1−
• Con la decodifica a sindrome, un pattern di errore di peso dH,min-1 non puo` trasformare
la parola originaria in un’altra parola di codice.
• Tuttavia possiamo anche rivelare pattern errore di peso maggiore di dH,min-1 poiche`:
– 2k di codice e 2n ricevute
– 2n-2k non sono di codice quindi rivelabili via decodifica a sindrome
– 2n -2n+2k = 2k non sono rivelabili
– Frazione di non rivelabili e` piccola: (2k – 1) /( 2n – 1) ~ 2k-n
33DIEGM UNIVERSITÀ DEGLI STUDI DI UDINE
Probabilita` di Errore
• Con decodifica Hard possiamo correg. tutti i pattern di errore di peso minore uguale di t
ni n i
ei t 1
nP (blocco) P[w( ) t] p (1 p)
i−
= +
⎛ ⎞⎟⎜≤ > = −⎟⎜ ⎟⎜⎝ ⎠∑e
• Tipicamente la decodifica Hard differisce per 1-2 dB da quella Soft in termine di Eb/No
per ottenere la stessa Pe.
34DIEGM UNIVERSITÀ DEGLI STUDI DI UDINE
Codici Convoluzionali
35DIEGM UNIVERSITÀ DEGLI STUDI DI UDINE
Codice Convoluzionale
• Un codificatore convoluzionale e` una macchina a stati finiti lineare.
• Codice convoluzionale binario di rate k/n genera ogni k bit d’ingresso n bit di uscitacombinando modulo 2 i contenuti di uno shif register di lunghezza kK:
1 2 … k 1 2 … k 1 2 … k
1 2 K
+ + +
bi
ci1
cin
• Gli shift sono k bit d’ingresso alla volta.• K e` detta constraint length (lunghezza di vincolo).
36DIEGM UNIVERSITÀ DEGLI STUDI DI UDINE
Codice Convoluzionale Binario 1/n
1 2 K=3
+
+
bi
ci1
ci2
• Esempio rate ½ e K=3
• Viene descritto da una sequenza generatrice (detta polinomio di codice)
(1)
(2)
[101] [5] in ottale[111] [7] in ottale
= →= →
gg
(n) (n)ic b g (i)= ⊗
• Ciascuna uscita puo` essere ottenuta da un filtraggio modulo 2
37DIEGM UNIVERSITÀ DEGLI STUDI DI UDINE
Diagramma a Traliccio (Trellis)
• Ingresso-uscita puo` essere rappresentata da un traliccio
00
01
10
11
0/00
1/11
stato transizioni ingresso/uscite
• Numero di stati uguale a 2K-1
• Numero di rami entranti/uscenti per stato uguale a 2 (rate 1/n)
• Lungezza del traliccio uguale al numero totale di bit di ingresso
• Se il codice e` terminato si parte dallo stato 0 e si ritorna allo stato 0
38DIEGM UNIVERSITÀ DEGLI STUDI DI UDINE
Decodifica ML
• Il decodificatore soft a massima verosimiglinza cerca tra tutte le parole di codicequelle a distanza euclidea minima (con rumore AWGN).
• Se consideriamo trasmissione 2-PAM e rumore additivo bianco il modello e`:
Si i iy E x n= +2 2
S i S ii
|| E || (y E x )− = −∑y x
• Se assumiamo un codice di rate 1/n, allora
n2 2S S ni m S ni mE
i m 1BM( )i
i j ii j i
|| E || d ( , E ) (y E x )
BM( ) BM( ) BM( )
PM(i 1)
+ +=
<
− = = −
= = +
−
∑∑
∑ ∑
x
y x y x
x x x
• La distanza totale e` ottenibile come somma di Branch metrics
39DIEGM UNIVERSITÀ DEGLI STUDI DI UDINE
Algoritmo di Viterbi
• La ricerca esaustiva delle sequenza a distanza minima si ottiene con unaoperazione ricorsiva di ADD, COMPARE, SELECT sul traliccio
00
01
10
11
• Ciascun ramo puo` essere etichettato con il bit di ingresso, gli n bit di uscita, e la metrica di ramo (Branch Metric).
• Percorsi entranti in uno stesso stato (nodo) sono competitors e sopravvive solo quello con metrica di percorso (Path Metric) piu` piccola.
• Giunti alla fine del traliccio sompravviveranno un numero di percorsi pari al numerodi stati. Scelgo quello di metrica piu` piccola, da cui ottengo la sequenza di bit di ingresso (sequenza decodificata).
40DIEGM UNIVERSITÀ DEGLI STUDI DI UDINE
Conclusioni
• La codifica di canale e` essenziale per consentire comunicazioni affidabili.
• Il codice deve essere progettato in funzione dell’applicazione e del canale
trasmissivo.