Matrice di controllo di parità, sindrome e coset
In questa pagina 9
La matrice generatrice (Codici a blocco lineari - matrice generatrice, forma sistematica e bound di SingletonUn codice a blocco è lineare se le sue $2^k$ parole formano un sottospazio dello spazio delle sequenze binarie di $n$ bit, con la somma modulo 2 (XOR) senza riporto: contiene la parola nulla ed è chiuso rispetto alla somma. Si descrive con la matrice generatrice $G$ ($n\times k$, rango $k$, $\mathbf c=G\mathbf b$, le colonne sono parole di codice); le operazioni sulle colonne non cambiano il codice, le permutazioni delle righe permutano i bit e non cambiano le prestazioni sul canale senza memoria. In forma sistematica $G=\begin{bmatrix}I_k\A\end{bmatrix}$ e $\mathbf c=[\mathbf b;A\mathbf b]$. Per i codici lineari la distanza minima è il peso di Hamming minimo delle parole non nulle e vale il bound di Singleton $d_{min}\le n-k+1$.Codici a blocco lineari - matrice generatrice, forma sistematica e bound di Singleton →) serve a codificare. Per decodificare su un canale binario simmetrico (Controllo d'errore - ARQ, FEC e codici a blocco sul canale binario simmetricoPer proteggere i bit dagli errori si può chiedere la ritrasmissione (ARQ, serve il canale di ritorno), aggiungere ridondanza per correggere (FEC) o unire le due cose (HARQ). Un codice a blocco $(n,k)$ trasforma $k$ bit in una parola di $n>k$ bit scelta tra $2^k$ parole su $2^n$ sequenze; modulatore, canale e demodulatore equivalgono a un canale binario simmetrico senza memoria con probabilità d'errore sul bit $P_{bit}$. Per $P_{bit}<\frac12$ il decodificatore ML sceglie la parola a minima distanza di Hamming; con distanza minima $d_{min}$ si correggono sempre $t=\lfloor\frac{d_{min}-1}{2}\rfloor$ errori e se ne rivelano sempre $d_{min}-1$. Il tasso è $R=\frac kn$ e la probabilità d'errore di parola è limitata da $P(\text{più di }t\text{ errori})$. L'ARQ ha efficienza $S_{SW}$, $S_{GBN}$, $S_{SR}$ in funzione di $t_P$, $t_A$, $\tau_P$ e $p$.Controllo d'errore - ARQ, FEC e codici a blocco sul canale binario simmetrico →) occorre trovare, per una sequenza ricevuta qualsiasi, la parola di codice più vicina in distanza di Hamming. Confrontare la sequenza con tutte le parole è impraticabile; la matrice di controllo di parità trasforma il problema in un calcolo di poche righe.
Versione per Ing. Elettronica: Codici a blocco lineari - matrice generatrice, controllo di parità, sindrome e codici di HammingUn codice a blocco è lineare se la somma (bit a bit, modulo 2) di due parole di codice è una parola di codice. Si descrive con la matrice generatrice $G$ ($k\times n$, $\mathbf c=\mathbf mG$) e con la matrice di controllo di parità $H$ ($(n-k)\times n$, $G H^T=0$); in forma sistematica $G=[I_k\mid P]$ e $H=[P^T\mid I_{n-k}]$. La distanza minima è il peso minimo delle parole non nulle. La sindrome $\mathbf s=\mathbf rH^T$ dipende solo dall'errore: se è nulla la parola è valida, altrimenti identifica l'errore (un solo errore ha per sindrome la colonna di $H$ corrispondente). I codici di Hamming $(2^m-1,,2^m-1-m)$ hanno $d_{min}=3$.Codici a blocco lineari - matrice generatrice, controllo di parità, sindrome e codici di Hamming → (con i vettori per riga: ). Per Ing. delle Telecomunicazioni: Codici a blocco lineari e sindromeUn codice a blocco è lineare se la somma (XOR) di due parole di codice è una parola di codice: allora le parole formano un sottospazio di $\mathbb Z_2^n$. Si descrive con la matrice generatrice $G$ ($n\times k$, $\mathbf c=G\mathbf b$; in forma sistematica $G=\binom{I_k}{A}$) e con la matrice di controllo $H$ ($(n-k)\times n$, $H\mathbf c=\mathbf 0$ se e solo se $\mathbf c\in\mathcal C$; per $G$ sistematica $H=[A\mid I_{n-k}]$). La distanza minima è il peso minimo delle parole non nulle e vale $d_{min}\le n-k+1$ (Singleton). La sindrome $\boldsymbol\sigma=H\tilde{\mathbf c}$ dipende solo dall'errore; la decodifica a distanza minima è $\hat{\mathbf c}=\tilde{\mathbf c}-\varepsilon(\boldsymbol\sigma)$, dove $\varepsilon(\boldsymbol\sigma)$ è il coset leader (vettore di peso minimo con quella sindrome).Codici a blocco lineari e sindrome →.
1. Matrice di controllo di parità
Definizione. Una matrice di dimensioni è una matrice di controllo di parità del codice lineare se
Ogni riga di è un'equazione di controllo: la parola deve avere, nelle posizioni dove la riga ha un , un numero pari di . Per esempio la riga dice .
Non servono più di righe indipendenti. Se , esistono righe indipendenti e le altre sono combinazioni delle prime: se allora anche le altre righe valgono per linearità. Per questo può avere più righe del necessario senza cambiare il codice.
Teorema. è una matrice di controllo di parità del codice con generatrice se e solo se (dimensioni: è , è , è ; da cui .)
Dimostrazione (). Se allora e . Viceversa, se , sta nello 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 per il teorema della dimensione ha dimensione , quindi contiene sequenze. Ma le parole di codice stanno già nello spazio nullo (primo verso): non c'è posto per altre. Quindi .
(). Le colonne di sono parole di codice, e per ogni parola, quindi . Lo spazio nullo di è il codice, di dimensione , quindi il rango di è .
Forma sistematica. Se ( è ), una matrice di controllo è che ha rango per la presenza dell'identità e verifica (modulo 2 ). È la regola più usata: dalla sistematica si legge e viceversa. Le equazioni di controllo sono quelle dei bit di parità: la riga di dice "bit di parità = combinazione di bit di informazione data dalla riga di ".
Esempio. Il codice con ha e Le equazioni sono , , (le tre parità della ). Le parole sono e le annulla tutte (verificato con Python).
Se non è in forma sistematica. Si portano le colonne dell'identità a destra con permutazioni delle colonne: una permutazione delle colonne di permuta i bit del codice (altre parole, stesse distanze e stessa probabilità d'errore sul canale senza memoria). Si legge poi e si scrive del codice permutato. Le operazioni sulle righe di (somme di righe, scambi) non cambiano il codice: sono le stesse equazioni scritte in altro modo.
2. Distanza minima dalle colonne di
Se ha peso , il prodotto è la somma modulo 2 delle colonne di nelle posizioni dei suoi . Quindi se e solo se quelle colonne sommano a zero:
Teorema. è il minimo numero di colonne di linearmente dipendenti (che sommano a ).
Conseguenze, in ordine:
- colonna nulla in : una parola di peso (), quindi ;
- due colonne uguali: la loro somma è , quindi ;
- tutte le colonne non nulle e distinte: nessuna parola di peso o , quindi ; vale se esistono tre colonne con .
Nell'esempio precedente le colonne sono : distinte e non nulle, quindi ; la somma della prima, della seconda e della quarta è e dà la parola di peso : .
3. La sindrome
Definizione. Data la sequenza ricevuta (lunga ), la sindrome è
Poiché solo sulle parole, : sindrome non nulla = errore rivelato. Scrivendo la ricevuta come parola trasmessa più errore, (il bit di è se il canale ha sbagliato il bit ):
La sindrome dipende solo dall'errore, non dalla parola trasmessa. Se ha un solo in posizione , è la colonna di . La decodifica a minima distanza cerca la parola più vicina a , cioè l'errore di peso minimo tale che ; ma equivale a , cioè a .
Algoritmo di decodifica con la sindrome.
- Calcolare .
- Tra tutti i vettori con , sceglierne uno di peso di Hamming minimo, .
- Decodificare . (Poi si legge dai primi bit se è sistematica.)
4. Coset e coset leader
La sindrome ha bit, quindi esistono sindromi possibili. Se è un errore con sindrome , gli altri errori con la stessa sindrome sono tutti e soli perché (e viceversa la differenza di due errori con la stessa sindrome sta nel codice).
Definizione. L'insieme degli errori con sindrome è il coset associato a . Un coset leader è un vettore del coset di peso di Hamming minimo.
Ci sono coset, ciascuno con vettori: in tutto , cioè i coset partizionano lo spazio di tutte le sequenze (il coset della sindrome nulla è il codice stesso). Un coset può avere più leader dello stesso peso: sono sequenze equidistanti da più parole, e il decodificatore ML è in parità; la scelta di uno qualunque non cambia la probabilità d'errore.
Si costruisce la tabella dei coset leader: una riga per sindrome. La decodifica è: calcolo , leggo , sommo. Occupa bit (la riga della sindrome nulla non serve), contro i bit del confronto con tutte le parole.
Esempio 1 (codice di parità ). , (una sola riga: ). Ci sono coset:
leader altri vettori del coset (i vettori con sindrome sono quelli di peso dispari; , e sono tutti di peso , scelto .) Si riceve : , quindi e . Ma si poteva anche scegliere (decodificando ) o (decodificando ): le tre parole sono equidistanti da . Il codice ha e non corregge.
Esempio 2 (il codice della sezione 1). ha righe, quindi sindromi; i coset sono (con la sindrome scritta come ):
leader coset (tutti i vettori) oppure oppure I leader di peso sono i cinque errori singoli: le loro sindromi sono le cinque colonne di () e coincidono con le righe della tabella. Restano due sindromi, e , che corrispondono a doppi errori (peso , con due leader ciascuna). La tabella si controlla con Python (enumerando i vettori).
Decodifiche. : , leader , . : , leader , . : , leader (decodifica ) o (decodifica ): parità, entrambe le parole sono a distanza .
Il numero di coset con leader di peso è il numero di colonne distinte e non nulle di (colonne uguali danno la stessa sindrome e stanno nello stesso coset): è la risposta alle domande sulle sindromi con più leader.
5. Probabilità di decodifica corretta con la tabella dei coset
Sul BSC il decodificatore a coset leader decide giusto se e solo se l'errore effettivo è il leader scelto per la sua sindrome. Quindi, indipendentemente dalla parola trasmessa, con il peso del leader scelto. Si sommano termini, uno per coset (con più leader si conta uno solo).
Esempio. Per il codice : un coset con leader di peso , cinque di peso , due di peso : Con : , cioè . La limitazione di Controllo d'errore - ARQ, FEC e codici a blocco sul canale binario simmetricoPer proteggere i bit dagli errori si può chiedere la ritrasmissione (ARQ, serve il canale di ritorno), aggiungere ridondanza per correggere (FEC) o unire le due cose (HARQ). Un codice a blocco $(n,k)$ trasforma $k$ bit in una parola di $n>k$ bit scelta tra $2^k$ parole su $2^n$ sequenze; modulatore, canale e demodulatore equivalgono a un canale binario simmetrico senza memoria con probabilità d'errore sul bit $P_{bit}$. Per $P_{bit}<\frac12$ il decodificatore ML sceglie la parola a minima distanza di Hamming; con distanza minima $d_{min}$ si correggono sempre $t=\lfloor\frac{d_{min}-1}{2}\rfloor$ errori e se ne rivelano sempre $d_{min}-1$. Il tasso è $R=\frac kn$ e la probabilità d'errore di parola è limitata da $P(\text{più di }t\text{ errori})$. L'ARQ ha efficienza $S_{SW}$, $S_{GBN}$, $S_{SR}$ in funzione di $t_P$, $t_A$, $\tau_P$ e $p$.Controllo d'errore - ARQ, FEC e codici a blocco sul canale binario simmetrico → () conta tutti gli eventi con o più errori come errori; il decodificatore invece corregge anche dei doppi errori possibili (quelli scelti come leader). Con : contro la limitazione (valori controllati con Python).
6. Ricostruire dai coset
Per i problemi inversi (note sindromi e leader, si chiede ) servono due regole:
- un leader di peso con in posizione e sindrome dice che la colonna di è ;
- un leader di peso con in e dice che .
Se il codice è sistematico le ultime colonne sono quelle dell'identità; da una colonna e dalla somma si ricavano le altre. Una sindrome di lunghezza dice che ha righe, cioè .
Errori comuni
- Calcolare la sindrome con la matrice sbagliata: con la non si trova nulla di utile, serve ().
- Scrivere con : l'identità sta a destra, .
- Credere che la sindrome non nulla identifichi sempre l'errore: se la sindrome è una colonna ripetuta di , ci sono più errori singoli possibili (più coset leader).
- Dimenticare che la correzione è garantita solo per gli errori con peso minimo del coset: con più errori del previsto la parola decisa può essere un'altra parola valida.
- Contare tutti i leader di un coset nella probabilità di decodifica corretta: se ne usa uno solo.
Domande d'esame
- Dato , dimostrare che . Se non ha colonne nulle (niente parole di peso ) né colonne uguali (niente parole di peso , perché sarebbe la somma di due colonne distinte, diversa da ), allora . Esercizio - matrice di parità a 4 righe, forma sistematica e permutazione delle colonne (esame del 24 gennaio 2025, es. 188)
- Un codice lineare ha , : quante sindromi, quanti coset, quanti vettori per coset? Quanti bit occupa la tabella dei leader? sindromi e coset, vettori per coset; bit.
- Decodificare con . , leader , (ma e sono ugualmente vicine).
Esercizi svolti
- Esercizio - matrice di parità a 4 righe, forma sistematica e permutazione delle colonne (esame del 24 gennaio 2025, es. 188): matrice di parità a quattro righe, forma sistematica per permutazione delle colonne.
- Esercizio - codice (6,2) con 4-QAM, matrice di parità, decodifica e capacità del canale (esame del 30 agosto 2024, es. 181): decodifica con la sindrome e capacità del BSC realizzato con la 4-QAM.
- Esercizio - codice (5,3) lineare dalle parole di codice, sindrome e periodo di simbolo massimo (esame dell'8 febbraio 2024, es. 175): matrice di parità e decodifica di un codice dato da parole di codice.
- Esercizio - codice (6,2) da matrice di parità non sistematica, decodifica e capacità con 4-QAM (secondo compitino del 12 gennaio 2024, es. 169): matrice di parità non sistematica, decodifica e capacità con la 4-QAM.
- Esercizio - codice (6,4) con colonne uguali in H, coset leader multipli e bit di parità aggiunto (esame del 25 gennaio 2023, es. 154): colonne uguali in H, coset leader multipli e bit di parità aggiunto.
- Esercizio - codice (6,3) accorciato di Hamming, sindrome e peso minimo (esame del 6 settembre 2022, es. 146): codice accorciato di Hamming, sindrome e peso minimo.
- Esercizio - codice (6,3) con G sistematica, numero di coset e bucatura (esame del 29 agosto 2021, es. 128): numero di coset, coset con leader di peso 1 e bucatura.
Versione ripasso
Matrice di controllo (): ; ogni riga è un'equazione di controllo (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 →).
- Teorema: controlla se e solo se e ; quindi e le righe in più sono combinazioni delle indipendenti.
- Dimostrazione: ; lo spazio nullo ha dimensione e contiene già le parole, quindi non ha altro.
- Sistematico: , perché .
- Esempio : , , parole .
- Permutare le colonne di permuta i bit (stesse distanze, stessa sul canale senza memoria); operazioni sulle righe di non cambiano il codice. Portare in forma sistematica: identità nelle ultime colonne, in ordine.
Distanza minima dalle colonne di
- = somma delle colonne nelle posizioni dei di : è il minimo numero di colonne che sommano a .
- Colonna nulla ; due uguali ; tutte non nulle e distinte (peso se ). Nell'esempio le colonne sommano a zero: , .
Sindrome ( bit),
- : dipende solo dall'errore. (sindrome non nulla = errore rivelato).
- Errore singolo in posizione : = colonna di .
- Decodifica a minima distanza: (1) ; (2) di peso minimo con ; (3) ; poi = primi bit se è sistematica.
Coset e coset leader
- Errori con sindrome : . coset di vettori, in tutto (partizione dello spazio); il coset di è il codice.
- Coset leader = vettore di peso minimo del coset; può essere più d'uno (parità, scelta indifferente). Tabella dei leader: bit.
- Esempio , : (coset ); (coset ); , ma e sono ugualmente vicine ().
- Esempio : sindromi hanno leader ; e . Decodifiche: ; ; : parità tra e .
- Coset con leader di peso = colonne distinte e non nulle di (colonne uguali: stesso coset, più leader).
Probabilità di decodifica corretta (BSC)
- , = peso del leader scelto, un solo leader per coset.
- Esempio : ; : (limitazione ); : (limitazione ).
Problema inverso
- Leader di peso in posizione e sindrome : colonna di è . Leader di peso in : . Codice sistematico: ultime colonne = identità; lunghezza della sindrome .
Errori tipici
- Usare per la sindrome, o scrivere invece di .
- Credere che una sindrome non nulla dia sempre l'errore (colonne ripetute, più leader).
- Contare più leader dello stesso coset nella .
- Cercare la sindrome di una sequenza di lunghezza diversa da .
Esercizi su questo argomento
- Esercizio - capacità di un canale 4-PSK, entropia di un codice a blocco, distanza minima e decodifica (compito dell'11 febbraio 2025, es. 192)
- Esercizio - codice (5,3) lineare dalle parole di codice, sindrome e periodo di simbolo massimo (esame dell'8 febbraio 2024, es. 175)
- Esercizio - codice (5,3) non sistematico, matrice di parità e sindrome su BSC (secondo compitino del 9 gennaio 2026, es. 195)
- Esercizio - codice (6,2) con 4-QAM, matrice di parità, decodifica e capacità del canale (esame del 30 agosto 2024, es. 181)
- Esercizio - codice (6,2) da matrice di parità non sistematica, decodifica e capacità con 4-QAM (secondo compitino del 12 gennaio 2024, es. 169)
- Esercizio - codice (6,3) accorciato di Hamming, sindrome e peso minimo (esame del 6 settembre 2022, es. 146)
- Esercizio - codice (6,3) con G sistematica, numero di coset e bucatura (esame del 29 agosto 2021, es. 128)
- Esercizio - codice (6,3) da equazioni con quadrati e matrice di controllo di parità (secondo compitino del 14 gennaio 2025, es. 185)
- Esercizio - codice (6,4) con colonne uguali in H, coset leader multipli e bit di parità aggiunto (esame del 25 gennaio 2023, es. 154)
- Esercizio - codice (8,4) non sistematico, sistematica equivalente e cascata di due codici (esame del 23 gennaio 2024, es. 172)
- Esercizio - codice di Hamming (63,57), bound di Hamming e bit di parità aggiunto (secondo compitino dell'11 gennaio 2022, es. 132)
- Esercizio - Kraft-McMillan, Huffman, due canali binari alternati e codice di Hamming (15,11) (compito del 13 febbraio 2026, es. 201)
- Esercizio - matrice di parità a 4 righe, forma sistematica e permutazione delle colonne (esame del 24 gennaio 2025, es. 188)
- Esercizio - porta parallela a 8 pin, Hamming (7,4), coset e canale con pin guasto (esame del 15 febbraio 2023, es. 157)
- Esercizio - rate di informazione, codice di Hamming (7,4) e capacità del canale binario simmetrico (compito del 6 luglio 2026, es. 204)