Codici convoluzionali (dalle dispense e dal libro)
Codici convoluzionali I codici lineari a blocchi sono caratterizzati dal fatto che il processo di codifica è senza memoria. I codici convoluzionali invece sono dotati di memoria in quanto l influenza di un blocco di bit in ingresso si protrae sulla codifica dei blocchi successivi. bit informativi i u k! u i u i u i! u i! k! u i! u i! ( L!) u i! ( L!) k! u i!( L! ) vi v i n! v i Come per i codici a blocchi il rapporto Rk/n viene chiamato rate di codifica.
Struttura Il codice convoluzionale è completamente caratterizzato da: i parametri k, n, L; i collegamenti tra le celle del registro a scorrimento e i sommatori: g m g m,g kl" ( m,...,g m ) ove un termine uguale a implica il collegamento tra la cella i-esima e il sommatore m-esimo. bit informativi u i u i u i! u i! g g g (,,, ) (,,,) (,,,) v i v i v i
Macchina a stati Il codificatore convoluzionale può essere pensato come una macchina a stati dove s i ( u i",u i",...,u i" ( L") ) è il vettore di stato e ( ) ( ) s i+ f s i,u i v i g s i,u i sono rispettivamente l equazione di transizione di stato e quella di uscita. bit informativi ui ui! u i! g g (,, ) (,,) vi v i
iagramma di stati La macchina a stati può essere rappresentata da un diagramma di stato / / / / / / / / Il diagramma a stati però non contiene l informazione temporale. E possibile riunire l informazione delle transizioni fra stati e l evoluzione temporale del codificatore mediante quello che viene comunemente chiamato diagramma a traliccio o trellis del codice convoluzionale.
Traliccio / / / / / / / / Con il traliccio si può vedere cosa esce dal codificatore per ogni sequenza in ingresso a partire dallo stato, provoca, con passaggi da a, da a e da ancora a.
istanze Per caratterizzare le prestazioni del codice si definisce un concetto di distanza simile a quello di distanza minima per i codici a blocco. Consideriamo una sequenza in uscita al decodificatore lunga Nn bit (N impulsi di clock). Si definisce distanza colonna d c la minima distanza tra tutte le possibili sequenze di lunghezza Nn. Essendo il codice lineare è possibile, come per i codici a blocco, considerare le distanze dalla sequenza nulla che equivale al peso delle sequenze stesse. Si definisce distanza libera del codice convoluzionale d f lim N"! d c ( N) Il fatto che questo limite esista finito implica che qualsiasi sequenza che si dirami dallo stato nullo è destinata, in un tempo finito dipendente dalla memoria del codificatore, a ricongiungersi con la sequenza nulla.
Grafi /(-)!
ai conti si ottiene T ( ) Funzione di trasferimento ( ) ' $ % " &! # i ' % % %! &! $ "! " " #! i 5 a cui, si deduce, in accordo con quanto di vede nel traliccio, che la distanza libera del codice è 5. / / / / / / / /
ecodifica I codici convoluzionali non hanno un predeteminata lunghezza di blocco. Per questo motivo vengono solitamente fatti assumere al codificatore uno stato iniziale e uno finale definito, tipicamente quello nullo, forzandolo quindi ad emettere parole di lunghezza fissata. Ad ogni generica parola di codice trasmessa è associato un percorso tra gli stati del diagramma a traliccio. Il decodificatore dovrà quindi cercare, tra tutti i possibili, il cammino sul traliccio che produce la sequenza codificata più verosimigliante a quella ricevuta. ata una sequenza ricevuta di lunghezza N, il criterio di decisione a massima verosimiglianza prevederebbe il confronto con tutte le possibili parole trasmesse. Nel caso in cui i campioni in uscita al filtro adattato vengano inviati ad un decisore a soglia e quindi il decodificatore riceva in ingresso un flusso bit (hard decoding), la funzione distanza utilizzata è la distanza di Hamming. Se invece in uscita al filtro adattato i campioni vengono quantizzati con p bit e inviati al decoder (soft decision), la distanza utilizzata è quella euclidea.
L algoritmo di Viterbi L idea base del processo di decodifica (chimato algoritmo di Viterbi) è che partendo dallo stato iniziale nullo, vengono generati in modo sequenziale sul traliccio tutti i possibili cammini calcolando, ad ogni transizione, la metrica incrementale data dalla distanza tra la sequenza ricevuta e quella generata sul traliccio ad ogni transizione tra stati. Ad ogni istante di tempo considerato si avrà che per ogni stato (nodo) sul traliccio convergeranno un certo numero di cammini che da quell istante in poi si fonderanno nei nuovi cammini che emergeranno dallo stesso nodo. L algoritmo di Viterbi quindi sceglie tra tutti i percorsi che confluiscono in un unico nodo quello con la metrica maggiore (minore distanza). In questo modo invece di confronti, si memorizzano soltanto le sequenze con le relative metriche. Ad ogni istante di clock (transizione fra stati) si calcolano metriche relative alla sola transizione corrente da sommare alle metriche incrementali di cammino, si determinano i cammini sopravvissuti fino alla convergenza nello stato finale corrispondente alla fine della sequenza da decodificare. Se non vi è uno stato finale si sceglie semplicemente il percorso a minima distanza fra i rimasti.
Esempio Si cerchi di decodificare la sequenza 5 6 La sequenza decodificata è quella in corrispondenza del cammino evidenziato in neretto corrispondente a. Il decodificatore ha corretto un errore nella quinta posizione.
Prestazioni dei codici convoluzionali Nel caso di decodifica con hard decision, in ingresso al decodificatore si avrà un flusso binario ottenuto dopo la demodulazione. La metrica utilizzata è la distanza di Hamming e la probabilità d errore è ben approssimata da: P Rd! E N ( e) " Ce f b Se il decoder riceve in ingresso direttamente in campioni in uscita al filtro adattato (soft decision), la metrica da utilizzare è la distanza euclidea. In questo caso la probabilità d errore è ben approssimata da: P & E ( ) $ b e ' CQ d f R! % N " #