45
CODIFICA DI CANALE In un sistema di telecomunicazione digitale l'informazione trasmessa, in generale, è corrotta da contributi rumorosi che causano la presenza di errori di stima dei simboli trasmessi. Per questo motivo è estremamente importante minimizzare la probabilità di commettere errori. Un limite alla velocità con la quale è possibile trasferire informazione attraverso un canale di comunicazione gaussiano a banda limitata è data dalla ben nota formula di Shannon 2 0 1 av P C Blog BN = + bit/secondo In generale, per aumentare la capacità di canale si potrebbe pensare di agire sulle principali risorse del sistema, ossia potenza in trasmissione e la larghezza di banda 2 2 0 2 0 0 2 0 2 1 1 1 1 1 av av av av B B B P log e P P BN log BN BN P lim C lim lim log e N B B →∞ →∞ →∞ + + = = = C[bit/s] B 2 0 av P log e N

CODIFICA DI CANALE - conan.diei.unipg.itconan.diei.unipg.it/webtlc/lucidiTLC/codici.pdf · attraverso un canale di comunicazione gaussianoa banda limitata ... trovare un metodo veloce

  • Upload
    dotruc

  • View
    213

  • Download
    0

Embed Size (px)

Citation preview

Page 1: CODIFICA DI CANALE - conan.diei.unipg.itconan.diei.unipg.it/webtlc/lucidiTLC/codici.pdf · attraverso un canale di comunicazione gaussianoa banda limitata ... trovare un metodo veloce

CODIFICA DI CANALE

In un sistema di telecomunicazione digitale l'informazione trasmessa, in generale, è corrotta da contributi rumorosi che causano la presenza di errori di stima dei simboli trasmessi. Per questo motivo èestremamente importante minimizzare la probabilità di commettere errori.Un limite alla velocità con la quale è possibile trasferire informazione attraverso un canale di comunicazione gaussiano a banda limitata èdata dalla ben nota formula di Shannon

20

1 avPC BlogBN

= +

bit/secondo

In generale, per aumentare la capacità di canale si potrebbe pensare di agire sulle principali risorse del sistema, ossia potenza in trasmissione e la larghezza di banda

2202

0 02

02

1

1 1

1 1

avav av

avB B B

P log eP P B NlogBN BN Plim C lim lim log e

NB B

→∞ →∞ →∞

− + +

= = =−

C[bit/s]

B

20

avP log eN

Page 2: CODIFICA DI CANALE - conan.diei.unipg.itconan.diei.unipg.it/webtlc/lucidiTLC/codici.pdf · attraverso un canale di comunicazione gaussianoa banda limitata ... trovare un metodo veloce

La codifica di canale si effettua mediante l’introduzione di un grado di ridondanza nei simboli trasmessi. ES: controllo di parità

Esiste tuttavia un limite teorico valido per entrambi i tipi di codifica (Shannon). E' possibile migliorare prestazioni del sistema, tramite una codifica di canale a patto però che la bit-rate sia sempre al di sotto della capacità di canale.

( )RnEe eP −≤

dove n è la lunghezza delle parole di codice, E(R), detta funzione di affidabilità del canale, è una funzione a valori positivi dipendente dallo schema di modulazione, e quindi dal numero medio R di cifre binarie usate per rappresentare i simboli emessi dalla sorgente, e del valore asintotico Cinf della capacità di canale per una larghezza di banda che diverge.

E(R)

RCinf

Se R -> Cinfper ottenere la Pe desiderata occorre aumentare il valore di n

Page 3: CODIFICA DI CANALE - conan.diei.unipg.itconan.diei.unipg.it/webtlc/lucidiTLC/codici.pdf · attraverso un canale di comunicazione gaussianoa banda limitata ... trovare un metodo veloce

In generale, il controllo d'errore può avvenire secondo due principali strategie:

1) a correzione diretta d'errore (FEC) mediante codifica di canale, in cui si cerca di correggere gli errori effettuati senza scambio di messaggi fra trasmettitore e ricevitore;

2) a richiesta automatica di ritrasmissione (ARQ) , in cui il ricevitore richiede, utilizzando opportuni protocolli di comunicazione, la ritrasmissione dei simboli riconosciuti come errati.

Aspetti “ingegneristici”

1) trovare un metodo veloce e facilmente realizzabile di codifica e decodifica;2) realizzare codici che correggano un numero di errori per soddisfare le specifiche di sistema sulla probabilità di errore;3) mantenere i costi di realizazione entro limiti accettabili.

Saranno considerati errori causati da rumore gaussiano, quindi errori casuali, tralasciando altri tipi di errore, come gli errori a pacchetto (burst), causati da rumore di tipo impulsivo

FUNZIONE DI INTERLEAVING ( o SCRAMBLING)

Page 4: CODIFICA DI CANALE - conan.diei.unipg.itconan.diei.unipg.it/webtlc/lucidiTLC/codici.pdf · attraverso un canale di comunicazione gaussianoa banda limitata ... trovare un metodo veloce

CODICI A BLOCCHI

Ad ogni sequenza di k bit di informazione sono aggiunti r bit di controllo il cui valore dipende in qualche modo dai primi k. I bit di controllo sono utilizzati in ricezione dal decodificatore come verifica sui bit di informazione.

CODICI CONVOLUZIONALI

Non c’è una separazione netta fra i bit di controllo e quelli di informazione, ma un flusso di bit di informazione è sostituito da un flusso di bit codificati ad una frequenza di simbolo maggiore.

STIMA

La stima può avvenire secondo una logica di tipo hard o soft, a secondo che la decisione su ciascun bit sia effettuata tramite una soglia oppure grazie ad altri criteri

Ricevitore Decodificatore HardCanalencr

nr (t) r (t)

RicevitoreCanalencr(t) r(t)

Decodificatore soft

Page 5: CODIFICA DI CANALE - conan.diei.unipg.itconan.diei.unipg.it/webtlc/lucidiTLC/codici.pdf · attraverso un canale di comunicazione gaussianoa banda limitata ... trovare un metodo veloce

Il canale discreto

Nella teoria dei codici è comodo supporre il canale come discreto senza memoria (DMC)

In ingresso al canale sono accettati simboli appartenenti ad un alfabeto discreto e in uscita sono restituiti dei simboli appartenenti ad un alfabeto,anch’esso discreto, ma che, in generale, non coincide con quello di trasmissione. In questo modo si ingloba nel modello del canale anche la parte di sistema di modulazione e demodulazione

sorgente codificatoredi sorgente

codificatoredi canale modulatore

canale

+

utente demodulatore

rumore additivo

decodificatoredi sorgente di canale

decodificatore

sh ncka

a k

n (t)

c (t)

r (t)s h

rn

Canale discretosorgente discreta

Page 6: CODIFICA DI CANALE - conan.diei.unipg.itconan.diei.unipg.it/webtlc/lucidiTLC/codici.pdf · attraverso un canale di comunicazione gaussianoa banda limitata ... trovare un metodo veloce

Binary Symmetric Channel - BSC

0

1 1

0P(0/0)=1-p

P(1/1)=1-p

p

p

( ) ( )0 1 1 0P / P / p= =

( ) ( )1 1 0 0 1P / P / p= = −

( ) ( )ppppCBSC −−++= 1log 1log 1 22 bit/simbolo

CBSC

1

0.5 1 p

Page 7: CODIFICA DI CANALE - conan.diei.unipg.itconan.diei.unipg.it/webtlc/lucidiTLC/codici.pdf · attraverso un canale di comunicazione gaussianoa banda limitata ... trovare un metodo veloce

Codici a blocchi

Un codice a blocchi è un insieme di sequenze di bit di lunghezza fissa (che si possono modellare come vettori aventi come componenti i bit che formano la sequenze stesse) dette parole di codice.

Le parole di codice sono generate in modo deterministico utilizzando sequenze di bit di sorgente di lunghezza fissa e minore di quella delle parole di codice. Ciò rende necessario un aumento della la velocità di trasmissione per mantenere invariata la quantità di informazione trasmessa nell’unità di tempo.

Quindi un codificatore a blocchi divide il flusso continuo di bit di sorgente in blocchi (da cui il nome) di lunghezza prefissata pari a k bit, modellabili dal vettore

( )110 ,...,, −= kdddd

dove k è la dimensione del codice e, poiché si suppone la sorgente binaria, ciascun elemento

( )22 GFZdi ≡∈

Ogni messaggio di sorgente è elaborato singolarmente in modo tale da essere rappresentato mediante nuovi vettori di codice di n bit,

( )110 ,...,, −= ncccC

Page 8: CODIFICA DI CANALE - conan.diei.unipg.itconan.diei.unipg.it/webtlc/lucidiTLC/codici.pdf · attraverso un canale di comunicazione gaussianoa banda limitata ... trovare un metodo veloce

Un codice a blocchi generico con k bit di informazione e n-k bit di controllo è indicato con C(n,k)

T

1 k

1 n2

messaggio

parola di codice

C’è una corrispondenza biunivoca tra i blocchi messaggio e la loro rispettiva parola di codice. Dei blocchi (vettori) di messaggio solo 2k

di questi sono utilizzati per formare l'alfabeto di in trasmissione e si indicheranno con C1,C2, etc... Gli altri 2n-2k vettori sono parole di lunghezza n non appartenenti a C(n,k), che possono tuttavia presentarsi in ricezione a causa di errori nella stima dei bit.

I primi k bit di una parola di codice possono coincidere con i bit di sorgente, o essere una combinazione lineare di questi. Gli n-k bit di aggiunti sono calcolati usando i k bit di sorgente, secondo una legge ben precisa, e poiché dipendono esclusivamente dai k bit precedenti, il decodificatore è realizzato mediante reti logiche combinatorie.

Page 9: CODIFICA DI CANALE - conan.diei.unipg.itconan.diei.unipg.it/webtlc/lucidiTLC/codici.pdf · attraverso un canale di comunicazione gaussianoa banda limitata ... trovare un metodo veloce

Se le prime componenti c0, c1, …ck-1 di tutte le parole del codice C(n,k) sono esattamente i bit di informazione d0, d1, …dk-1 il codice si dice sistematico

codificatoredi canale

di codice

bit di parità

messaggioblocchi

messaggio

k

bitsk+r=n

r

k

blocchi

messaggio bits di parità

Se le 2n parole di codice si possono rappresentare attraverso la combinazione lineare di n vettori di codice linearmente indipendenti, il codice è detto lineare.La bit-rate in ingresso al codificatore è pari a:

R kTin = bit/sec

dove T è la durata temporale di ciascun blocco. All'uscita si ha un aumento percentuale della bit-rate pari a

RR

nk

out

in

=

e una conseguente efficienza o code rate R del codice C(n,k)

R RR

kn

in

out

= = < 1

N.B. Le due bit-rate Rin e Rout non possono essere confrontate direttamente con la capacità di canale C

Page 10: CODIFICA DI CANALE - conan.diei.unipg.itconan.diei.unipg.it/webtlc/lucidiTLC/codici.pdf · attraverso un canale di comunicazione gaussianoa banda limitata ... trovare un metodo veloce

Poiché k<n, le 2k parole di codice C(n,k) sono in numero minore dei 2n possibili vettori ottenibili all'uscita del canale, la capacità di C(n,k)di rivelare o correggere eventuali errori si basa su un criterioopportuno che permette di “riconoscere” una parola di codice a partire da una non appartenente a C(n,k).

Si può definire una distanza tra due parole di codice C1 e C2

( )1 2C , Cd

In fase di decodifica si sceglie la parola più "vicina" a quella ricevuta. In questo modo è possibile decodificare nel modo più corretto possibile o, nel caso peggiore, rivelare la presenza di errori. Si avràuna decodifica errata quando la parola di codice più vicina a quella ricevuta non è la parola trasmessa.

Per un vettore di n componenti il peso di Hamming, indicato con WH(v), è definito come il numero di componenti non nulle.La distanza di Hamming, indicata con dH(u,v), tra due vettori u e v, èil numero di componenti che hanno un valore diverso

La grandezza fondamentale per i codici a correzione d'errore operanti secondo la decodifica hard è la distanza minima di Hamming, indicata dHmin , che è definita come la più piccola distanza tra una qualsiasi coppia di vettori.

Page 11: CODIFICA DI CANALE - conan.diei.unipg.itconan.diei.unipg.it/webtlc/lucidiTLC/codici.pdf · attraverso un canale di comunicazione gaussianoa banda limitata ... trovare un metodo veloce

TeoremaLa distanza minima di un codice lineare a blocchi è uguale al minimo dei pesi di ogni parola di codice non nulla.

( )vWd HvH 0min min ≠=

Utilizzando il concetto di distanza minima, si definisce il raggio di un intorno centrato in ogni parola di codice

t dH=−min 1

2

Quindi in fase di decodifica risulteranno correggibili non più di t errori.

C

t

Ct

C

t

Se tutti gli intorni costituiscono una partizione dello spazio il codice èdetto perfetto

Page 12: CODIFICA DI CANALE - conan.diei.unipg.itconan.diei.unipg.it/webtlc/lucidiTLC/codici.pdf · attraverso un canale di comunicazione gaussianoa banda limitata ... trovare un metodo veloce

Notazione Matriciale

( )1210 ,,.....,, −−= kk ddddd messaggio

( )1210 ,,....,, −−= nn ccccc vettore di codice

( )12310 ,,,.....,, −−−= nnn rrrrrr ingresso del decodificatore

Per un codice sistematico

i ic d , i=0,...,k-1=

11 0 1 2 1 1 1

1 1 0 2 1 1

k , , ,k k

n ,n k ,n k k ,n k k

c p d p d .... p d

c p d p d ....... p d

− − − − −

= + + +

= + + +M M M

Page 13: CODIFICA DI CANALE - conan.diei.unipg.itconan.diei.unipg.it/webtlc/lucidiTLC/codici.pdf · attraverso un canale di comunicazione gaussianoa banda limitata ... trovare un metodo veloce

n-kk

[ ] [ ]

=

−−−

−−

knkk

kn

knkn

kn

pp

pppppp

dddccc

,1,

,21,2

,11,12,11,1

110110

1 00

00

00100001

L

OM

M

LLL

LL

LLLL

c dG=

G è detta matrice di generazione

[ ] nkk PIG ×= M

Ik k k×matrice identità di dimensioni

k n k× −P matrice di parità avente dimensioni

Page 14: CODIFICA DI CANALE - conan.diei.unipg.itconan.diei.unipg.it/webtlc/lucidiTLC/codici.pdf · attraverso un canale di comunicazione gaussianoa banda limitata ... trovare un metodo veloce

Sindrome

( )0 1 2 1n kS s ,s ,s ,......,s − −=

THrS ⋅=

[ ]T

n k n k nH P I − − ×

= M

[ ] [ ]0=

=⋅

−kn

kT

I

PPIHG LM

quindi

[ ]0=⋅⋅=⋅ TT HGdHc

Se una n-pla c è un vettore appartenente all'alfabeto di codice allora èverificata tale relazione

Page 15: CODIFICA DI CANALE - conan.diei.unipg.itconan.diei.unipg.it/webtlc/lucidiTLC/codici.pdf · attraverso un canale di comunicazione gaussianoa banda limitata ... trovare un metodo veloce

Siccome r può essere espresso come

r c e= +

( )0 1 2 1ne e ,e ,e ....,e −= vettore di errore

( ) TTTTT eHeHcHHecrHS =+=+==

Quindi il valore della sindrome S dipende esclusivamente dal vettore errore e non dalla parola di codice trasmessa

nknnnnkn

knn

knn

hehehes

heheheshehehes

,,21,101

2,2,212,101

1,1,211,100

......

............

−−−

+++=

+++=

+++=

MMM

In particolare, per un codice binario la sindrome è la somma modulo 2 delle colonne di H in corrispondenza delle quali sono occorsi eventuali errori. Utilizzando la sindrome è possibile determinare la presenza di errori in ricezione. In particolare, se e solo se la sindrome S è nulla la parola ricevuta è una parola di codice, quindi se S ≠ 0 la parola ricevuto èaffetta da errori.Quando la sindrome è nulla il decodificatore stima r come vettore di codice trasmesso.

Page 16: CODIFICA DI CANALE - conan.diei.unipg.itconan.diei.unipg.it/webtlc/lucidiTLC/codici.pdf · attraverso un canale di comunicazione gaussianoa banda limitata ... trovare un metodo veloce

Esempio: Codice di Hamming (7,4)

1 0 0 0 1 0 10 1 0 0 1 1 10 0 1 0 1 1 00 0 0 1 0 1 1

G

=

1 0 11 1 11 1 00 1 1

P

=

=

100101101011100010111

H

Dalla matrice G si ricava che la distanza minima del codice è dHmin=3, quindi il calcolo della sindrome consentirà di correggere sicuramente 1 singolo errore

Il numero di possibili sequenze ricevute è 27=128. Di queste solo 24=16 sono utilizzate, le quali generano una sindrome nulla. Siccome il codice è in grado di correggere sicuramente un errore, i vettori di errore che sono sicuramente correggibili hanno una composizione di sei 0 e un 1.

Ad esempio, se il terzo bit di una parola ricevuta risulta errato, il corrispondente vettore di errore e=[0 0 1 0 0 0 0], genera una sindrome pari a eHT=[1 1 0]. Se la stessa sindrome fosse generata da altri vettori di errore composti da più simboli 1, tali errori non sarebbero correggibili.

Page 17: CODIFICA DI CANALE - conan.diei.unipg.itconan.diei.unipg.it/webtlc/lucidiTLC/codici.pdf · attraverso un canale di comunicazione gaussianoa banda limitata ... trovare un metodo veloce

Occorre notare che esiste la possibilità di decodifica errata nel caso in cui il vettore errore e è una parola di codice. Ne segue che r=c+ecome somma di due parole di codice è ancora una parola di codice. In questo caso segue che il calcolo della sindrome non evidenziaerrore con conseguente errore di decodifica; l'errore occorso sidefinisce non rivelabile

Un altro parametro fondamentale per la valutazione di un codice a blocchi è la distribuzione dei pesi delle parole del codice

Sia Ai il numero di parole di C(n,k) di peso pari ad i. Si definisce l'insieme A0,…,An distribuzione dei pesi di C(n,k) , e la funzione enumeratore

( ) ∑=

=n

i

ii zAzA

0

Poiché per un canale binario simmetrico e senza memoria, gli eventi dierrore sono indipendenti, la probabilità di commettere i errori su una parola di codice di lunghezza n assume una distribuzione binomiale:

( ) ( ) ini ppin

inP −−

= 1,

Un decodificatore a correzione di t errori ha una probabilità di decodificare correttamente una parola ricevuta pari a

( ) ( )∑=

−−

t

i

inicorr pp

in

bloccoP0

1

Page 18: CODIFICA DI CANALE - conan.diei.unipg.itconan.diei.unipg.it/webtlc/lucidiTLC/codici.pdf · attraverso un canale di comunicazione gaussianoa banda limitata ... trovare un metodo veloce

Si definisce la probabilità d'errore di blocco come la probabilità di una decodifica errata di una parola di codice. Si esprime un limite superiore per questa probabilità

( ) ( ) inin

tie pp

in

bloccoP −

+=

≤ ∑ 1

1

Nel caso di codici perfetti vale l'uguaglianza

Si definisce inoltre la probabilità d'errore non rivelabile per un codice C(n,k), considerando un canale BSC, come la probabilità che il vettore di errore sia identico ad una parola del codice C(n,k)

( ) ( ) ( )[ ]111

11

−−=

−= ∑=

zApp

pApP nin

ii

nnriv

( ){ }{ }

{ } ( )∑∑∑=

∈=

−===

−=∈=

===

n

i

inii

Cc

n

inriv

inii

Hi

ppAcePP

pCceP

niicwcC

i 111

1

...1 :

( )p

z pp

=−1

Si definisce, inoltre, una probabilità d'errore per bit come la probabilitàdi errore su ciascun bit della parola decodificata.

( ) ( )k

bloccoPbitP e

e ≥

Page 19: CODIFICA DI CANALE - conan.diei.unipg.itconan.diei.unipg.it/webtlc/lucidiTLC/codici.pdf · attraverso un canale di comunicazione gaussianoa banda limitata ... trovare un metodo veloce

Codici ciclici

I codici ciclici sono codici a blocchi lineari con una particolare struttura che permette di usare, oltre alla notazione matriciale, una notazione polinomiale

Per definizione, un codice ciclico, oltre ad essere lineare, gode della proprietà che se un vettore c=(c0,…,cn-1)∈C anche il suo vettore traslato di una posizione a destra o a sinistra c1=(cn-1, c0 ,…,cn-2)∈C. Ciò implica che qualsiasi shift circolare di una parola di codice èancora una parola di codice. Restano invariate tutte le altre considerazioni fin qui esposte a proposito dei codici a blocchi.

Rappresentazione polinomiale per codici ciclici

Alla parola di simboli di sorgente d=(d0,…,dk-1), fino ad ora vista come vettore in uno spazio di dimensione k, si associa il polinomio

( ) 11

2210

−−+++= k

k xdxdxddxd

La parola di codice c=(c0,…,cn-1) corrispondente a d=(d0,…,dk-1) avràcome polinomio associato

( ) 11

2210 ... −

−++++= nn xcxcxccxc

Page 20: CODIFICA DI CANALE - conan.diei.unipg.itconan.diei.unipg.it/webtlc/lucidiTLC/codici.pdf · attraverso un canale di comunicazione gaussianoa banda limitata ... trovare un metodo veloce

Affinché il codice sia ciclico si dimostra che c deve appartenere ad un sottospazio ciclico di

( ) [ ] ( )1/2 +≡ nn xxFGF

si consideri il polinomio c(x) moltiplicato per x

( ) nn

nn xcxcxcxcxxc 1

12

210 ... −

−− ++++=

Poiché questo polinomio è di grado n quando cn-1=1, esso non può rappresentare un polinomio associato ad una parola dell'alfabeto di codice.

si ha che

( ) ( ) ( )xcxcxxc nn

11 1 ++= −

dove

( )1 2 11 0 1 2

nn nc x c c x c x ... c x −− −= + + + +

quindi

( )21011 ,,,, −−= nn ccccc K

soddisfa la definizione di codice ciclico

Page 21: CODIFICA DI CANALE - conan.diei.unipg.itconan.diei.unipg.it/webtlc/lucidiTLC/codici.pdf · attraverso un canale di comunicazione gaussianoa banda limitata ... trovare un metodo veloce

In generale quindi, si ha che

( ) ( )( ) ( )xcxxqxcx ini ++= 1

( ) ( ) ( )1 mod += nii xxcxxc

con ci(x) ancora appartenente all'alfabeto di codice e q(x) polinomio quoziente

E’ possibile generare un codice ciclico mediante il cosiddetto polinomio generatore g(x) di grado n-k. Tale polinomio risulta essere un fattore di xn+1, e assume la forma

( ) 11 1 1n k n k

n kg x x g x ..... g x− − −= + + + +− −

Si dimostra che ogni polinomio di grado n-1 è di codice se e solo se èun multiplo di g(x) Si può quindi, tramite esso, generare un ideale, da cui il suo nome di polinomio generatore.

Quindi a partire da g(x) si può di generare un codice ciclico C(n,k) come insieme dei polinomi c(x) multipli di g(x)mod(xn+1)

Page 22: CODIFICA DI CANALE - conan.diei.unipg.itconan.diei.unipg.it/webtlc/lucidiTLC/codici.pdf · attraverso un canale di comunicazione gaussianoa banda limitata ... trovare un metodo veloce

Costruzione di un codice ciclico tramite un polinomio generatore

dato un polinomio di informazione d(x) di grado k-1 associato alla parola d=(d0,…,dk-1), il polinomio associato alla corrispondente parola di codice è data da

( ) ( ) ( )c x d x g x=

Verifica della condizione di ciclicitàUno shift circolare di una qualsiasi parola di codice c(x) produce un’altra parola di codice c1(x) che si può scrivere come segue

( ) ( ) ( )1 1 1nnc x xc x c x−= + +

Siccome g(x) è un fattore sia di c(x) sia di (xn+1), allora risulta essere un fattore anche di c1(x). Quindi esiste un polinomio d1(x) tale che

( ) ( ) ( )1 1c x d x g x=

quindi anche c1(x), generato da uno shift circolare di c(x), è una parola di codice poiché è generabile da g(x).

Si supponga, inoltre, di fattorizzare il polinomio xn+1. Essendo il polinomio generatore un fattore di xn+1, si ha

( ) ( )1nx h x g x+ =

dove h(x) prende il nome di polinomio di parità di grado k con h0=hk=1

( ) kk xhhxh ++= ......0

Si ha che ossia h(x) e g(x) sono ortogonali.

( ) ( ) ( )1 mod 0 −≡ nxxgxh

Page 23: CODIFICA DI CANALE - conan.diei.unipg.itconan.diei.unipg.it/webtlc/lucidiTLC/codici.pdf · attraverso un canale di comunicazione gaussianoa banda limitata ... trovare un metodo veloce

Per un codice ciclico sistematico il polinomio

( ) ( ) ( ) xg=xc xd

assume la forma

( ) 110

110

−−

−−−−− +++++= n

kknkn

kn xdxdxxc LL γγ

doveγ γ0 1,..., n k− −

sono i bit di parità indicati come coefficienti di γ(x), polinomio resto di grado n-k, ottenuto dividendo xn-kd(x) per g(x).

( ) ( ) ( ) ( )xxdx kn γ+− xgxq=

In fase di stima, come per i codici a blocchi, è utile il calcolo della sindrome

Per un codice ciclico sistematico la sindrome, in notazione polinomiale, è un polinomio s(x) di grado n-k-1 o minore ed è individuato dal resto della divisione tra la parola ricevuta r(x) ed il polinomio g(x) o equivalentemente

( ) ( ) ( ) ( )

( ) ( ) ( )xgxrxs

xsxgxqxr

mod=

+=

Page 24: CODIFICA DI CANALE - conan.diei.unipg.itconan.diei.unipg.it/webtlc/lucidiTLC/codici.pdf · attraverso un canale di comunicazione gaussianoa banda limitata ... trovare un metodo veloce

In questa notazione è facile notare che, analogamente ai codici a blocchi, se r(x) è una parola di codice, ossia un multiplo di g(x), allora s(x)=0. Se il polinomio associato alla parola ricevuta, espresso nella forma

( ) ( ) ( )xexcxr +=

dove

( ) 1110 ... −−+++= n

n xexeexe

è detto polinomio di errore, non appartiente ai polinomi di codice, allora la sindrome non è nulla.

Si ha che

( ) ( ) ( ) ( ) ( )xsxgxqxcxe ++=

poiché il polinomio di codice c(x) è un multiplo di g(x)

( ) ( ) ( )[ ] ( ) ( )xsxgxqxdxe ++=

quindi la sindrome non è altro che il resto della divisione tra e(x) e g(x)

La funzione del decodificatore è quella di stimare e(x) a partire da s(x)

Page 25: CODIFICA DI CANALE - conan.diei.unipg.itconan.diei.unipg.it/webtlc/lucidiTLC/codici.pdf · attraverso un canale di comunicazione gaussianoa banda limitata ... trovare un metodo veloce

Dualità della rappresentazione polinomiale e matriciale per codici ciclici

A g(x) e a h(x) sono associate la matrice G e la matrice H

In generale, a partire da un polinomio f(x) qualsiasi di grado j, è ottenuta la matrice generica F nel seguente modo

( ){ }

( ){ }

( ){ }jn

j xfx

xxf

xf

F

×

=

1

dove si indica con {f(x)} il vettore di j componenti corrispondenti ai coefficienti di f(x)

Esempio

( ){ } 1011=xg ( ){ } 11101=xh( ) 13 ++= xxxg ( ) 1234 +++= xxxxh

( ){ }( ){ }

( ){ }

( ){ }( ){ }

( ){ }

=

=

=

=

×−−−

×−

001011101011101011100

1101000011010000110100001101

11nkn

knnk

k xhx

xxhxh

H

xgx

xxgxg

GMM

Page 26: CODIFICA DI CANALE - conan.diei.unipg.itconan.diei.unipg.it/webtlc/lucidiTLC/codici.pdf · attraverso un canale di comunicazione gaussianoa banda limitata ... trovare un metodo veloce

Aspetti realizzativi dei codici a blocchi

+

a

b

a+b

a

b

ab

Registro a scorrimento

Trasferimento dati fra registri

seriale

parallelo

Page 27: CODIFICA DI CANALE - conan.diei.unipg.itconan.diei.unipg.it/webtlc/lucidiTLC/codici.pdf · attraverso un canale di comunicazione gaussianoa banda limitata ... trovare un metodo veloce

Il codificatore per una codifica di canale a blocchi accetta in ingresso sequenze di k bit di informazione dalla sorgente per poi inviarli, dopo l’elaborazione, al canale numerico. Ogni blocco di k bit di sorgente èseguito da n-k bit aggiuntivi. Durante questa operazione il codificatore non accetta altra informazione dalla sorgente. La sequenza di bit di sorgente deve essere, quindi, sezionata in blocchi di k bit seguito da n-kbit di padding e inviati ad un filtro FIR attraverso il quale è realizzato il codificatore.

filtro FIR

bit di informazionek

pad di n-k bit

bit di parola di codicen

Page 28: CODIFICA DI CANALE - conan.diei.unipg.itconan.diei.unipg.it/webtlc/lucidiTLC/codici.pdf · attraverso un canale di comunicazione gaussianoa banda limitata ... trovare un metodo veloce

Codificatori per codici a blocchi

d0 d1 k-1

ck

d0 d1 dk-1 d0 d1 dk-1

ck+1 c n-1

p11

p21

pk,1

p1,n-k

p11

p22

pk,2

p2,n-k

pk,n-k

registro di parità

al canale

d0 d1 dk-1d2

al canale

ingresso d

registro R del messaggio

d

Il messaggio di sorgente è traslato in un registro a scorrimento e inviato al canale. Non appena l'intero vettore messaggio è entrato nel registro, gli n-k bit di controllo sono resi disponibili all'uscita degli n-k sommatorimodulo 2, serializzati e inviati sul canale.

La complessità dell'intero circuito è linearmente proporzionale alla dimensione del codice.

Page 29: CODIFICA DI CANALE - conan.diei.unipg.itconan.diei.unipg.it/webtlc/lucidiTLC/codici.pdf · attraverso un canale di comunicazione gaussianoa banda limitata ... trovare un metodo veloce

Decodificatori per codici a blocchi

++ +

r

r r r

c

e

s

cc

s s

e e0 1 n-1

0 1 n-1

10 n-k-1

0 1 n-1

Registro di buffer R

Circuito per il calcolo della sindrome

Circuito per la rivelazione d'errore

occorre innanzi tutto effettuare il calcolo della sindrome, che si realizza facilmente mediante da un circuito concettualmente simile a quello del codificatore. L'uscita di tale circuito fornirà l'ingresso al circuito di rivelazione dell'errore. Infatti, data la corrispondenza biunivoca tra sindrome e vettore d'errore (nel caso in cui i vettori d’errore appartengono all’insieme correggibile) direttamente dalla standar arraydel codice, può essere ricavata una tabella di decodifica (tabella di look-up) contenente tutti i possibili cosets leader e le sindromi corrispondenti.

Page 30: CODIFICA DI CANALE - conan.diei.unipg.itconan.diei.unipg.it/webtlc/lucidiTLC/codici.pdf · attraverso un canale di comunicazione gaussianoa banda limitata ... trovare un metodo veloce

Circuito di calcolo per la sindrome di un codice a blocchi sistematico

s0 s1

p00

p10

pk-1,0

p0,n-k-1

p00

p10

pk-1,0

p1,n-k-1

pk-1,n-k-1

r0 r1 r n-1r2

sn-k-1

r

r0 rn-k rn-k+1 rn-1 r1 rn-k rn-k+1 rn-1 rn-k rn-k+1 rn-1r n-k-1

Il circuito di rivelazione dell'errore è completamente combinatorio.Questo tipo di decodifica ha il vantaggio di consentire tempi didecisione minimi con la minima probabilità d'errore. Tuttavia, per elevati valori di n-k, la realizzazione del circuito diventa onerosa a causa della quantità di memoria necessaria e della complessità del circuito combinatorio di rivelazione del vettore d'errore. Il costo computazionale del sistema è essenzialmente imputabile alla complessità di quest'ultimo.

Page 31: CODIFICA DI CANALE - conan.diei.unipg.itconan.diei.unipg.it/webtlc/lucidiTLC/codici.pdf · attraverso un canale di comunicazione gaussianoa banda limitata ... trovare un metodo veloce

Codificatori e decodificatori di codici ciclici

Data la proprietà di ciclicità del campo al quale gli elementi di un codice ciclico appartengono, è possibile utilizzare dei registri ad anello per la realizzazione dei codificatori e dei decodificatori.

n simboli binari contenuti nei registri a scorrimento ad n stadi possono essere interpretati come coefficienti di polinomi di grado n-1

somma di polinomi: g(x)+d(x)=c(x)

+

Un registro a scorrimento ad anello, o circolare, è utilizzato per traslare ciclicamente il vettore dei coefficienti associati al generico polinomio memorizzato in esso:

v( x )= + +........+v x-v v x nn

0 1 11−

v vv0 v1 2 n−1

Page 32: CODIFICA DI CANALE - conan.diei.unipg.itconan.diei.unipg.it/webtlc/lucidiTLC/codici.pdf · attraverso un canale di comunicazione gaussianoa banda limitata ... trovare un metodo veloce

prodotto di polinomi: g(x)d(x)=c(x)

+ +++++

g 0g 1gn-4gn-2

gn-3

gn-1

d0 ,...,dk-1

c 0 ,...,cn-1

divisione di polinomi: c(x)/g(x)=d(x)

d0 ,...,dk-1c0 ,...,cn-1

gn-1gn-3

gn-2

gn-4g1

g0

+ + + + + +

-1

Page 33: CODIFICA DI CANALE - conan.diei.unipg.itconan.diei.unipg.it/webtlc/lucidiTLC/codici.pdf · attraverso un canale di comunicazione gaussianoa banda limitata ... trovare un metodo veloce

Codici convoluzionali

Un codificatore convoluzionale binario consiste in una macchina a stati finiti formata da un registro a scorrimento a M stadi avente opportune connessioni verso L sommatori modulo 2. I pesi delle connessioni possono valere 0 o 1.

1 M2input

output 1

output 2

output L

w1L

w2L wKL

w12w22

wK2

w11w21 wK1

Lo schema delle connessioni si può modellare mediante dei polinomi generatori

( ) LlDwDwwDg MMllll ≤≤+++= − 1 ,... 1

21

Page 34: CODIFICA DI CANALE - conan.diei.unipg.itconan.diei.unipg.it/webtlc/lucidiTLC/codici.pdf · attraverso un canale di comunicazione gaussianoa banda limitata ... trovare un metodo veloce

la l-esima uscita del codificatore si può esprimere come il prodotto fra il polinomio generatore gl(D) e il polinomio m0 + m1D+ ... + mi Di+…, dove la sequenza (m0, m1, ... , mi, ...) è la sequenza di simboli in ingresso al codificatore.

Se un gruppo di L bit produce un’uscita codificata di lunghezza N bit, la rate di codifica è quindi data da

NLr =

La lunghezza di vincolo del codice convoluzionale è definita come il numero di scorrimenti per i quali un bit di messaggio, può influenzare l’uscita del codificatore. In un codificatore con un registro a scorrimento lungo M, la memoria è uguale a M bit di messaggio e K=M+1scorrimenti sono necessari per entrare nel registro ed uscirne=> Lunghezza di vincolo=M.

Il comportamento nel dominio del tempo di un codificatore convoluzionale può essere definito mediante la sua risposta all’impulso. Per un codificatore rate 1/K mostrato occorrono K risposte all’impulso per caratterizzarlo nel dominio del tempo. Siano (g0

(1), g1(1), ...gM

(1)),…, (g0

(K), g1(K)+, ...gM

(K)) le risposte all’impulso di tutte le connessioni ingresso-uscita del codificatore. Tali risposte all’impulso, che sono ottenute determinando le due sequenze di uscita al codificatore quando in ingresso ho la sequenza (1,0,0,...,0), sono dette le sequenze generatrici del codice.

Page 35: CODIFICA DI CANALE - conan.diei.unipg.itconan.diei.unipg.it/webtlc/lucidiTLC/codici.pdf · attraverso un canale di comunicazione gaussianoa banda limitata ... trovare un metodo veloce

Il funzionamento di un codificatore convoluzionale può essere illustrato in forma grafica mediante tre diagrammi equivalenti: albero del codice, traliccio (trellis) e diagramma degli stati.

1 32input

output 1

output 2

( ) 21 1 DDDg ++=

( ) 21 1 DDg +=

albero del codice

00

11

10

01

11

00

01

10

00

11

10

01

00

11

0

1

00111001110001100011100111000110

i simboli che etichettano i rami del percorso costituiscono la sequenza codificata. Si noti che è stato assunto che il valore iniziale memorizzato negli stadi del codificatore è 0. L’ albero diventa ripetitivo dopo i primi tre rami, cioè, dopo il terzo livello di biforcazione, si ripete la stessa configurazione iniziale Es. (1, 0, 0, m3, m4, ...) e (0, 0, 0, m3, m4, ...), generano gli stessi simboli di codice in corrispondenza dell’ingresso di m3 e m4, quindi la coppia di nodi corrispondente può essere unita.

Page 36: CODIFICA DI CANALE - conan.diei.unipg.itconan.diei.unipg.it/webtlc/lucidiTLC/codici.pdf · attraverso un canale di comunicazione gaussianoa banda limitata ... trovare un metodo veloce

traliccio (trellis)

(00)

(10)

(01)

(11)

00

11

11

0010

01

01

00

11

11

0010

01

01

00

11

11

0010

01

01

00

11

10

01

11

00 00

11

10

01

01

00

11

10 10 10

un ramo del trellis prodotto da uno 0 in ingresso è indicato con una linea nera mentre un ramo di codice prodotto da un 1 in è indicato con una linea verde.

Ogni sequenza in ingresso (messaggio), corrisponde ad uno specifico percorso nel trellis. Ad esempio, la sequenza (1, 0, 0, 1, 1,) produce l’uscita codificata (11, 10, 11, 11, 01).

Il trellis evidenzia il fatto che al codificatore convoluzionale si può associare una macchina a stati finiti.

Lo stato di un codificatore convoluzionale si può identificare con il contenuto del registro a scorrimento che determinerà l’uscita successiva.

Page 37: CODIFICA DI CANALE - conan.diei.unipg.itconan.diei.unipg.it/webtlc/lucidiTLC/codici.pdf · attraverso un canale di comunicazione gaussianoa banda limitata ... trovare un metodo veloce

Quando il j-esimo bit entra nel registro a scorrimento, la porzione della sequenza del messaggio contenente i più recenti M bit è (mj-M+1 , ... ,mj-1 , mj), dove mj è il bit corrente, che corrisponde allo stato del codificatore. Nel caso del codificatore convoluzionale nell’esempio considerato si ha che lo stato può assumere ognuno dei quattro possibili valori: a=00, b=01, c=10, d=11.

Se la lunghezza di vincolo del codificatore è M e la lunghezza della sequenza in ingresso è L, il trellis è composto da L+M stadi.

In generale, con i primi M-1 stadi si realizza l’allontanamento dallo stato iniziale, che nel caso considerato è suposto essere a=00, e con gli ultimi M-1 stadi si ritorna di nuovo ad esso.

Si nota che nella porzione centrale il trellis mostra una struttura fissa e periodica.

11

11

0010

01

01

00(00)(00)

(10)(10)

(01)(01)

(11)(11)10

Page 38: CODIFICA DI CANALE - conan.diei.unipg.itconan.diei.unipg.it/webtlc/lucidiTLC/codici.pdf · attraverso un canale di comunicazione gaussianoa banda limitata ... trovare un metodo veloce

Si possono unire i nodi a sinistra e destra, ottenendo diagramma degli stati del codificatore

00

11

00

10

01

(00)

(01)(10)

(11)

11

01

10

Una transizione di stato in risposta di un simbolo 0 in ingresso èrappresentata da una linea nera mentre una transizione in corrispondenza ad un 1 è rappresentata con una linea verde. I simboli binari che etichettano i rami sono l’uscita del codificatore in corrispondenza di quella transizione.

Page 39: CODIFICA DI CANALE - conan.diei.unipg.itconan.diei.unipg.it/webtlc/lucidiTLC/codici.pdf · attraverso un canale di comunicazione gaussianoa banda limitata ... trovare un metodo veloce

Decodifica a massima verosimiglianza di codici convoluzionaliAlgoritmo di Viterbi

Una sequenza codificata con un codice convoluzionale può essere decodificata minimizzando la probabilità di errore se si sceglie, tra tutte le sequenze generabili dal decodificatore, quella che meno si discosta da quella ricevuta.

Distanza di HAMMING decodifica HARD

Distanza di EUCLIDEA decodifica SOFT

Una ricerca esaustiva tra tutte le possibili sequenze generate dal codificatore ha un costo computazionale che diventa presto insostenibile al crescere della complessità del codificatore. L’algoritmo usato per estrarre tale sequenza e che minimizza le operazioni necessarie per l’estrazione di tale sequenza è l’algoritmo di Viterbi.

Sia m un vettore di messaggio (bit di sorgente) e x il corrispondente vettore di codice prodotto dal codificatore inviato al canale discreto. Sia yil vettore ricevuto, che può differire dal vettore di codice trasmesso a causa degli errori causati dalla presenza del rumore. Dato un vettore ricevuto y, il decodificatore ha il compito di fare una stima m del vettore di messaggio.

Poiché vi è una corrispondenza biunivoca tra il vettore di messaggio m ed il vettore di codice x, il decodificatore può assolvere al compito equivalentemente effetuando una stima x del vettore di codice. In altre parole m=m se e solo se x=x .

Page 40: CODIFICA DI CANALE - conan.diei.unipg.itconan.diei.unipg.it/webtlc/lucidiTLC/codici.pdf · attraverso un canale di comunicazione gaussianoa banda limitata ... trovare un metodo veloce

Sia p(y/x) la probabilità condizionata di ricevere la sequenza di simboli rappresentata dal vettore y quando è stata trasmessa la sequenza rappresentata da x. Il decodificatore a massima verosimiglianza seleziona la stima x in modo tale da minimizzare la funzione ln( p(y/x)).

(00)

(10)

(01)

(11)

00

11

11

0010

01

01

10

00

11

11

0010

01

01

10

00

11

11

0010

01

01

10

00

11

10

01

11

00 00

11

10

01

01

00

11

Al terzo stadio ci sono due percorsi che entrano in ognuno dei quattro nodi del traliccio. Ogni percorso che passa per il nodo in questione, e si dirama successivamente, si divide a monte del nodo nei due rami che lo hanno condotto al nodo stesso. Quindi, ciò che li distingue è il percorso attraverso il quale sono giunti al nodo in corrispondenza del quale si sono uniti.

Un decodificatore a massima verosimiglianza può prendere una decisione su quale dei due percorsi mantenere a monte del nodo scegliendo il ‘migliore’ dei due e scartando l’altro.

Questa sequenza di decisioni corrisponde al funzionamento dell’algoritmo di Viterbi. Le decisioni si basano sull’uso di una metrica, il cui calcolo èeffettuato per tutti i possibili percorsi nel traliccio.

Page 41: CODIFICA DI CANALE - conan.diei.unipg.itconan.diei.unipg.it/webtlc/lucidiTLC/codici.pdf · attraverso un canale di comunicazione gaussianoa banda limitata ... trovare un metodo veloce

Esempio

(00)

(10)

(01)

(11)

00

11

11

0010

01

01

10

00

11

11

0010

01

01

10

00

11

11

0010

01

01

10

00

11

10

01

11

00 00

11

10

01

01

00

11

1 1 0 0 1 1 0 0 0 1 0 0 0 0Seq. Ric.

(00)

(10)

(01)

(11)

4

1

1

2

2

2

3

3

3

3

2

3

1 1 1 0 1 1 0 0 0 0 0 0 0 0Seq. Stim.

2 222 2 1 1

2

0

Page 42: CODIFICA DI CANALE - conan.diei.unipg.itconan.diei.unipg.it/webtlc/lucidiTLC/codici.pdf · attraverso un canale di comunicazione gaussianoa banda limitata ... trovare un metodo veloce

Per ogni nodo (stato) nel traliccio l’ algoritmo confronta i due percorsi che entrano in ogni nodo, ed il percorso con la metrica minore è mantenuto, mentre l’ altro è scartato. Il percorso che è mantenuto dall’ algoritmo èchiamato sopravvissuto. Per un codice convoluzionale di lunghezza di vincolo K, ci sono non più di 2K-1 percorsi sopravvissuti e le loro metriche devono essere ogni volta memorizzate.

Tuttavia il numero dei percorsi sopravvissuti è relativamente basso se confrontato con la totalità dei percorsi realizzabili, quindi ciò consente di mantenere il relativamente basso il costo computazionale dell’algoritmo.

Quando due percorsi che entrano in uno stato hanno la stessa metrica èeffettuata una scelta casuale su quale dei due mantenere.

Passi dell’ Algoritmo di Viterbi

Passo 1: cominciando dal livello j=M, è calcolata la metrica di ogni percorso che entra in ogni stato del codificatore. E’ mantenuto un solo percorso (sopravvissuto) per ogni nodo del trellis (stato) in corrispondenza di quel livello.

Passo 2: si passa dal livello j al livello j+1. E’ calcolata la metrica per ogni percorso che entra in ogni stato sommando la metrica dei percorsi sopravvissuti al livello j alla metrica dei rami che connettono il livello j al livello j+1. Per ogni stato si determina il percorso con la metrica minore e tutti gli altri sono scartati.

Passo 3: se il livello j<L+M si ripete la procedura illustrata al Passo2, altrimenti l’algoritmo è giunto alla fine. In tal caso l’unico percorso sopravvissuto determina la sequenza stimata.

Page 43: CODIFICA DI CANALE - conan.diei.unipg.itconan.diei.unipg.it/webtlc/lucidiTLC/codici.pdf · attraverso un canale di comunicazione gaussianoa banda limitata ... trovare un metodo veloce

Il notevole vantaggio dell’algoritmo di Viterbi è che, per un codice con una lunghezza di vincolo K e frequenza di codice r=1/n , il numero di operazioni eseguite nel decodificare L bit è L2n(K-1) , che è una quantità lineare in L. Tuttavia, il numero di operazioni eseguite per ogni bit decodificato è una funzione esponenziale della lunghezza di vincolo K. Questa dipendenza esponenziale con K limita l’uso dell’algoritmo di Viterbi come tecnica di decodifica accettabile per codici con lunghezza di vincolo relativamente bassa (tipicamente da 7 a 11).

Il ritardo di decodifica, è in generale troppo lungo per molte applicazioni pratiche, oltre al fatto che la memoria richiesta per registrare l’intera lunghezza della sequenza sopravvissuta è troppo costosa.

Per ovviare al problema sono trattenuti ad ogni istante temporale t, solo i δ bit di informazione più recenti decodificati in ogni sequenza sopravvissuta. Per realizzare ciò, quando un nuovo bit di informazione è ricevuto, si prende una decisione sul bit ricevuto δ rami indietro nel trellis confrontando le metriche delle sequenze sopravvissute e decidendo in favore del bit della sequenza che ha la metrica più bassa. Un ritardo di δ≥5K causa un degrado minimo rispetto alle prestazioni dell’ algoritmo di Viterbi ottimo.

Page 44: CODIFICA DI CANALE - conan.diei.unipg.itconan.diei.unipg.it/webtlc/lucidiTLC/codici.pdf · attraverso un canale di comunicazione gaussianoa banda limitata ... trovare un metodo veloce

Un limite pratico rispetto al funzionamento teorico dell’algoritmo di Viterbi è che le metriche accumulate non possono essere registrate con precisione infinita, poiché queste, in generale, sono numeri reali.

Un problema nasce dal fatto che, sebbene possiamo quantizzare ogni metrica di ogni ramo in un ragionevole numero di bit tali da poter essere memorizzati, il valore cumulativo delle metriche cresce linearmente con il numero di rami decodificati. Questa difficoltà può essere superata annullando la metrica minore sottraendo la stessa quantità da ogni metrica accumulata dopo il calcolo per ogni ramo.

La massima distanza tra tutte le metriche dei percorsi distinti èfacilmente determinabile. Si supponga che la migliore metrica di ramo sia zero e la peggiore sia ν (possiamo ottenere ciò sottraendo una costante da tutte le metriche di ramo). La massima distanza per una lunghezza di vincolo K è quindi (K-1)ν , dato che ogni stato può essere raggiunto da ogni altro stato in al massimo K-1 transizioni. Poiché tutte le metriche di ramo si trovano tra zero e ν, la massima variazione di metrica fre due stati è Kν, che si ottiene sommando la metrica iniziale per separare i due percorsi e quella per riunirli; quindi lo spread non può essere maggiore di Kν. Per questo motivo, il numero di bit necessario per memorizzare la metrica di un percorso è

( ) νKn 2log=

Page 45: CODIFICA DI CANALE - conan.diei.unipg.itconan.diei.unipg.it/webtlc/lucidiTLC/codici.pdf · attraverso un canale di comunicazione gaussianoa banda limitata ... trovare un metodo veloce

Distanza libera (dfree)

Le prestazioni di un codice convoluzionale non dipendono solamente dall’algoritmo di decodifica usato ma anche dalle proprietà di distanza del codice. In questo contesto la misura più importante delle prestazioni del codice convoluzionale nel combattere il rumore di canale è la distanza libera, indicata con dfree

La distanza libera di un codice convoluzionale è definita come la minima distanza di Hamming tra due parole di codice associate a due percorsi nel trellis che divergono ad un certo stadio e che poi si riuniscono ad unostadio successivo.

Il calcolo della distanza libera dfree è legato strettamente con il calcolo della funzione generatrice del codice convoluzionale. Per un codice in cui ad esempio dfree=5, sono correggibili fino a due errori nella sequenza ricevuta.

16271232167514

16176611053313

155723433512

143661233511

121545116710

127535619

103712478

101711337

875536

735235

617154

5753

dfreeGeneratori in ottaleLungh. vincolo