Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Walter Grossi
settembre 2018
Cosa sono i codici a convoluzione?
Una codifica a convoluzione un tipo di codifica in cui viene
codificato un flusso continuo di dati (quindi carattere per
carattere) in funzione dei dati codificati in precedenza. A
differenza della codifica a Blocchi quindi non processa singole
parole di lunghezza fissata ma parole di lunghezza arbitraria.
Come funzionano i codici a convoluzione? Generiamo una
trasmissione con un codice convoluzionale facendo scorrere la
sorgente attraverso un filtro lineare(Linear-Feedback Shift-register).
Questo filtro fa uso di un registro a scorrimento e di una funzione
lineare.Nel filtro riconosciamo un vettore di stato che parte
dell’input della funzione ,questo vettore si aggiorna allo scorrere del
registro.
Figure: Linear-Feedback Shift-register
Per convenzione si assume che il vettore di stato sia composto
inzialmente di soli zeri e il registro scorre aggiornandosi coi nuovi
simboli codificati. É possibile rappresentare tutte le codeword in un
reticolo
Il problema della decodifica: Dato per buono che la parola da
decodificare sia effettivamente una codeword la decodifica si
tradurrebbe in un semplice sistema lineare. Per verificare che la
parola data sia effettivamente una codeword basta verificare che
sia un cammino del reticolo associato alla funzione lineare scelta.
Se la parola dovesse risultare non essere un codeword allora
necessario per correggere gli errori e per fare questo cerchiamo la
codeword pi probabile. Quindi necessario massimizzare la seguente
sommatoria :
X
P(t|y )
t
X 1
t
P(t|y )
Come funziona l’algoritmo? L’algoritmo molto semplice:
-Al passo base per ogni arco uscente dal nodo di partenza si scrive
il peso di tale arco sul nodo d’arrivo.
-Per ogni altro nodo si somma il valore riportato su di esso ad ogni
peso di arco uscente e se il nodo di arrivo ha gi un valore positivo
si trascrive il minore tra tale valore e la somma calcolate in
precedenza.
Figure: Esempio
Conclusione:l’algoritmo termina in tempo Lineare nel numero di
archi e si rivela un ottimo strumento per correggere eventuali errori
nella codifica a convoluzione e facilitarne la decodifica.