Codici a blocco lineari - matrice generatrice, controllo di parità, sindrome e codici di Hamming
In questa pagina 6
I codici a blocco (Codifica di canale - codici a blocco, distanza minima, rivelazione e correzioneLa codifica di canale aggiunge ridondanza ai bit per rivelare o correggere gli errori del canale. Un codice a blocco $(n,k)$ trasforma $k$ bit in $n$ bit (rendimento $R_c=\frac kn$). Con la distanza di Hamming minima $d_{min}$ il codice rivela fino a $d_{min}-1$ errori e ne corregge $t=\left\lfloor\frac{d_{min}-1}2\right\rfloor$ (decodifica a minima distanza). Vale il limite di Singleton $d_{min}\le n-k+1$. Su un canale binario simmetrico con errore $p$, la probabilità di parola sbagliata è $P_w\le\sum_{i>t}\binom nip^i(1-p)^{n-i}$ e, con $p$ piccola, $P_{bit}\approx\frac{d_{min}}n\binom n{t+1}p^{t+1}$.Codifica di canale - codici a blocco, distanza minima, rivelazione e correzione →) si possono descrivere con una tabella di parole, che diventa impraticabile se è grande. I codici linearicodici in cui la somma di due parole è ancora una parola: formano uno spazio vettoriale sul campo binario si descrivono con poche righe e si decodificano con un calcolo semplice.
Definizione e distanza minima
Si lavora nel campo binarioi due valori e con somma e prodotto modulo : somma e prodotto modulo (). Un codice è lineare se (quindi contiene la parola nulla). Conseguenza importante: la distanza minima è il peso minimoil più piccolo numero di uni tra le parole non nulle delle parole non nulle (non servono tutte le coppie).
Esempio di codice non lineare. , , , : ma non è una parola (): non è lineare (anche se è sistematicoi primi bit della parola di codice coincidono con i bit di informazione).
Matrice generatrice
Una base di parole di codice linearmente indipendentinessuna è somma modulo di altre, messe in righe, forma la matrice generatricematrice le cui righe sono parole di codice: moltiplicata per la parola di informazione dà la parola di codice (). La parola di informazione si codifica con Il codice è sistematico se , con matrice : i primi bit sono l'informazione, i restanti sono le parità . Una qualsiasi si porta in forma sistematica con somme di righe.
Matrice di controllo di parità e sindrome
La matrice di controllo di paritàmatrice tale che una parola è di codice se e solo se () è tale che Per : (modulo 2 il segno non conta). Se si riceve ( = vettore di errorevettore con un nelle posizioni in cui il canale ha sbagliato il bit), la sindromevettore : nullo per le parole di codice e dipendente solo dall'errore dipende solo dall'errore, non dalla parola trasmessa. Allora:
- : è una parola di codice (nessun errore, oppure un errore che trasforma una parola in un'altra: non rivelabile);
- : errore rivelato;
- per correggere si cerca l'errore più probabile (di peso minimo, il coset leadertra gli errori con una data sindrome, quello di peso minimo, cioè il più probabile) con quella sindrome e lo si sottrae: . Per un errore singolo nella posizione , è la -esima colonna di : se le colonne sono tutte diverse e non nulle il codice corregge ogni errore singolo.
Inoltre è il minimo numero di colonne di linearmente dipendenti (la somma di colonne è zero): se le colonne sono non nulle e distinte, se sono solo non nulle.
Esempio completo: codice e sua estensione
Il codice con parole , , (e le loro somme, in tutto parole) ha , . Riducendo in forma sistematica () si ottiene (codice a parità pariil numero di uni di ogni parola è pari). Le parole hanno peso : , rivela errore, ne corregge .
Si aggiunge un quinto bit : , (verificato: ). Le parole di hanno pesi : ancora (la parola ha peso ). Le colonne di sono : non sono tutte distinte, quindi non si corregge. Ricevuta : : errore rivelato; la sindrome coincide con le colonne e di , quindi un errore singolo può essere in posizione () o (): e sono entrambe parole di codice ed equidistanti da , quindi non si può correggere, solo rivelare.
Codici di Hamming
Per il codice di Hammingcodice con la cui ha per colonne tutte le sequenze non nulle: corregge un errore ha , , e con per colonne tutte le sequenze binarie non nulle di bit (quindi colonne distinte e non nulle: , e colonne distinte sommano a zero, per esempio se ). Corregge errore ed è perfettole sfere di Hamming di raggio attorno alle parole riempiono tutto lo spazio senza sovrapporsi (). Per si ha l'Hamming : Decodifica: si calcola ; se si inverte il bit tale che la colonna di sia . Esempio: dà (parità , , , dalle ultime tre colonne di ); se si riceve (errore in posizione ), , uguale alla colonna di : si inverte il bit e si ritrova . (Controllato con Python: tutti i errori singoli sono corretti, ; con la probabilità di parola errata è .)
Errori comuni
- Verificare la linearità guardando solo la parola nulla o la somma di una coppia: serve la chiusura per tutte le somme.
- Calcolare su tutte le coppie in un codice lineare (basta il peso minimo) o, al contrario, prenderlo da una riga di qualsiasi.
- Scrivere invece di (la trasposta serve alle dimensioni: ).
- Credere che la sindrome non nulla identifichi sempre l'errore: con colonne uguali o per più errori la correzione è ambigua o sbagliata.
Versione ripasso
- Lineare (Codifica di canale - codici a blocco, distanza minima, rivelazione e correzioneLa codifica di canale aggiunge ridondanza ai bit per rivelare o correggere gli errori del canale. Un codice a blocco $(n,k)$ trasforma $k$ bit in $n$ bit (rendimento $R_c=\frac kn$). Con la distanza di Hamming minima $d_{min}$ il codice rivela fino a $d_{min}-1$ errori e ne corregge $t=\left\lfloor\frac{d_{min}-1}2\right\rfloor$ (decodifica a minima distanza). Vale il limite di Singleton $d_{min}\le n-k+1$. Su un canale binario simmetrico con errore $p$, la probabilità di parola sbagliata è $P_w\le\sum_{i>t}\binom nip^i(1-p)^{n-i}$ e, con $p$ piccola, $P_{bit}\approx\frac{d_{min}}n\binom n{t+1}p^{t+1}$.Codifica di canale - codici a blocco, distanza minima, rivelazione e correzione →): chiuso rispetto alla somma modulo 2; . : non lineare ().
- (): ; sistematica . (): , .
- Sindrome : valida; errore rivelato; errore singolo in : colonna di . minimo numero di colonne di dipendenti.
- Es. : , ; con : , : , errore rivelato non correggibile (colonne e uguali).
- Hamming : , colonne di = tutte le sequenze non nulle, perfetto; corregge tutti i errori singoli; a .
- Errori tipici: linearità su una sola coppia; ; sindrome errore sempre identificato.