Esercizio - codice (6,4) con colonne uguali in H, coset leader multipli e bit di parità aggiunto (esame del 25 gennaio 2023, es. 154)
In questa pagina 6
Testo (tema d'esame del 25 gennaio 2023, corso di Fondamenti di Telecomunicazioni, Ing. Informatica UniPD). Si consideri un codice a correzione d'errore binario con matrice di controllo di parità utilizzato su canale binario simmetrico senza memoria.
- Calcolare la lunghezza delle parole di codice e il numero delle parole di codice.
- Trovare la matrice generatrice del codice e dire se è in forma sistematica.
- Dire se esistono più coset leader per la sindrome , giustificando la risposta.
- Trovare la parola di codice più probabile che è stata trasmessa se la sequenza ricevuta è .
- Si aggiunga alle parole di un codice un bit alla fine, calcolato come somma di tutti i bit della sequenza in ingresso al codificatore. Calcolare la matrice di parità del codice così ottenuto e dire se questo nuovo codice ha una distanza minore/uguale/maggiore di quella del codice originale, giustificando la risposta.
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 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. Lunghezza e numero di parole
La lunghezza è il numero di colonne di : . ha righe e sono indipendenti (la seconda non è nulla e non è uguale alla prima), quindi e . Le parole sono su sequenze.
2. Matrice generatrice e forma sistematica
Le ultime due colonne di sono (quinta) e (sesta): formano l'identità . Quindi è già nella forma (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 →), con La matrice generatrice è : È in forma sistematica: i primi quattro bit sono i bit di informazione, gli ultimi due sono le parità e . Verifica: (Python, e a mano: la prima riga di per la prima colonna di dà , per la seconda , ecc.).
3. Più coset leader per la sindrome ?
Le colonne di sono Un errore singolo in posizione ha per sindrome . La sindrome compare nelle colonne , e : i tre errori singoli hanno la stessa sindrome e lo stesso peso minimo (, la sindrome non è nulla). Quindi sì: esistono tre coset leader per (e nessun errore di peso ). Una sequenza ricevuta con questa sindrome è equidistante da tre parole diverse e il decodificatore a minima distanza è in parità.
(Per completezza: la sindrome ha due leader, ed ; ne ha uno solo, ; è il caso senza errore. Le sindromi sono tutte coperte da errori di peso .)
4. Parola più probabile per
Sindrome, riga per riga (modulo ):
- riga : ;
- riga : .
, la colonna , e nessun'altra colonna le è uguale: il coset leader è unico, . La parola più probabile (a minima distanza di Hamming, 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 →) è che è la parola di (parità , ).
5. Aggiunta di un bit di parità sui bit di informazione
Il nuovo bit è : si aggiunge a la riga , La nuova matrice di controllo (stessa con una riga in più, ) è : Verifica con Python.
Distanza. Nella nuova matrice le colonne e sono ancora uguali ( entrambe), e anche le colonne e (). Due colonne uguali sommano a : la sequenza con due nelle posizioni e è una parola di codice (è la parola di , che con vale ). Quindi il nuovo codice ha ancora parole di peso , e come il codice originale (nel codice originale la stessa coppia di colonne uguali già dava ): la distanza è uguale. Il bit aggiunto è la somma dei soli bit di informazione, non di tutta la parola: non rende pari il peso di ogni parola. Per ottenere servirebbe che nessuna coppia di colonne fosse uguale. Il numero di parole di peso scende da a (spettro dei pesi: Python), ma la distanza minima non cambia.
Errori comuni
- Pensare che aggiungere un bit di parità aumenti sempre di la distanza: lo fa solo se è la parità di tutta la parola e se la distanza minima era dispari.
- Contare i coset leader solo dal peso del vettore: una sindrome ripetuta in due o più colonne di ha più leader di peso .
- Decodificare la sequenza con sindrome scegliendo un errore a caso: la parola decodificata non è garantita.
- Dimenticare di aggiungere la colonna (la nuova identità ) alla matrice di controllo.
Versione ripasso
Testo. , BSC. Richiesti: e numero di parole; e forma sistematica; coset leader per la sindrome ; parola più probabile per ; matrice di parità del codice con un bit in più (somma dei bit di informazione) e confronto delle distanze.
- (colonne), : , parole.
Punto 2
- Ultime due colonne : , ; (sistematica).
Punto 3
- Colonne di : : tre coset leader (). (Anche ne ha due, .)
Punto 4
- = colonna (unica): , .
Punto 5
- : riga in più in ; .
- Colonne ancora uguali: parola di peso (): , uguale all'originale.
Dettagli di calcolo
- Sindromi: ; (unico); ; .
- Spettro dei pesi: originale (per i pesi ), nuovo : le parole di peso scendono da a ma resta.
Errori tipici
- Credere che un bit di parità aumenti sempre .
- Non vedere i leader multipli con colonne uguali.
- Scegliere a caso tra i leader.