Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
4. CODICI A RIVELAZIONE E
CORREZIONE D’ERRORE
! INTRODUZIONE
! TIPOLOGIE DI CODICI
! CODICI A BLOCCHI
! CODICI A RIPETIZIONE
! DISTANZA DI HAMMING
295
Trasmissione Numerica Università di Trento
4. CODICI A RIVELAZIONE E
CORREZIONE D’ERRORE
! CODICI SISTEMATICI
! CODICE DI HAMMING
! DECODIFICA A SINDROME
! CODICI CICLICI
! CODICI CONVOLUZIONALI
! DECODIFICA DI VITERBI
! DECODIFICA SEQUENZIALE
296
Trasmissione Numerica Università di Trento
INTRODUZIONE AI CODICI A
CONTROLLO D’ERRORE
ϒ Un sistema di telecomunicazione reale è soggetto ad errori di
trasmissione dovuti alla presenza di rumore sul canale.
297
Trasmissione Numerica Università di Trento
INTRODUZIONE AI CODICI A
CONTROLLO D’ERRORE
ϒ Nello studio della teoria dell’informazione, abbiamo visto che, se
l’information rate R è inferiore alla capacità del canale, è possibile
rendere arbitrariamente piccola la probabilità d’errore sui bit di
informazione utilizzando opportune tecniche di codifica di canale.
INTRODUZIONE AI CODICI A
CONTROLLO D’ERRORE
299
Trasmissione Numerica Università di Trento
300
Trasmissione Numerica Università di Trento
STRATEGIA AUTOMATIC
REPEAT AND REQUEST (ARQ)
301
Trasmissione Numerica Università di Trento
STRATEGIA AUTOMATIC
REPEAT AND REQUEST (ARQ)
ϒ Go Back N;
ϒ Selective Repeat.
302
Trasmissione Numerica Università di Trento
STRATEGIA FORWARD
ERROR CORRECTION (FEC)
bit di informazione
bit di informazione
Codificatore Tx Canale Rx Decod.
303
Trasmissione Numerica Università di Trento
CODICI: DEFINIZIONI
ϒ Si definiscono:
ϒ capacità di rivelazione di un codice il numero massimo di
errori che esso riesce a rivelare in una parola di codice.
304
Trasmissione Numerica Università di Trento
TIPOLOGIE DI CODICI
305
Trasmissione Numerica Università di Trento
TIPOLOGIE DI CODICI
CODICI
A BLOCCHI CONVOLUZIONALI
306
Trasmissione Numerica Università di Trento
TIPOLOGIE DI CODICI
CODICI A BLOCCHI (n,k)
k q k q
307
Trasmissione Numerica Università di Trento
TIPOLOGIE DI CODICI
CODICI CONVOLUZIONALI
0 0 1 0 11 0 10 011 1 0 11 0 1 0 1 1 1 0 1 1 0 01 1 0 11 1 0
308
Trasmissione Numerica Università di Trento
ϒ codici a ripetizione;
309
Trasmissione Numerica Università di Trento
CODICI A RIPETIZIONE
CODICI A RIPETIZIONE
n i n i
P (i, n ) = α (1 − α ) ≅ α
n −i
i i
ϒ I codici a ripetizione sono efficienti se α è sufficientemente
piccolo da verificare la condizione P(i+1,n) << P(i,n).
311
Trasmissione Numerica Università di Trento
0 → 000 e 1 → 111
312
Trasmissione Numerica Università di Trento
313
Trasmissione Numerica Università di Trento
ϒ Con n=3, nel caso in cui usiamo il codice per rivelare l’errore,
siamo in grado di identificare 1 o 2 errori (errori singoli o
doppi).
Pwe =P(3,3) = α3
314
Trasmissione Numerica Università di Trento
315
Trasmissione Numerica Università di Trento
316
Trasmissione Numerica Università di Trento
n n 2 n(n − 1) 2
Pwe = ∑ P (i , n ) ≅ P(2 , n ) =
2α (1 − α )n −2
≅ α
i pari 2
α<<1
ϒ Un codice a controllo di parità non ha capacità correttiva.
318
Trasmissione Numerica Università di Trento
n(n − 1) 2
Pwe ≅ α = 45 ⋅ 10−6
2
0
= 1 − (1 − α ) ≅ 1 − [1 − (n − 1)α ] = (n − 1)α = 9 ⋅ 10 3
n−1 −
319
Trasmissione Numerica Università di Trento
Rc=k/n < 1
ϒ le proprietà del codice (capacità di correzione e di
rivelazione) dipendono da come si scelgono le parole di
codice e da come tali parole sono separate nello spazio ad
n dimensioni ad esse associato.
320
Trasmissione Numerica Università di Trento
DISTANZA DI HAMMING
ϒ Esempio: X:101
d(X,Y) = 2
Y:110
CAPACITÀ RIVELATIVA
DI UN CODICE
ϒ Se si è verificato un numero di errori minore di dmin, la parola
ricevuta non è una parola prevista dal codice e quindi è possibile
rivelare gli errori.
323
Trasmissione Numerica Università di Trento
CAPACITÀ CORRETTIVA
DI UN CODICE
ϒ Se si è verificato un numero di errori minore di dmin/2, possiamo
correggere la parola ricevuta trasformandola nella parola di codice
più vicina.
324
Trasmissione Numerica Università di Trento
CAPACITÀ RIVELATIVA E
CORRETTIVA DI UN CODICE
ϒ ESEMPIO: Codice a ripetizione (3,1)
dmin ≥ l +1 l ≤ 3 –1=2
326
Trasmissione Numerica Università di Trento
CAPACITÀ RIVELATIVA E
CORRETTIVA DI UN CODICE
ϒ ESEMPIO: Codice a controllo di parità (3,2)
ϒ Distanze di Hamming:
dmin ≥ l +1 l ≤ 2 –1=1
CAPACITÀ RIVELATIVA E
CORRETTIVA DI UN CODICE
ϒ La distanza minima di un codice (e quindi la sua capacità
rivelativa e/o correttiva) dipende dal numero di bit di
ridondanza che si aggiungono.
PROPRIETÀ DI UN CODICE
A BLOCCHI
ϒ linearità;
ϒ sistematicità.
329
Trasmissione Numerica Università di Trento
CODICE LINEARE
330
Trasmissione Numerica Università di Trento
DISTANZA MINIMA IN UN
CODICE LINEARE
ϒ Definiamo peso w(X) il numero di elementi non nulli del
vettore X.
d(X,Z)=w(X+Z)
CODICE SISTEMATICO
X=(m1 m2 … mk c1 c2 … cn-k )=
=(M|C)
332
Trasmissione Numerica Università di Trento
RAPPRESENTAZIONE MATRICIALE
DEI CODICI SISTEMATICI LINEARI
ϒ La notazione matriciale è molto utile in quanto permette di determinare
le parole di codice per mezzo di una semplice moltiplicazione righe per
colonna tra matrici.
X=MG
RAPPRESENTAZIONE MATRICIALE
DEI CODICI SISTEMATICI LINEARI
ϒ La moltiplicazione matriciale righe per colonna segue le
regole classiche, con l’eccezione che si usa una somma
modulo 2 invece della somma convenzionale.
OSSERVAZIONE
CODICE DI HAMMING
q=n-k≥3; n=2q-1;
k q
Rc = = 1− q
n 2 −1
335
Trasmissione Numerica Università di Trento
CODICE DI HAMMING
dmin=3
336
Trasmissione Numerica Università di Trento
mi
Buffer
bit di
informazione
m4 m3 m2 m1
X
bit di controllo
c3 c2 c1
338
Trasmissione Numerica Università di Trento
ϒ Si può notare che il più piccolo peso w(X) non nullo vale 3.
Ciò a conferma che dmin=3.
339
Trasmissione Numerica Università di Trento
ESEMPIO
340
Trasmissione Numerica Università di Trento
DECODIFICA: MATRICE DI
CONTROLLO DI PARITÀ
ϒ Un metodo più efficiente per effettuare la decodifica e rivelare gli
errori consiste nell’utilizzare la sottomatrice P.
[ ]
def
H = P Iq
T Matrice identità di
dimensioni q× ×q
XHT = ( 0 0 0 … 0 )
341
Trasmissione Numerica Università di Trento
342
Trasmissione Numerica Università di Trento
ESEMPIO
X= ( 1 0 1 1 0 )
E=(00101)
Y= ( 1 0 0 1 1 )
343
Trasmissione Numerica Università di Trento
DECODIFICA: SINDROME
Y = X+E
X = Y+E
S=YHT=(X+E)HT = X HT +E HT= E HT
344
Trasmissione Numerica Università di Trento
PROBLEMA
345
Trasmissione Numerica Università di Trento
DECODIFICA A MASSIMA
VEROSIMIGLIANZA
ϒ La strategia nota con il nome di decodifica a massima verosimiglianza
consiste nello scegliere, tra tutti i possibili vettori E che generano la
stessa sindrome S=EHT, il vettore errore Ê più probabile.
346
Trasmissione Numerica Università di Trento
DECODIFICA A MASSIMA
VEROSIMIGLIANZA
Y + Ê = X̂
Y
yn … yk … y2 y1 In realtà ci interessano solo
… … i primi k bit in quanto sono
quelli che contengono il
Calcolo della sindrome
messaggio
S
Look-up table
Ê
347
Trasmissione Numerica Università di Trento
CODICI CICLICI
ϒ I codici ciclici sono una sottoclasse dei codici lineari a blocchi la cui
struttura consente una riduzione della complessità del codificatore e
del decodificatore anche in presenza di parole di codice caratterizzate
da elevata lunghezza.
348
Trasmissione Numerica Università di Trento
CODICI CICLICI
X=(xn-1 xn-2 … x1 x0 )
xn-1 xn-1 … x1 x0
349
Trasmissione Numerica Università di Trento
CODICI CICLICI
350
Trasmissione Numerica Università di Trento
X(p)+Z(p)=0 X(p)=Z(p)
351
Trasmissione Numerica Università di Trento
352
Trasmissione Numerica Università di Trento
dove i coefficienti gi sono tali che G(p) sia un fattore del polinomio
(pn +1).
353
Trasmissione Numerica Università di Trento
ϒ Ogni fattore di (pn +1) che ha grado q può essere utilizzato come
polinomio generatore, ma non è detto che fornisca un buon codice.
354
Trasmissione Numerica Università di Trento
355
Trasmissione Numerica Università di Trento
356
Trasmissione Numerica Università di Trento
357
Trasmissione Numerica Università di Trento
p q M (p) C(p)
= QM ( p ) +
G( p ) G( p )
[ ]
C ( p ) = p q M ( p ) mod [G ( p )]
358
Trasmissione Numerica Università di Trento
S ( p ) = [Y ( p )] mod [G ( p )]
359
Trasmissione Numerica Università di Trento
ϒ semplicità di codifica;
360
Trasmissione Numerica Università di Trento
CODICI CONVOLUZIONALI
mi ...
mi mi-1 mi-L gi ={0,1}
bit di messaggio
g0 g1 ... gL
xi
analogo ad un integrale
di convoluzione
L
= ∑ mi − j g j
xi = mi-L gL ⊕ … ⊕ mi-1 g1 ⊕ mi g0 =
j =0
361
Trasmissione Numerica Università di Trento
CODICI CONVOLUZIONALI
362
Trasmissione Numerica Università di Trento
CODICI CONVOLUZIONALI
L
x"i = ∑ mi − j g 2 , j 363
j =0
Trasmissione Numerica Università di Trento
CODICI CONVOLUZIONALI
CODICI CONVOLUZIONALI
365
Trasmissione Numerica Università di Trento
CODICI CONVOLUZIONALI:
ESEMPIO
mi-1 mi-3
bit di messaggio
mi mi-2
366
Trasmissione Numerica Università di Trento
CODICI CONVOLUZIONALI:
OSSERVAZIONI
ϒ Per ottenere una code rate Rc>1/n, in alternativa ad utilizzare k
registri, è possibile utilizzare un solo registro di lunghezza
kL+1 e fare scorrere i bit a gruppi di k.
ϒ rappresentazione ad albero;
ϒ rappresentazione a traliccio;
368
Trasmissione Numerica Università di Trento
CODICI CONVOLUZIONALI:
ESEMPIO
ϒ Consideriamo il codice convoluzionale (2,1,2) (ovvero
avente n=2, k=1, L=2) ottenuto con il seguente codificatore:
ingresso stato
mi
mi mi-1 mi-2
bit di messaggio
X = .... x'i x"i ....
369
Trasmissione Numerica Università di Trento
Stati 00
a a
a=00 11
b=10 b 11 b
00
10
c=01 c
c 01
d=11 01
d d
10
uscita
b
Stati
11 01
a=00
b=10 00 a 00 10 d 10
c=01
11 01
d=11
c
CODICI CONVOLUZIONALI:
ESEMPIO
ϒ Data una sequenza in ingresso e lo stato iniziale, è possibile
ottenere la sequenza dei bit in uscita dal codificatore
mediante l’analisi del traliccio o del diagramma degli stati.
Ingresso 1 1 0 1 1 1 0 0 1 0 0 0
Stato a b d c b d d c a b c a a
Uscita 11 01 01 00 01 10 01 11 11 10 11 00
373
Trasmissione Numerica Università di Trento
CODICI CONVOLUZIONALI:
DISTANZA LIBERA
ϒ Abbiamo visto che la capacità correttiva e/o rivelativa di un
codice a blocchi dipende dalla distanza minima del codice.
ϒ Nei codici a blocchi la distanza minima è determinata
analizzando i pesi delle parole di codice.
ϒ Nel caso di un codice convoluzionale, non essendo
individuabili delle parole di codice, si considera il peso
dell’intera sequenza X generata da una determinata
sequenza di messaggi.
ϒ Si definisce distanza libera di un codice convoluzionale la
quantità:
dl=[w(X)] min X≠(0 0 0 ….)
374
Trasmissione Numerica Università di Trento
CODICI CONVOLUZIONALI:
DISTANZA LIBERA
375
Trasmissione Numerica Università di Trento
CODICI CONVOLUZIONALI:
DISTANZA LIBERA
ϒ Consideriamo il traliccio dell’esempio precedente ed
associamo ad ogni ramo il numero di “1” che compaiono
nella sequenza codificata corrispondente:
0 0 0 0
a a a a F
2 2
2
b 1 2 b 1 2 0 b 2
1
c 0 1 c 1 c c
1 1 stato finale
1
d 1
d d
1
376
Trasmissione Numerica Università di Trento
CODICI CONVOLUZIONALI:
DISTANZA LIBERA
ϒ Consideriamo il percorso a peso minimo (non tutto nullo)
che parte dallo stato a ed arriva allo stato finale F:
0
a a a a F
2
1 2
b b b
c c c c
stato finale
d d d
ϒ Prendiamo ora in esame la sequenza di ingressi X che
permette di ottenere la sequenza di stati aaaa…abcF.
377
Trasmissione Numerica Università di Trento
CODICE CONVOLUZIONALE:
DISTANZA LIBERA
378
Trasmissione Numerica Università di Trento
CODICI CONVOLUZIONALI:
METODI DI DECODIFICA
380
Trasmissione Numerica Università di Trento
ALGORITMO DI VITERBI
381
Trasmissione Numerica Università di Trento
ALGORITMO DI VITERBI
382
Trasmissione Numerica Università di Trento
383
Trasmissione Numerica Università di Trento
Y= 11 01 11
2 00 2 1
00 3 2 00 5
a0 a1 a2 a3
11 0
11 0
11 2
1 3
0
b1 b2 1 11 3 b3
2
00 4
10 2 1
0 0
4
c2 01 10 c3
2
0 1
01 1
d2 01 4
d3
Metrica del ramo Metrica del percorso 1 10
1
384
Trasmissione Numerica Università di Trento
ϒ Osserviamo che ogni stato che si può avere alla terza transizione
(ovvero o a3 o b3 o c3 o d3) può essere raggiunto con 2 percorsi differenti.
ϒ Ragionando in questo modo, per ognuno dei nodi a3 ,b3 ,c3 ,d3 che si
hanno alla terza transizione possiamo eliminare il percorso con la
metrica maggiore, riducendo così il numero di percorsi da memorizzare.
385
Trasmissione Numerica Università di Trento
Y= 11 01 11
00 00
a0 a1 a2 2 a3
11 11
b1 b2 11 b3
3
10
c2 1 c3
01
d2 01 1
d3
10
386
Trasmissione Numerica Università di Trento
387
Trasmissione Numerica Università di Trento
Percorso a massima
verosimiglianza
388
Trasmissione Numerica Università di Trento
ALGORITMO DI VITERBI
389
Trasmissione Numerica Università di Trento
390
Trasmissione Numerica Università di Trento
ϒ Dopo che sono stati ricevuti i primi 5Ln bit, i primi k bit di
messaggio possono essere decodificati (e conseguentemente
i primi insiemi di rami possono essere cancellati dalla
memoria).
391
Trasmissione Numerica Università di Trento
DECODIFICA SEQUENZIALE
decodifica sequenziale
392
Trasmissione Numerica Università di Trento
DECODIFICA SEQUENZIALE
393
Trasmissione Numerica Università di Trento
DECODIFICA SEQUENZIALE
394
Trasmissione Numerica Università di Trento
DECODIFICA SEQUENZIALE
395
Trasmissione Numerica Università di Trento
DECODIFICA SEQUENZIALE:
ESEMPIO
percorso che
viene associato
alla sequenza
trasmessa
396
Trasmissione Numerica Università di Trento
DECODIFICA SEQUENZIALE:
ESEMPIO
percorso che
viene associato
jnPbe+∆ alla sequenza
metrica
trasmessa
jnPbe
397
Trasmissione Numerica Università di Trento
DECODIFICA A RETROAZIONE
398
Trasmissione Numerica Università di Trento
DECODIFICA A RETROAZIONE
399
Trasmissione Numerica Università di Trento
CODICI CONVOLUZIONALI:
VANTAGGI/SVANTAGGI
400
Trasmissione Numerica Università di Trento
ESEMPI DI APPLICAZIONE
DEI CODICI
401
Trasmissione Numerica Università di Trento
402
Trasmissione Numerica Università di Trento
403
Trasmissione Numerica Università di Trento
404