Esercizio - codice (6,3) accorciato di Hamming, sindrome e peso minimo (esame del 6 settembre 2022, es. 146)
In questa pagina 6
Testo (tema d'esame del 6 settembre 2022, corso di Fondamenti di Telecomunicazioni, Ing. Informatica UniPD). Si consideri la seguente matrice di parità di un codice a correzione d'errore binario
- Scrivere la matrice generatrice del codice.
- Dire se il codice è di Hamming, motivando la risposta.
- Calcolare la sindrome della sequenza e dire se la sequenza è una parola di codice.
- Dimostrare che il peso minimo del codice è uguale a e trovare una parola di codice di peso .
- Il codice è utilizzato su canale binario simmetrico senza memoria con probabilità di errore sul bit di . Calcolare la probabilità che, trasmettendo la sequenza identicamente nulla, si riceva la parola di codice trovata al punto precedente.
Teoria usata: Matrice di controllo di parità, sindrome e cosetLa matrice di controllo di parità $H$ ($\ell\times n$) soddisfa $H\mathbf r=\mathbf 0\iff\mathbf r\in\mathcal C$; per un codice con generatrice $G$ ($n\times k$) vale $HG=0$ con $\operatorname{rango}(H)=n-k$, e se $G=\begin{bmatrix}I_k\A\end{bmatrix}$ allora $H=[A\mid I_{n-k}]$. La distanza minima è il minimo numero di colonne di $H$ linearmente dipendenti. La sindrome $\boldsymbol\sigma=H\boldsymbol\gamma$ della sequenza ricevuta $\boldsymbol\gamma=\mathbf c+\boldsymbol\varepsilon$ vale $H\boldsymbol\varepsilon$: dipende solo dall'errore. Le sequenze con la stessa sindrome formano un coset ($2^{n-k}$ coset di $2^k$ sequenze) e il decodificatore a minima distanza sceglie il coset leader, l'errore di peso minimo del coset: $\hat{\mathbf c}=\boldsymbol\gamma+\boldsymbol\varepsilon_{min}$. La probabilità di decodifica corretta sul BSC è la somma delle probabilità dei coset leader.Matrice di controllo di parità, sindrome e coset →, Codici di Hamming e bound di HammingIl bound di Hamming (sphere packing) lega tasso e capacità di correzione: $2^k\sum_{r=0}^t\binom nr\le2^n$, cioè $\frac kn\le1-\frac1n\log_2\sum_{r=0}^t\binom nr$, perché le $2^k$ sfere di raggio $t$ attorno alle parole sono disgiunte. Un codice di Hamming ha per colonne di $H$ tutte le sequenze non nulle di $n-k$ bit, ciascuna una volta, quindi $n=2^{n-k}-1$ (parametri $(2^m-1,,2^m-1-m)$: $(7,4)$, $(15,11)$, $(63,57)$, $(255,247)$). Non ha colonne nulle né ripetute e tre colonne sommano a zero: $d_{min}=3$, corregge $1$ errore e ne rivela $2$. Rispetta il bound di Hamming con l'uguaglianza ($t=1$): è un codice perfetto, per cui la probabilità d'errore di parola sul BSC è esattamente $P(\text{almeno 2 errori})$.Codici di Hamming e bound di Hamming →, 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 →, 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 →.
1. Matrice generatrice
ha colonne e righe; le ultime tre colonne sono , cioè : è in forma sistematica con , (Matrice di controllo di parità, sindrome e cosetLa matrice di controllo di parità $H$ ($\ell\times n$) soddisfa $H\mathbf r=\mathbf 0\iff\mathbf r\in\mathcal C$; per un codice con generatrice $G$ ($n\times k$) vale $HG=0$ con $\operatorname{rango}(H)=n-k$, e se $G=\begin{bmatrix}I_k\A\end{bmatrix}$ allora $H=[A\mid I_{n-k}]$. La distanza minima è il minimo numero di colonne di $H$ linearmente dipendenti. La sindrome $\boldsymbol\sigma=H\boldsymbol\gamma$ della sequenza ricevuta $\boldsymbol\gamma=\mathbf c+\boldsymbol\varepsilon$ vale $H\boldsymbol\varepsilon$: dipende solo dall'errore. Le sequenze con la stessa sindrome formano un coset ($2^{n-k}$ coset di $2^k$ sequenze) e il decodificatore a minima distanza sceglie il coset leader, l'errore di peso minimo del coset: $\hat{\mathbf c}=\boldsymbol\gamma+\boldsymbol\varepsilon_{min}$. La probabilità di decodifica corretta sul BSC è la somma delle probabilità dei coset leader.Matrice di controllo di parità, sindrome e coset →) e La generatrice è : Le parità sono , , . Le parole sono ( e nucleo di verificati con Python).
2. È un codice di Hamming?
Un codice di Hamming ha per colonne di tutte le sequenze non nulle lunghe (Codici di Hamming e bound di HammingIl bound di Hamming (sphere packing) lega tasso e capacità di correzione: $2^k\sum_{r=0}^t\binom nr\le2^n$, cioè $\frac kn\le1-\frac1n\log_2\sum_{r=0}^t\binom nr$, perché le $2^k$ sfere di raggio $t$ attorno alle parole sono disgiunte. Un codice di Hamming ha per colonne di $H$ tutte le sequenze non nulle di $n-k$ bit, ciascuna una volta, quindi $n=2^{n-k}-1$ (parametri $(2^m-1,,2^m-1-m)$: $(7,4)$, $(15,11)$, $(63,57)$, $(255,247)$). Non ha colonne nulle né ripetute e tre colonne sommano a zero: $d_{min}=3$, corregge $1$ errore e ne rivela $2$. Rispetta il bound di Hamming con l'uguaglianza ($t=1$): è un codice perfetto, per cui la probabilità d'errore di parola sul BSC è esattamente $P(\text{almeno 2 errori})$.Codici di Hamming e bound di Hamming →). Qui e le sequenze non nulle di bit sono , ma ha solo colonne: . Manca . Quindi non è un codice di Hamming: condizione non soddisfatta ().
È un codice di Hamming accorciato: si toglie la colonna da (equivale a tenere solo le parole con un bit nullo e a eliminarlo) e restano , . Conserva (colonne ancora distinte e non nulle) ma non è perfetto: la sindrome non corrisponde a nessun errore singolo.
3. Sindrome di
La sindrome è la somma modulo delle colonne di nelle posizioni dove la sequenza ha un : posizioni . (riga per riga: ; ; ✓.) La sindrome è diversa da : non è una parola di codice. Poiché , un errore sul terzo bit la riporterebbe nel codice: .
4. Peso minimo
- Nessuna colonna è nulla: non esistono parole di peso .
- Le sei colonne sono tutte diverse: non esistono parole di peso (due in posizioni darebbero ).
Quindi il peso minimo è almeno . Si trova una parola di peso con tre colonne che sommano a zero: (riga per riga: , , ). La sequenza con tre nelle posizioni , cioè , è una parola di codice di peso (infatti dà ). Il peso minimo è esattamente . Le parole di peso sono quattro: , , , . Lo spettro dei pesi (Python) è: parola di peso , di peso e di peso (, , ), in tutto .
5. Probabilità di ricevere la parola trovata
Si trasmette e si riceve : bit diversi nelle posizioni , quindi , e nelle altre posizioni i bit coincidono. Sul BSC senza memoria (La soluzione del corso scrive "su bit" ma la lunghezza è : il calcolo è lo stesso.) È la probabilità che il canale commetta proprio quei errori; ciascuna delle parole di peso ha la stessa probabilità.
Errori comuni
- Dire che è un Hamming perché ha : serve che contenga tutte le colonne non nulle ().
- Calcolare la sindrome con o con una riga sola di : serve il prodotto completo.
- Prendere senza il fattore per i bit corretti.
- Pensare che possa valere con colonne diverse: sommando due colonne diverse non si ottiene mai .
Versione ripasso
Testo. . Richiesti: ; se è un Hamming; sindrome di ; peso minimo e una parola di peso ; probabilità di ricevere questa parola trasmettendo su BSC con .
- , ; .
- Non è Hamming: , manca la colonna . È un accorciato.
Punto 3
- : non è una parola (, errore sul bit porta a ).
Punto 4
- Colonne non nulle e distinte: nessun peso o . : parola di peso .
Punto 5
- : .
Dettagli di calcolo
- Parole: ; pesi (quattro) e (tre).
- Sindrome senza errori singoli: tre leader di peso (, , ); a .
Errori tipici
- Chiamare Hamming un codice con senza controllare .
- Dimenticare per i bit giusti.