Codici a blocco lineari e sindrome
In questa pagina 8
In questa pagina 5
Nella nota Codici a blocco - distanza minima, rivelazione e correzioneLa codifica di canale aggiunge ridondanza in modo mirato: $k$ bit di informazione diventano una parola di codice di $n>k$ bit scelta tra $2^k$ parole ammesse. Se la parola ricevuta non è una parola di codice l'errore è rivelato (e si può chiedere la ritrasmissione, ARQ) oppure corretto (FEC). La qualità dipende dalla distanza minima di Hamming $d_{min}$: si rivelano fino a $d_{min}-1$ errori e se ne correggono $t<d_{min}/2$, ma non contemporaneamente. Per un BSC con $P_{bit}<1/2$ la decisione ottima ML coincide con quella a distanza minima. Limite di Hamming: $k/n\le1-\frac1n\log_2\sum_{r=0}^t\binom nr$.Codici a blocco - distanza minima, rivelazione e correzione → un codice era un elenco di parole, e per trovare bisognava confrontare tutte le coppie; per decodificare, cercare la parola più vicina in tutto l'elenco. Con sono parole: impraticabile. I codici lineari aggiungono una struttura algebrica che rende tutto più semplice: si descrivono con una matrice, si trova con un passaggio solo e la decodifica si fa con una piccola tabella.
Algebra su
L'insieme con il prodotto AND (indicato con ) e la somma XOR (indicata con , ovvero somma modulo : , , ) è un campo (CampiUn campo è un insieme di numeri con somma e prodotto che rispettano le regole usuali (associativa, commutativa, neutri, opposti, inversi, distributiva): è ciò che serve per risolvere le equazioni di primo grado. Esempi: Q, R, C e i campi finiti.Campi →). Dal fatto che segue che ogni elemento è l'opposto di sé stesso, per cui e la sottrazione coincide con la somma: (e per questo e sono la stessa matrice).
L'insieme delle sequenze di bit, con la somma bit a bit e il prodotto per gli scalari e , è uno spazio vettoriale (Spazi vettorialiUno spazio vettoriale su un campo K è un insieme con una somma di vettori e un prodotto per scalari che rispettano 7 proprietà. Esempi fondamentali: K^n (somma componente per componente), le funzioni da R in R, i polinomi.Spazi vettoriali →) di dimensione e con elementi. Non ha un prodotto scalare, ma ha la distanza di Hamming , che induce una norma:
Definizione (peso di Hamming). numero di bit uguali a in (somma in , non modulo ), dove è la parola nulla (tutti zeri). Vale .
Esempio. , : , peso (le posizioni differiscono).
Codice lineare
Definizione (codice lineare). Un codice a blocco è lineare se l'insieme delle parole è un sottospazio (Sottospazi vettorialiUn sottospazio vettoriale è un sottoinsieme che è spazio vettoriale con le stesse operazioni: basta che sia chiuso per somma e per prodotto per scalari. Deve contenere il vettore nullo. In R^2 i sottospazi sono {0}, le rette per l'origine e tutto R^2.Sottospazi vettoriali →) di .
Un sottospazio è chiuso rispetto alle combinazioni lineari; in l'unica combinazione lineare non banale è la somma, quindi la definizione si riduce a: Corollari: vale anche (è la stessa cosa) e soprattutto : ogni codice lineare contiene la parola nulla. È un criterio comodo per scartare i codici non lineari: se il codice non è lineare.
Teorema (distanza minima di un codice lineare). In un codice lineare coincide con il peso di Hamming minimo delle parole non nulle: Dimostrazione. Per definizione . Basta mostrare che l'insieme delle differenze con è esattamente l'insieme delle parole di codice non nulle. Una differenza è una parola di codice (linearità) e non è nulla perché . Viceversa, sia non nulla: allora è la differenza di due parole del codice, perché .
Il vantaggio è grande: invece di confrontare tutte le coppie () si fa un solo passaggio sulle parole non nulle.
Esempio. Il codice dell'Esercizio - Codici (4,2) lineari o no e probabilità di errore non rivelato, , non è lineare: manca . Il , , lo è: pesi , .
Rappresentazione matriciale
Se è una mappa lineare (Funzioni lineari e isomorfismiUna funzione tra spazi vettoriali è lineare se rispetta somma e prodotto per uno scalare; manda 0 in 0, è determinata dalle immagini di una base e si chiama isomorfismo quando è anche biiettiva.Funzioni lineari e isomorfismi →), ogni bit di codice è combinazione lineare di bit di informazione: cioè, con i vettori scritti in colonna ( è , è ), (Alcuni testi usano la convenzione a riga, con trasposta e post-moltiplicata: ; per questo la di altri libri e delle note di Elettronica ha le righe e le colonne scambiate.) Per una codifica invertibile ha rango pieno (Operazioni tra matriciLe matrici m×n formano uno spazio vettoriale (somma e prodotto per scalare elemento per elemento); il prodotto righe per colonne corrisponde alla composizione di funzioni lineari, è associativo ma non commutativo; la trasposta scambia righe e colonne e (AB)^T = B^T A^T.Operazioni tra matrici →, Nucleo e immagineIl nucleo (vettori mandati in 0) e l'immagine (vettori raggiunti) di una funzione lineare sono sottospazi; f è iniettiva se e solo se Ker f = {0}; dim Ker f + dim Im f = dim V (nullità + rango); l'antimmagine di un vettore è una soluzione particolare più il nucleo.Nucleo e immagine →). Poiché le parole di informazione sono sempre equiprobabili, interessa solo l'insieme delle parole, che è anche lo span (il sottospazio generato) delle colonne di .
Definizione (matrice generatrice). Se si prendono parole di codice linearmente indipendenti (Combinazioni lineari e dipendenza lineareUna combinazione lineare è una somma di vettori moltiplicati per scalari. I vettori sono linearmente indipendenti se l'unica combinazione che dà il vettore nullo è quella con tutti i coefficienti nulli; altrimenti sono dipendenti, e allora uno di essi è combinazione lineare degli altri.Combinazioni lineari e dipendenza lineare →) e le si mettono in colonna si ottiene (), una matrice generatrice del codice. Le sono una base di (Generatori e basiDei vettori generano V se ogni vettore di V è loro combinazione lineare; una base è un insieme di generatori linearmente indipendenti, e allora ogni vettore si scrive in modo unico come combinazione dei vettori di base. Lemma dello scambio: i vettori indipendenti non sono mai più dei generatori.Generatori e basi →, DimensioneTutte le basi di uno spazio vettoriale hanno lo stesso numero di vettori, la dimensione (dim K^n = n). Da ogni sistema di generatori si estrae una base, ogni insieme di vettori indipendenti si completa a una base, e in dimensione n bastano n vettori indipendenti (o n generatori) per avere una base.Dimensione →: ).
Ci sono più matrici generatrici dello stesso codice (basta scegliere un'altra base): la generazione riguarda l'insieme delle parole, non la mappa specifica , che cambia.
Esempio. Il codice dell'esercizio, , , , , ha La prima colonna è (la parola associata a ), la seconda (per ); la parola per è la loro somma , e per si ha .
Codici sistematici
Teorema (forma di per un codice sistematico). Un codice lineare sistematico ammette una matrice generatrice con la matrice identità e una matrice detta matrice di parità. Dimostrazione. Per definizione di sistematico per : le prime righe di sono . Gli altri bit sono combinazioni lineari dei e le loro righe formano .
Esempi. Ripetizione (, , …, volte): ( blocchi), copie di . Un bit di parità : , è il vettore riga di soli uni.
Codice di Hamming (esempio guida del capitolo), sistematico con I bit di parità sono , , . Dalle colonne , , , si vedono subito parole oltre alla nulla; le altre sono le somme, ad esempio . Tutte le parole: (enumerate al calcolatore).
Come si trova guardando
In linea di principio si guardano tutte le parole e si prende il peso minimo: per il i pesi sono (una parola), (sette parole), (sette parole), (una parola): . Dalla sola si può dire (le colonne hanno peso e la ha peso ). Per escludere e ci sono trucchi:
- non può essere : una parola di peso avrebbe un solo bit di informazione uguale a e tutte le parità nulle, cioè una colonna di nulla; qui nessuna colonna di è nulla (e una parola con parte sistematica nulla è la parola nulla, che non conta);
- non può essere : una parola di peso avrebbe o (i) due bit di informazione a e parità nulle, cioè due colonne di uguali (la somma di due colonne uguali è nulla), oppure (ii) un solo bit di informazione a e una sola parità a , cioè una colonna di di peso . Le colonne di del sono : tutte diverse e di peso .
Un modo più sistematico, con , è nella sezione sulla matrice di controllo.
Permutazioni elementari ed equivalenza
Si consideri la matrice ottenuta dall'identità scambiando le righe e (una matrice di permutazione), e la matrice ottenuta dall'identità aggiungendo un fuori diagonale (che somma una riga o una colonna a un'altra). Come operazioni su :
- post-moltiplicando per matrici ( oppure ) si operano trasformazioni elementari sulle colonne: scambia le colonne e (stessa base, stesso sottospazio ), sostituisce la colonna con (sempre una base di ). Cambia la mappa ma non il codice.
- pre-moltiplicando per matrici () si scambiano le righe, cioè si permutano i bit delle parole di codice: il sottospazio cambia, ma si ottiene un codice equivalente, con gli stessi pesi, la stessa e gli stessi poteri di rivelazione e correzione. Lo stesso vale per .
Esempio. scambiando i bit e diventa : stessi pesi , .
Lemma. Ogni codice lineare ha un equivalente sistematico. Idea della dimostrazione. Data una a rango pieno, con operazioni elementari su righe e colonne (l'eliminazione di Gauss-Jordan, Eliminazione di GaussCon tre operazioni elementari sulle righe (scambio, moltiplicazione per uno scalare non nullo, somma di un multiplo di un'altra riga) ogni matrice si riduce a scala senza cambiare il rango; serve a calcolare ranghi, risolvere sistemi, trovare relazioni di dipendenza e matrici che riducono a scala.Eliminazione di Gauss →) la si riduce a .
Teorema (limite di Singleton). Per ogni codice lineare , . Dimostrazione. Si usa il lemma. Ogni colonna di è una parola di codice che ha al più un nella parte superiore () e al più uni nella parte inferiore (): peso . Quindi esiste una parola non nulla di peso e .
Esempi. : . Ripetizione : (uguaglianza). Un bit di parità : . Il limite è piuttosto lasco, ma conferma che per avere alta bisogna sacrificare il tasso: .
Matrice di controllo di parità e sindrome
Definizione (matrice di controllo di parità). Per un codice lineare la matrice di controllo di parità è una matrice di tipo (in generale , in pratica ) tale che dove è il vettore nullo con elementi. (Non va confusa con la matrice di parità , che è un'altra cosa.)
Se si conosce si ha un controllo rapido: ricevuta ci si chiede se è una parola di codice e si calcola il vettore Se la sindrome è nulla non ci sono errori (a meno che l'errore non sia non rivelato, cioè è un'altra parola di codice); se è non nulla, l'errore è rivelato.
Teorema (proprietà caratteristica). () è la matrice di controllo del codice con matrice generatrice se e solo se e . Dimostrazione (sketch). () è fatta di parole di codice, quindi per ogni colonna: (la matrice nulla ). () è lo spazio nullo di (Nucleo e immagineIl nucleo (vettori mandati in 0) e l'immagine (vettori raggiunti) di una funzione lineare sono sottospazi; f è iniettiva se e solo se Ker f = {0}; dim Ker f + dim Im f = dim V (nullità + rango); l'antimmagine di un vettore è una soluzione particolare più il nucleo.Nucleo e immagine →), che ha dimensione ; e dice che lo span di (dimensione ) è contenuto nel nucleo di : avendo la stessa dimensione coincidono.
Questo giustifica nei casi pratici (per avere rango pieno senza righe ridondanti).
Teorema (matrice di un codice sistematico). Se allora Dimostrazione. ha rango per la presenza di . Inoltre . Per la proprietà caratteristica è la matrice di controllo. (Il teorema vale anche sui campi non binari, dove il segno conta.)
Esempio. Hamming (): Controllo su : la prima riga di somma i bit di (), la seconda i bit (), la terza i bit (): . Lo stesso vale per (, verificato al calcolatore). Le colonne di sono : tutte le sequenze non nulle di bit, e quindi tutte distinte e non nulle.
Come dà
( = colonna di ): una parola di codice di peso corrisponde a colonne di che sommano a . Quindi è il minimo numero di colonne di linearmente dipendenti. Se nessuna colonna è nulla, ; se inoltre sono tutte distinte, nessuna coppia somma a zero e . Per il le colonne sono distinte e non nulle, quindi ; e la terna è dipendente: . Quindi . Questo è il criterio con cui, nella simulazione d'esame 2013, si vede quanti errori un codice può rivelare.
Un'analogia: la prova del nove. Per controllare si sostituiscono i numeri con la somma ripetuta delle loro cifre (con ): ; ; . Se coincide con i numeri sono "probabilmente" giusti; se non coincide c'è sicuramente un errore. È il calcolo di un numero modulo (perché , quindi ): la differenza è la sindrome, e se non è divisibile per c'è un errore.
Decodifica con la sindrome
La sindrome è un vettore di bit: ci sono sindromi possibili, ma i vettori sono . Quindi più vettori hanno la stessa sindrome: quanti? . Infatti è un sistema di equazioni in incognite (sottodeterminato) con soluzioni; verifica: per le soluzioni sono le parole di codice, .
"Avere la stessa sindrome" è una relazione di equivalenza (riflessiva, simmetrica, transitiva) su , e le relazioni di equivalenza inducono partizioni. (Altro esempio: come partizione di nelle classi dei resti modulo , pari e dispari.)
Definizione (laterale, o coset). Ognuna delle classi della partizione si chiama coset: è partizionato in coset, ciascuno associato a una sindrome e con elementi; uno di essi (sindrome nulla) è l'insieme delle parole di codice .
Definizione (coset leader). A ogni sindrome si associa un elemento speciale cioè l'elemento del coset di peso di Hamming minimo. Se più elementi hanno peso minimo se ne sceglie uno con una regola qualsiasi. Evidentemente .
Teorema (decodifica a sindrome). Ricevuto con sindrome , la decodifica a distanza minima (MD) è Dimostrazione. Primo, è una parola di codice: . Poi, come funziona MD? Se si fanno ipotesi: , dove è il possibile vettore d'errore (con un nei bit invertiti), e si sceglie quello con meno uni (distanza di Hamming minima). I vettori (1) sono tutti diversi, (2) sono , (3) hanno tutti sindrome : infatti . Sono quindi tutto il coset di , e quello di peso minimo è per definizione . La decodifica MD è , cioè quanto affermato.
Corollari. Se la sindrome è nulla e il coset leader è : nessuna correzione, coerente con MD. Più in generale il coset leader coincide con la sindrome stessa solo in casi particolari.
Il vantaggio pratico: i coset leader si mettono in una tabella con righe (in genere poche). Ricevuta : si calcola , si legge e si sottrae.
Esempio completo: il codice
, quindi e (controllo: ). Le sindromi dividono i vettori in coset da elementi:
| elementi del coset | coset leader | |
|---|---|---|
| (il codice) | ||
| oppure (entrambi peso ) | ||
Si riceve : , coset leader , (è una parola di codice). Nel coset i leader e hanno lo stesso peso: la decodifica sceglie uno dei due, ma l'errore è a distanza da due parole di codice diverse, quindi non è garantita la correzione (coerente con , : nessun errore correggibile). Qui il leader del coset è unico: la parola decodificata è a distanza da , mentre le altre parole di codice (, , ) sono a distanza , e .
Esempio con Hamming
La tabella dei coset leader del ha righe: la sindrome nulla () e le sindromi non nulle, ciascuna uguale a una colonna di , hanno per leader il vettore con un solo nella posizione di quella colonna:
Esempio: , (parità: , , ). Se il canale sbaglia il bit si riceve e : è la colonna di , quindi e ✓. Una sola sindrome per ognuno dei errori singoli: il codice li corregge tutti (112 casi = verificati al calcolatore). Con errori invece la decodifica sbaglia sempre: la sindrome è la somma di due colonne, che è una terza colonna, e si "corregge" il bit sbagliato aggiungendo un terzo errore.
Il codice del compito 2013
(colonne , , ): è sistematico (le prime tre righe sono ), , e con . I pesi delle parole sono : , rivela fino a errori. Il calcolo completo è nell'Esercizio - Quattro domande brevi su capacità, TDMA e FDMA, entropia e codice lineare (simulazione d'esame 2013).
Errori comuni
- Verificare la linearità con una sola somma: serve la chiusura per tutte le coppie (o basta controllare che per scartare un codice).
- Calcolare su tutte le coppie in un codice lineare, o prenderlo dal peso di una colonna di qualsiasi (è solo un limite superiore).
- Scrivere con : l'identità va dalla parte dei bit di parità, (verificare sempre ).
- Confondere ( in questo corso) con quella dell'altra convenzione (): conta l'ordine del prodotto.
- Credere che una sindrome non nulla identifichi sempre l'errore: con colonne uguali o con due o più errori la correzione è ambigua o sbagliata.
Collegamenti
Il codice di Hamming e il CRC sono in Codici di Hamming e CRCIl codice di Hamming $(2^h-1,,2^h-h-1)$ ha come matrice di controllo $H$ che ha per colonne tutte le sequenze non nulle di $h$ bit: colonne distinte e non nulle danno $d_{min}=3$, la sindrome di un errore singolo è la colonna corrispondente, quindi corregge 1 errore (o rivela 2) ed è un codice perfetto ($2^{n-k}=1+n$). Per $(7,4)$ e BSC: errore non rivelato $\simeq7P^3(1-P)^4$, parola sbagliata dopo correzione $\simeq\binom72P^2(1-P)^5$. Il CRC è un codice lineare ciclico usato per sola rivelazione: la parola è $m(x)x^r$ più il resto della divisione per il polinomio generatore $g(x)$ di grado $r$ (modulo 2); rivela ogni errore a burst di lunghezza $\le r$.Codici di Hamming e CRC →. Per le basi algebriche: Spazi vettorialiUno spazio vettoriale su un campo K è un insieme con una somma di vettori e un prodotto per scalari che rispettano 7 proprietà. Esempi fondamentali: K^n (somma componente per componente), le funzioni da R in R, i polinomi.Spazi vettoriali →, Nucleo e immagineIl nucleo (vettori mandati in 0) e l'immagine (vettori raggiunti) di una funzione lineare sono sottospazi; f è iniettiva se e solo se Ker f = {0}; dim Ker f + dim Im f = dim V (nullità + rango); l'antimmagine di un vettore è una soluzione particolare più il nucleo.Nucleo e immagine →, DimensioneTutte le basi di uno spazio vettoriale hanno lo stesso numero di vettori, la dimensione (dim K^n = n). Da ogni sistema di generatori si estrae una base, ogni insieme di vettori indipendenti si completa a una base, e in dimensione n bastano n vettori indipendenti (o n generatori) per avere una base.Dimensione →. Esercizi: Esercizio - Codici (4,2) lineari o no e probabilità di errore non rivelato, Esercizio - Test del DNA con 4, 5 e 7 provette.
Versione ripasso
Un codice è lineare se è un sottospazio di (Sottospazi vettorialiUn sottospazio vettoriale è un sottoinsieme che è spazio vettoriale con le stesse operazioni: basta che sia chiuso per somma e per prodotto per scalari. Deve contenere il vettore nullo. In R^2 i sottospazi sono {0}, le rette per l'origine e tutto R^2.Sottospazi vettoriali →): in basta che la somma XOR di due parole di codice sia una parola di codice. Il codice si descrive con una matrice, invece che con un elenco di parole (vedi Codici a blocco - distanza minima, rivelazione e correzioneLa codifica di canale aggiunge ridondanza in modo mirato: $k$ bit di informazione diventano una parola di codice di $n>k$ bit scelta tra $2^k$ parole ammesse. Se la parola ricevuta non è una parola di codice l'errore è rivelato (e si può chiedere la ritrasmissione, ARQ) oppure corretto (FEC). La qualità dipende dalla distanza minima di Hamming $d_{min}$: si rivelano fino a $d_{min}-1$ errori e se ne correggono $t<d_{min}/2$, ma non contemporaneamente. Per un BSC con $P_{bit}<1/2$ la decisione ottima ML coincide con quella a distanza minima. Limite di Hamming: $k/n\le1-\frac1n\log_2\sum_{r=0}^t\binom nr$.Codici a blocco - distanza minima, rivelazione e correzione →).
Peso, linearità e distanza minima
- Peso di Hamming: (somma in ), cioè il numero di uni; .
- Esempio: , peso .
- Ogni codice lineare contiene : se il codice non è lineare.
- Teorema: in un codice lineare Basta un passaggio sulle parole non nulle, invece di confrontare tutte le coppie.
- Esempio: non è lineare (manca ). lo è: pesi , .
Matrice generatrice
- Se è lineare, , cioè
- Le colonne di sono parole di codice linearmente indipendenti e formano una base di (, Generatori e basiDei vettori generano V se ogni vettore di V è loro combinazione lineare; una base è un insieme di generatori linearmente indipendenti, e allora ogni vettore si scrive in modo unico come combinazione dei vettori di base. Lemma dello scambio: i vettori indipendenti non sono mai più dei generatori.Generatori e basi →, DimensioneTutte le basi di uno spazio vettoriale hanno lo stesso numero di vettori, la dimensione (dim K^n = n). Da ogni sistema di generatori si estrae una base, ogni insieme di vettori indipendenti si completa a una base, e in dimensione n bastano n vettori indipendenti (o n generatori) per avere una base.Dimensione →). Più matrici generano lo stesso codice.
- Esempio: per con , , , :
- Il codice è sistematico se (le prime righe sono l'identità; è la matrice di parità).
- Esempio: Hamming sistematico con , , , cioè Le parole si ottengono con le combinazioni delle quattro colonne di ; ad esempio .
Trovare dalla forma
- Per il i pesi delle parole sono (una), (sette), (sette), (una): .
- Limite di Singleton: per ogni codice lineare . Dimostrazione: ogni colonna di (ottenuta per Gauss-Jordan, Eliminazione di GaussCon tre operazioni elementari sulle righe (scambio, moltiplicazione per uno scalare non nullo, somma di un multiplo di un'altra riga) ogni matrice si riduce a scala senza cambiare il rango; serve a calcolare ranghi, risolvere sistemi, trovare relazioni di dipendenza e matrici che riducono a scala.Eliminazione di Gauss →) ha peso al più . Esempi: : ; ripetizione : .
- Equivalenza: scambiare righe di (cioè bit di codice) dà un codice equivalente, con gli stessi pesi e la stessa . Esempio: con i bit e scambiati diventa , pesi .
Matrice di controllo
- è con
- Teorema: è la matrice di controllo di se e solo se e (Nucleo e immagineIl nucleo (vettori mandati in 0) e l'immagine (vettori raggiunti) di una funzione lineare sono sottospazi; f è iniettiva se e solo se Ker f = {0}; dim Ker f + dim Im f = dim V (nullità + rango); l'antimmagine di un vettore è una soluzione particolare più il nucleo.Nucleo e immagine →: è lo spazio nullo di ).
- Per si ha in . Verifica: .
- Esempio: Hamming : Le sue colonne sono le sequenze non nulle di bit, tutte diverse.
- Come dà : . Una parola di peso corrisponde a colonne di che sommate danno . Quindi è il minimo numero di colonne linearmente dipendenti. Colonne non nulle e distinte danno ; per il , quindi .
- Esempio (compito 2013): sistematica con colonne , , : pesi , , rivela fino a errori.
Sindrome e decodifica
- Sindrome: ( bit). Se è nulla è una parola di codice; se non è nulla l'errore è rivelato. dipende solo dall'errore .
- Ci sono sindromi e vettori: si formano coset (classi con la stessa sindrome), ciascuno di elementi. Il coset con sindrome nulla è .
- Coset leader : l'elemento di peso minimo del coset. Se due elementi hanno peso minimo se ne sceglie uno.
- Teorema: la decodifica MD è Dimostrazione: , quindi ; e il leader è il vettore d'errore con meno uni del coset, cioè il più probabile su un BSC con .
Procedura: (1) calcolare ; (2) leggere nella tabella; (3) sommare.
Esempio completo: ,
- (controllo: ). Le sindromi dividono i vettori in coset da elementi.
- Coset: : , leader ; : leader ; : leader oppure (peso entrambi); : leader .
- Si riceve : , leader , .
- Nel coset l'errore è a distanza da due parole diverse: non è garantita la correzione, coerente con .
Esempio: Hamming
- Per il ogni sindrome non nulla è una colonna di , e il leader è il vettore con un nella posizione di quella colonna. Le sindromi bastano per correggere tutti i errori singoli.
- Esempio: , . Se il canale inverte il bit , si riceve , = colonna di , , .
- Con errori la decodifica sbaglia sempre: la sindrome è la somma di due colonne, cioè una terza colonna, e si "corregge" aggiungendo un terzo errore.
Errori tipici:
- verificare la linearità con una sola somma: servono tutte le coppie (per scartare un codice basta vedere se );
- calcolare dal peso di una colonna di : è solo un limite superiore;
- scrivere con : l'identità sta dalla parte dei bit di parità, (verificare sempre );
- credere che una sindrome non nulla identifichi sempre l'errore: con due o più errori la correzione è ambigua o sbagliata.
Collegamenti
Codice di Hamming e CRC: Codici di Hamming e CRCIl codice di Hamming $(2^h-1,,2^h-h-1)$ ha come matrice di controllo $H$ che ha per colonne tutte le sequenze non nulle di $h$ bit: colonne distinte e non nulle danno $d_{min}=3$, la sindrome di un errore singolo è la colonna corrispondente, quindi corregge 1 errore (o rivela 2) ed è un codice perfetto ($2^{n-k}=1+n$). Per $(7,4)$ e BSC: errore non rivelato $\simeq7P^3(1-P)^4$, parola sbagliata dopo correzione $\simeq\binom72P^2(1-P)^5$. Il CRC è un codice lineare ciclico usato per sola rivelazione: la parola è $m(x)x^r$ più il resto della divisione per il polinomio generatore $g(x)$ di grado $r$ (modulo 2); rivela ogni errore a burst di lunghezza $\le r$.Codici di Hamming e CRC →. Basi algebriche: Spazi vettorialiUno spazio vettoriale su un campo K è un insieme con una somma di vettori e un prodotto per scalari che rispettano 7 proprietà. Esempi fondamentali: K^n (somma componente per componente), le funzioni da R in R, i polinomi.Spazi vettoriali →, DimensioneTutte le basi di uno spazio vettoriale hanno lo stesso numero di vettori, la dimensione (dim K^n = n). Da ogni sistema di generatori si estrae una base, ogni insieme di vettori indipendenti si completa a una base, e in dimensione n bastano n vettori indipendenti (o n generatori) per avere una base.Dimensione →. Esercizi: Esercizio - Test del DNA con 4, 5 e 7 provette.
Esercizi su questo argomento
- Esercizio - Codice di controllo per numeri di registro
- Esercizio - Codici (4,2) lineari o no e probabilità di errore non rivelato
- Esercizio - Quattro domande brevi su capacità, TDMA e FDMA, entropia e codice lineare (simulazione d'esame 2013)
- Esercizio - sfigmomanometro digitale, bit del quantizzatore e probabilità d'errore del canale