Esercizio 31codice a blocco non lineare, distanza minima e decodifica su un canale binario simmetrico (tema d'esame giugno 2017)
In questa pagina 5
Testo (tema d'esame del 26 giugno 2017 di un corso UniPD equivalente). Si consideri il codice a protezione d'errore con mappatura , , , .
- (3p) Si dica se il codice è a) a blocco, b) lineare e c) in forma sistematica.
- (3p) Trovare il massimo numero di errori che può essere rivelato da una qualsiasi parola ricevuta.
- (2p) Trovare l'efficienza della sorgente, assumendo che i simboli di informazione siano l'uscita di una sorgente senza memoria con densità discreta di probabilità , .
- (3p) Calcolare la probabilità di errore di decodifica sulla parola, condizionata alla parola trasmessa , per un canale binario simmetrico senza memoria con probabilità di errore e decodifica a minima distanza.
Teoria usata: 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 →, 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 →, Informazione ed entropiaL'informazione di un evento di probabilità $p$ è $\log_2\frac1p$ bit; l'entropia $H(x)=\sum p\log_2\frac1p$ è l'informazione media e misura l'incertezza della sorgente: $0\le H\le\log_2M$, con il massimo quando i simboli sono equiprobabili. Per più simboli: $H(x,y)\le H(x)+H(y)$ (uguaglianza se indipendenti), $H(x|y)=H(x,y)-H(y)$. Per una sorgente con $F_s$ simboli al secondo il rate di informazione è $F_sH_s$, il rate nominale $F_s\log_2M$ e l'efficienza $\eta=\frac{H_s}{\log_2M}$.Informazione ed entropia →.
(1) Blocco, lineare, sistematico
- a) A blocco: sì. A ogni blocco di bit di informazione si associa una parola di bit: codice , rendimento .
- b) Lineare: no. Un codice è lineare se la somma di due parole è una parola. , che dovrebbe corrispondere alla somma delle parole , ma la parola associata a è . La somma di due parole valide non è una parola valida: non è lineare. (Per questo la minima distanza non si ottiene dal peso minimo, ma da tutte le coppie.)
- c) Sistematico: sì. I primi bit della parola di codice coincidono con i bit di informazione (, , , ); gli ultimi sono le parità. (Un codice può essere sistematico senza essere lineare.)
(2) Errori rivelabili
Distanze di Hamming tra le parole ():
. Il codice rivela con certezza errore (e ne corregge ): con un solo bit sbagliato la parola ricevuta è a distanza dalla trasmessa, quindi non è una parola di codice (tutte le parole distano almeno ).
(3) Efficienza della sorgente
La sorgente binaria ha entropia bit/simbolo, contro il massimo bit (Informazione ed entropiaL'informazione di un evento di probabilità $p$ è $\log_2\frac1p$ bit; l'entropia $H(x)=\sum p\log_2\frac1p$ è l'informazione media e misura l'incertezza della sorgente: $0\le H\le\log_2M$, con il massimo quando i simboli sono equiprobabili. Per più simboli: $H(x,y)\le H(x)+H(y)$ (uguaglianza se indipendenti), $H(x|y)=H(x,y)-H(y)$. Per una sorgente con $F_s$ simboli al secondo il rate di informazione è $F_sH_s$, il rate nominale $F_s\log_2M$ e l'efficienza $\eta=\frac{H_s}{\log_2M}$.Informazione ed entropia →): (Si noti che questa è l'efficienza della sorgente prima della codifica di canale; il codice ha rendimento e aggiunge ridondanza, riducendo il rate di informazione per bit trasmesso.)
(4) Probabilità d'errore di decodifica per
Si trasmette la parola . Il canale inverte ciascun bit con probabilità in modo indipendente: la ricevuta ha probabilità , con il peso di . Decodifica a minima distanza: si sceglie la parola di codice più vicina a . Si analizzano le possibili :
- (): distanza da : corretta; probabilità .
- (): distanza da e almeno da tutte le altre: corretta; probabilità .
- (): ognuna è a distanza da una delle altre parole ( da , da , da , , da , da ) e a distanza da : si decide un'altra parola, errore; probabilità .
- (): sono parole di codice diverse da ; e sono a distanza da e più vicine ad altre: errore; probabilità .
(Nessuna ricevuta è a pari distanza da e da un'altra parola, quindi il risultato non dipende dalla regola sui pareggi.) Con la parola trasmessa gli errori singoli vengono corretti, perché dista da tutte le altre parole; per le altre parole (a distanza tra loro) un errore singolo può cadere a metà strada tra due parole e la decisione è ambigua. Il valore calcolato è dunque condizionato a : mediando sulle quattro parole (con scelta casuale nei pareggi) l'errore di parola vale : per e per ciascuna delle altre tre. Senza codifica, per confronto, la probabilità di sbagliare almeno uno dei bit è .
(Verificato con Python: enumerazione delle ricevute, , .)
Errori comuni
- Dire che il codice è lineare perché contiene la parola nulla: serve la chiusura per la somma.
- Dire che è sistematico lineare (non è vero).
- Rispondere errori rivelati ( al posto di ).
- Calcolare la probabilità di errore con la formula di un codice correttore (): qui non garantisce la correzione.
Versione ripasso
Testo. , , , : a blocco, lineare, sistematico?; errori rivelabili; efficienza con ; su BSC con (giugno 2017).
- (1) blocco sì; lineare no (); sistematico sì.
- (2) (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 →) distanze (da ), tra le altre: : rivela 1 errore, corregge .
- (3) bit: .
- (4) trasmessa: peso () e peso () corretti; peso sbagliato: , errore .
- Errori: lineare contiene ; sistematico lineare; al posto di .