Sei sulla pagina 1di 54

TURBO CODICI E DECODIFICA ITERATIVA

Lo sviluppo pi interessante e potenzialmente pi importante nella teoria dei codici negli ultimi anni certamente stata lintroduzione dei cosiddetti turbo codici da parte di Berrou ed altri a ICC nel 1993. Le prestazioni, verificate ben presto anche da altri gruppi di ricercatori, sono promettenti in quanto effettivamente vicine ai limiti teorici previsti da Shannon.

TURBO CODICI E DECODIFICA ITERATIVA


I turbo codici devono il loro nome allalgoritmo di decodifica, che usa una retroazione, come il motore turbo: tale algoritmo prende il nome di decodifica iterativa.

TURBO CODICI E DECODIFICA ITERATIVA


Vi sono alcune questioni che emergono dal lavoro presentato a ICC93, e cio:
Le prestazioni dei turbo codici decodificati a ML comparate con quelle ottenibili applicando un algoritmo di decodifica iterativa. Il fatto che le prestazioni migliorino con la lunghezza dellinterleaver (fenomeno noto come interleaver gain). Luso di codici costituenti sistematici e ricorsivi (RSC): sono strettamente necessari? Il ruolo dei codici costituenti nel determinare la prestazione di un turbo codice e il loro progetto.

TURBO CODICI E DECODIFICA ITERATIVA


Un turbo codice sostanzialmente costituito dalla concatenazione parallela di due codici convoluzionali (PCCC: Parallel Concatenated Convolutional Codes) per mezzo di un interallacciatore non uniforme.

TURBO CODICI E DECODIFICA ITERATIVA


I due codici costituenti sono codici convoluzionali sistematici ricorsivi (RSC: Recursive Systematic Convolutional Codes) concatenati secondo lo schema mostrato in figura. Laspetto pi significativo di questi codici la loro ricorsivit, mentre la sistematicit non vincolante. La sequenza dei simboli di ingresso viene codificata una prima volta da un codice RSC, mentre una sua versione interallacciata codificata dal secondo codice (dello stesso tipo del primo).

TURBO CODICI E DECODIFICA ITERATIVA

Codice PCCC. Tasso di codifica: 1/3

TURBO CODICI E DECODIFICA ITERATIVA

Codice non sistematico e non ricorsivo. G(D)=[(1+D+D2), (1+ D2)] Tasso di codifica: 1/2

Codice sistematico e ricorsivo (RSC). G(D)=[1, (1+ D2)/ (1+D+D2)] Tasso di codifica: 1/2

TURBO CODICI E DECODIFICA ITERATIVA


La matrice G(D)=[g(1)(D), g(2)(D)] la generica matrice generatrice di un codice a tasso 1/2 non sistematico non ricorsivo. Le sue parole di codice sono esprimibili come: V(D )=[v(1)(D), v(2)(D)] )=[u(D)g(1)(D), u(D)g(2)(D)] dove u(D) la sequenza dinformazione. La matrice G(D)=[1, g(2)(D)/ g(1)(D) ] la generica matrice generatrice di un codice a tasso 1/2 sistematico ricorsivo equivalente al precedente. Le sue parole di codice sono esprimibili come: V(D )=[v(1)(D), v(2)(D)] )=[u(D), u(D)g(2)(D)/ g(1)(D)] dove u(D) la sequenza dinformazione.

TURBO CODICI E DECODIFICA ITERATIVA


I due codici di figura sono equivalenti, nel senso che hanno la stessa distanza libera, la stessa distribuzione dei pesi duscita e lo stesso traliccio, per quanto riguarda le transizioni di stato e i corrispondenti bit duscita. Tuttavia la mappatura tra le sequenze dingresso e quelle duscita differente per i codici ricorsivi e non ricorsivi. Come conseguenza, le probabilit derrore sulla parola saranno le stesse, mentre le probabilit derrore sul bit saranno diverse.

TURBO CODICI E DECODIFICA ITERATIVA


Infatti, si considerino i due codici equivalenti riportati in figura. Il primo un codice a tasso 1/2 non sistematico non ricorsivo dato da: Gns(D)=[(1+D+D2), (1+ D2)] Il secondo un codice a tasso 1/2 sistematico ricorsivo dato da: Gs(D)=[1, (1+ D2)/ (1+D+D2)]

TURBO CODICI E DECODIFICA ITERATIVA


La sequenza dingresso u(D)=1 al codice non sistematico genera la parola di codice V(D)=u(D) Gns(D)=[1+D+D2, 1+ D2] La sequenza dingresso u(D)= 1+D+D2 al codice sistematico genera la parola di codice V(D)=u(D) Gns(D)=[1+D+D2, 1+ D2] Si noti che, sebbene la parola di codice sia la stessa in entrambi i casi, la sequenza dingresso ha peso 1 nel caso non sistematico e peso 3 nel caso sistematico.

CODICE NON RICORSIVO

Codice non sistematico e non ricorsivo. G=[(1+D+D2), (1+ D2)] Tasso di codifica: 1/2

Suo diagramma di stato

CODICE NON RICORSIVO


a i:00
D 2B

b:10
DB

D B

c:01
D

D2

a f :00

d:11
DB

Diagramma di stato modificato

T (D , B ) =

k =0

2 k D k + 5 B k +1

CODICE NON RICORSIVO

T ( D ) = T ( D , B ) B =1 =

= D + 2D6 + 4D7 + L
Lesponente della variabile D nel primo termine dello sviluppo (k=0) permette di determinare la distanza libera dfree (free distance) del codice (nellesempio dfree=5).

k =0 5

2 k D k +5

CODICE NON RICORSIVO

Ingresso al codice 1: a b c 0 0 1 0 0 0 0

Se il codice non ricorsivo, un ingresso di peso unitario produrr sempre una parola di codice di peso basso alluscita.

CODICE NON RICORSIVO

Ingresso al codice 2: a b c 0 0 0 0 0 0 1 0 0

Se il codice non ricorsivo, un ingresso di peso unitario produrr sempre una parola di codice di peso basso anche alluscita del secondo codice costituente.

CODICE NON RICORSIVO

Se i codici costituenti sono non ricorsivi, un ingresso di peso unitario produrr sempre una parola di codice di peso basso sia alluscita del primo che del secondo codice costituente.

Linterleaver non ha nessun effetto sulla distribuzione dei pesi delle parole del codice concatenato.

CODICE RICORSIVO

10

01

Codice sistematico e ricorsivo (RSC). G=[1, (1+ D2)/ (1+D+D2)] Tasso di codifica: 1/2

Suo diagramma di stato

CODICE RICORSIVO

a i:00

D 2B

b:10
D

DB

c:01
D

D 2B

a f :00

d:11
DB

Diagramma di stato modificato

CODICE RICORSIVO
Ingresso al codice 1: a b c d 0 0 1 0 0 0 0 0 0

Se il codice ricorsivo, un ingresso di peso unitario produrr una sequenza infinita di 1 alluscita.

CODICE RICORSIVO

Se il codice ricorsivo, un ingresso di peso unitario provoca uno scostamento dallo stato nullo (a) senza possibilit di ritornarvi.

Non ci possono essere errori dovuti a un ingresso di peso unitario.

Dobbiamo preoccuparci degli ingressi di peso 2 (sequenza dingresso con due 1).

CODICE RICORSIVO
Laffermazione Non ci possono essere errori dovuti a un ingresso di peso unitario dimostrata in:
S. Benedetto and G. Montorsi, Design of Parallel Concatenated Convolutional Codes, IEEE Trans. on Communications, Vol. 44, No. 5, May 1996, pp. 591-600.

La matrice G(D)=[1, g(2)(D)/ g(1)(D) ] la generica matrice generatrice di un codice a tasso 1/2 sistematico ricorsivo. Per questo codice, eventi derrore di peso finito sono prodotti da polinomi multipli di g(1)(D). Ogni polinomio g(1)(D) divide un polinomio nella forma 1+Di. Daltra parte, poich g(1)(D) ha forma 1+D+...+Dn, esso non pu dividere un polinomio nella forma Di per ogni i.

CODICE RICORSIVO

Una sequenza dingresso al primo codice costituente con due 1 produce:


Ingresso al codice 1: a b c d 0 0 1 0 0 1 0 0 0

CODICE RICORSIVO

Se linterleaver mantiene le posizioni dei due 1 inalterate, alluscita del secondo codice ottengo la stessa parola di codice. Altrimenti, ci che si ottiene :
Ingresso al codice 2: a b c d 0 0 1 0 0 0 0 0 1 0

IL RUOLO DEL CODICE RICORSIVO

Paragone delle BER di PCCC utilizzanti codici sistematici ricorsivi (SR) e non ricorsivi (SNR).
Tratto da: S. Benedetto and G. Montorsi, Unveiling Turbo Codes: some results on Parallel Concatenated Coding schemes, IEEE Transactions on Information Theory, Vol. 42, No. 2, March 1996, pp. 409-428.

IL RUOLO DEL CODICE RICORSIVO


La curva A corrisponde alla modulazione BPSK non codificata. Le curve B e C si riferiscono ai codici costituenti (CC) non ricorsivi. Curva B: semplice duplicazione del bit di ridondanza in uscita dal primo CC. Curva C: uso di un interleaver di lunghezza 1000. Le curve D ed E si riferiscono ai codici costituenti (CC) ricorsivi. Si nota un significativo miglioramento per N=1000: guadagno di 3 dB a 10-5.

IL RUOLO DEL CODICE RICORSIVO


Il guadagno di interleaver N -1 per sequenze dingresso di peso 2 e, in generale, N (1-w) per sequenze di peso dingresso w. Il parametro wmin (minimo w in ogni evento derrore di peso finito) cruciale nel progetto dei codici costituenti.

Codici convoluzionali ricorsivi: wmin =2 Codici convoluzionali non ricorsivi: wmin =1

Guadagno di interleaver: N -1 Guadagno di interleaver indipendente da N

PRESTAZIONI DEI CODICI: la Probabilit derrore sulla parola


Per un codice (n, k) di tasso Rc=k/n, la funzione enumeratrice dei pesi duscita (OWEF: Output Weight Enumerating Function) definita come: B(W ) = Bh H h
n

h =0

dove Bh il numero di parole di codice con peso di Hamming h.

PRESTAZIONI DEI CODICI: la Probabilit derrore sulla parola


Assumendo che il codice binario lineare sia trasmesso su un canale AWGN, con una modulazione PSK/PAM binaria, e decodificato a Massima Verosimiglianza (ML), a partire dalla OWEF, lapplicazione del limite dellunione conduce a un limite superiore alla Word Error Probability dato da: hRc Eb 1 Bh erfc N < 2 [B(H ) 1] H =exp( Rc Eb / N0 ) 0 h = d min 2 erfc( x ) =
n

1 Pw (e ) 2

dove

t 2 dt e

erfc( x ) <

x2 e

PRESTAZIONI DEI CODICI: la Probabilit derrore sul bit


Per un codice (n, k), la funzione enumeratrice dei pesi dingresso e uscita (IOWEF: Input-Output Weight Enumerating Function) definita come: A(W , H ) =

w= 0 h = 0

Aw,hW w H h

dove Aw,h il numero di parole di codice con peso di Hamming h associate a una parola dingresso di peso w.

PRESTAZIONI DEI CODICI: la Probabilit derrore sul bit


A partire dalla IOWEF, lapplicazione del limite dellunione conduce a un limite superiore alla Bit Error Probability dato da: hRc Eb ( Bhb )erfc N0 h = d min
n

w 1 Pb (e ) = Pb (e, w) = Pw (e, w) 2 k
w w

dove la molteplicit derrore sul bit definita come: B (b ) =


h

w=1

w Aw,h k

PRESTAZIONI DEI CODICI: la Probabilit derrore sul bit


Introduciamo ora la funzione enumeratrice dei pesi condizionata (CWEF: Conditional Weight Enumerating Function): A(w, H ) = Aw,h H h
n

h =0

che descrive la distribuzione dei pesi delle parole di codice generate da parole dingresso di peso w.

PRESTAZIONI DEI CODICI: la Probabilit derrore sul bit


A partire dalla CWEF, possiamo derivare un limite superiore alla Bit Error Probability in forma chiusa, dato da:
n

1 k Pb (e ) 2

hRc Eb 1 k w w k Aw,herfc N < 2 k [A(w, H )] H =exp( Rc Eb / N0 ) 0 w=1 h = d min w=1


x2 erfc( x ) < e

dove:

CONCATENAZIONE PARALLELA DI CODICI A BLOCCO (PCBC Parallel Concatenated Block Codes)


Per calcolare i limiti superiori alla probabilit derrore residua sul bit e sulla parola, necessario conoscere la funzione enumeratrice dei pesi condizionata (CWEF) del codice concatenato (PCBC).

Ci possibile partendo dalla conoscenza (per ipotesi) delle CWEF dei due codici costituenti (CC).

CONCATENAZIONE PARALLELA DI CODICI A BLOCCO (PCBC)


Per grandi lunghezze di blocco, pari alla lunghezza dellinterleaver, la complessit del calcolo della CWEF complessiva diventa eccessiva. Infatti, la conoscenza del peso delle parole in ingresso non sufficiente per ottenere il peso delle parole di codice generate dal secondo codice costituente. Esso ha in ingresso delle parole dingresso interallacciate che dipendono dalla permutazione effettuata dallinterleaver.

Una soluzione data dallintroduzione dellinterleaver uniforme, che rappresenta il comportamento medio di tutti gli interleaver possibili.

INTERLEAVER UNIFORME

un dispositivo probabilistico che rappresenta il comportamento medio di tutti gli interleaver deterministici di data lunghezza N.

Ad ogni sequenza dingresso di peso w e lunghezza N esso associa tutte le possibili sequenze distinte di peso w e lunghezza N con eguale probabilit: p= 1 N w

INTERLEAVER UNIFORME
p= 1 4 2

0101 0110 0011 1001 1010 1100

0101

Interleaver uniforme

Esiste un interleaver che d i risultati ottenuti applicando linterleaver uniforme: linterleaver casuale (random interleaver).

PCBC: prestazioni a ML

Usando linterleaver uniforme, ogni parola dingresso di peso w allingresso del primo codice C1 viene mappata in tutte le permutazioni distinte che, attraverso il secondo codice C2, generano tutte le parole di codice corrispondenti al peso dingresso w.

Tutte le parole dingresso dello stesso peso w generano lo stesso insieme di parole di codice alluscita del secondo codice C2.

PCBC: prestazioni a ML

Tutte le parole dingresso dello stesso peso w generano lo stesso insieme di parole di codice alluscita del secondo codice C2.

Le CWEF di C1 e C2 diventano indipendenti e possono essere moltiplicate (e debitamente normalizzate) per ottenere la CWEF del codice concatenato. In formule: A
CP

AC1 (w, H ) AC2 (w, H ) (w, H ) = k w

INTERLEAVER UNIFORME

Propriet principali:
La CWEF del PCBC ottenuto usando linterleaver uniforme eguaglia la CWEF mediata sullintera classe degli interleaver di data lunghezza. Il limite superiore alle prestazioni di un codice PCBC, calcolato usando la CWEF relativa allinterleaver uniforme, coincide con la media dei limiti superiori ottenuti mediante lintera classe degli interleaver di data lunghezza.

Per ogni valore di rapporto segnale-rumore (SNR), le prestazioni ottenute con linterleaver uniforme sono ottenibili usando almeno un interleaver deterministico.

CODICI CONCATENATI CON INTERLEAVER: PARAMETRI DI PROGETTO


Concatenazione parallela rispetto alla seriale Numero dei codici concatenati Memoria (# di stati) di ciascun codice Tasso del codice e polinomi generatori per ogni codice costituente Lunghezza del blocco Algoritmi APP ottimi rispetto a quelli subottimi Tecniche di terminazione del traliccio Progetto dellinterleaver Tecniche di stop precoce delle iterazioni Uso di codici a blocco esterni per abbassare lerror floor

PRESTAZIONI DEI CODICI CONCATENATI CON INTERLEAVER

Non convergence region

Waterfall region

Tre distinte regioni delle curve BER (o FER) rispetto al SNR: le regioni di non convergenza, di waterfall e di error floor

Error floor region

CODICI CONCATENATI CON INTERLEAVER: PROGETTO DEI CODICI COSTITUENTI


Ci sono due modi per progettare i codici costituenti (CC) dei codici concatenati mediante interleaver: Il primo basato sul concetto di interleaver uniforme e sul limite dellunione.

Conduce allottimizzazione dei CC per una decodifica a Massima Verosimiglianza (ML decoding) e per probabilit derrore medio-basse (dominate dalla distanza libera del codice). adatto ad applicazioni richiedenti alte QoS (bit error rate minori di 10-5).

CODICI CONCATENATI CON INTERLEAVER: PROGETTO DEI CODICI COSTITUENTI


Il secondo basato sullevoluzione della funzione di densit di probabilit dellinformazione estrinseca di ogni decodificatore.

Assume lunghezza di blocco infinita e conduce a CC che garantiscono lascissa di convergenza pi bassa, cio alla minimizzazione del SNR al quale lalgoritmo di decodifica iterativa inizia a convergere. adatto ad applicazioni richiedenti lunghezze di blocco elevate e QoS medie.

CODICI CONCATENATI CON INTERLEAVER: PROGETTO DEI CODICI COSTITUENTI


Deriviamo dei criteri di scelta dei CC basati sulle seguenti ipotesi:
PCCC che utilizzano un interleaver uniforme (ci consente di suddividere il problema del progetto, che concerne linterleaver e i CC congiuntamente, in due progetti separati). Lunghezze di interleaver elevate. Decodifica a Massima Verosimiglianza (ML decoding), poich lottimizzazione consiste nella minimizzazione del limite superiore alla probabilit derrore sul bit. Ipertraliccio approssimato attraverso il ramo congiungente lo stato S00 con se stesso.

PROGETTO DEI CODICI COSTITUENTI: TECNICA DEL LIMITE DELLUNIONE PCCC


Lespressione asintotica (rispetto alla lunghezza dellinterleaver N) della probabilit derrore sul bit : d fP,eff Rc Eb 1 1 Pb (e ) N N f 1,eff N f 2,eff erfc 2 N0 dove dfP,eff la distanza libera efficace (effective free distance) del PCCC, cio il minimo peso delle sequenze del PCCC generate da sequenze dingresso di peso 2, e Nfi,eff (i=1,2) la molteplicit degli eventi derrore dei due CC con peso uguale alla distanza libera efficace.

PROGETTO DEI CODICI COSTITUENTI: TECNICA DEL LIMITE DELLUNIONE PCCC


Dalla d fP,eff Rc Eb 1 1 Pb (e ) N N f 1,eff N f 2,eff erfc 2 N0

deduciamo che le distanze libere efficaci dei due codici costituenti devono essere massimizzate, essendo, per un PCCC sistematico: d fP,eff = 2 + 2d fCC ,eff

PROGETTO DEI CODICI COSTITUENTI: TECNICA DEL LIMITE DELLUNIONE PCCC


Entrambi i codici costituenti devono essere codici ricorsivi. Largomento della erfc() nel limite superiore alla probabilit derrore sul bit cresce con la distanza libera efficace del PCCC, che a sua volta, data da: d fP,eff = 2 + 2d fCC ,eff Quindi, lottimizzazione dei due codici costituenti ricorsivi deve essere volta a massimizzare le loro distanze libere efficaci e a minimizzare le relative molteplicit.

PROGETTO DEI CODICI COSTITUENTI: TECNICA DEL LIMITE DELLUNIONE PCCC


Il guadagno di interleaver N -1 per sequenze dingresso di peso 2 e, in generale, N1-w per sequenze di peso dingresso w.

Quindi, tra tutti i codici con la massima distanza efficace, dobbiamo selezionare quelli che massimizzano d3, e cos via. d3 il minimo peso delle sequenze del CC generate da sequenze dingresso di peso 3.

PROGETTO DEI CODICI COSTITUENTI PER I PCCC


G1(D)=[1, (1+ D+D2)/ (1+D2)] df1,eff=8 df1=8

PCCC1

PCCC2

G2(D)=[ 1, (1+ D2)/ (1+D+D2)] df2,eff=10 df2=7

PROGETTO DEI CODICI COSTITUENTI PER I PCCC

PCCC1

PCCC2

PROGETTO DEI CODICI COSTITUENTI PER I PCCC

PCCC1 df1,eff=8 df1=8

PROGETTO DEI CODICI COSTITUENTI PER I PCCC

PCCC2

df2,eff=10 df2=7

PROGETTO DEI CODICI COSTITUENTI PER I PCCC


df1,eff=8 df1=8 df2,eff=10 df2=7

Il secondo codice ha una distanza libera efficace migliore ma una distanza libera peggiore Le prestazioni del PCCC2 sono migliori