Esercizio - rate di informazione, codice di Hamming (7,4) e capacità del canale binario simmetrico (compito del 6 luglio 2026, es. 204)
In questa pagina 7
Testo (compito del 6 luglio 2026, esercizio 204). Una sorgente emette simboli con alfabeto con probabilità , , , con periodo di simbolo pari a s. Dopo aver effettuato la codifica di sorgente binaria a lunghezza fissa di lunghezza minima , ogni gruppo di bit emessi dalla sorgente viene codificato con un codice di Hamming. I bit codificati vengono trasmessi su un canale binario simmetrico senza memoria con probabilità d'errore sul bit pari a .
- (2p) Trovare il rate di informazione della sorgente e il valore di .
- (1p) Trovare una matrice generatrice e la corrispondente matrice di controllo di parità del codice sistematico associato.
- (1p) Determinare il numero di errori rilevati e corretti dal codice.
- (2p) Determinare la probabilità che la sequenza ricevuta sia se è stata trasmessa la sequenza di bit .
- (2p) Trovare la parola di codice decodificata dalla sequenza ricevuta .
- (2p) Trovare il periodo di bit massimo sul canale che garantisce di ricevere l'informazione della sorgente con una probabilità d'errore piccola a piacere sulle parole decodificate.
Nota sul testo. I punti 4 e 5 usano parole di bit () e di bit (): il codice di Hamming è quindi il , che codifica gruppi di bit, cioè due simboli di bit. Non esiste un codice di Hamming con (), quindi "gruppo di bit" va letto come "gruppo di bit" (qui ).
Teoria usata: Entropia - informazione di un evento, disuguaglianza di Jensen e valore massimoL'informazione di un evento di probabilità $P$ è $i=\log_2\frac1P$ bit (zero per l'evento certo, additiva per eventi indipendenti). L'entropia di una variabile aleatoria discreta è l'informazione media, $H(x)=E[i_x(x)]=\sum_aP_x(a)\log_2\frac1{P_x(a)}$; vale $0\le H(x)\le\log_2M$ con $M$ cardinalità dell'alfabeto, e il massimo $\log_2M$ si raggiunge se e solo se i simboli sono equiprobabili (dimostrazione con la disuguaglianza di Jensen, perché il logaritmo è strettamente concavo).Entropia - informazione di un evento, disuguaglianza di Jensen e valore massimo → e Tasso d'informazione, capacità di canale e teorema di ShannonUna sorgente che emette un simbolo ogni $T$ secondi ha tasso d'informazione $R=\frac{H_s}T$ [bit/s] ($H_s$ entropia per simbolo); un canale ha tasso $R(g)=\frac{I_s(x;y)}T\le R(x)$. La capacità è il massimo del tasso del canale su tutte le statistiche d'ingresso, $C=\max_{p_x}\frac{I(x;y)}T$ per un canale senza memoria. Teorema di Shannon: se il tasso nominale della sorgente è $R\le C$ esiste un codice di canale con probabilità d'errore piccola a piacere, se $R>C$ no. Capacità: BSC $C=\frac1T[1-h(P_{bit})]$, canale a cancellazione $C=\frac{1-\alpha}T$, AWGN reale $C=\frac1{2T}\log_2\left(1+\frac{E_s}{\sigma^2}\right)$; canali in parallelo sommano le capacità.Tasso d'informazione, capacità di canale e teorema di Shannon → (punti 1 e 6), 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 →, 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 →, 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 → (punti 2-5), 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 → (punto 4). Un esercizio del corso sulla capacità del BSC: Esercizio 32 · capacità di canali gaussiano, binario simmetrico e a cancellazione (esercizio del corso).
(1) Rate di informazione e
L'alfabeto ha simboli, di cui uno () ha probabilità . L'entropia è (il simbolo non contribuisce: ). Il rate di informazione è l'entropia per simbolo divisa per il periodo di simbolo (Tasso d'informazione, capacità di canale e teorema di ShannonUna sorgente che emette un simbolo ogni $T$ secondi ha tasso d'informazione $R=\frac{H_s}T$ [bit/s] ($H_s$ entropia per simbolo); un canale ha tasso $R(g)=\frac{I_s(x;y)}T\le R(x)$. La capacità è il massimo del tasso del canale su tutte le statistiche d'ingresso, $C=\max_{p_x}\frac{I(x;y)}T$ per un canale senza memoria. Teorema di Shannon: se il tasso nominale della sorgente è $R\le C$ esiste un codice di canale con probabilità d'errore piccola a piacere, se $R>C$ no. Capacità: BSC $C=\frac1T[1-h(P_{bit})]$, canale a cancellazione $C=\frac{1-\alpha}T$, AWGN reale $C=\frac1{2T}\log_2\left(1+\frac{E_s}{\sigma^2}\right)$; canali in parallelo sommano le capacità.Tasso d'informazione, capacità di canale e teorema di Shannon →): La codifica di sorgente a lunghezza fissa deve distinguere tutti i simboli dell'alfabeto: bit, quindi . (Anche considerando solo i simboli di probabilità non nulla servirebbero bit.) Il flusso binario che esce dal codificatore di sorgente è Mbit/s, maggiore dei kbit/s di informazione: l'efficienza è .
(2) Matrici generatrice e di controllo di parità
Un codice di Hamming ha e . Con si ha , : il codice è il . La matrice di controllo di parità () ha come colonne tutte le sequenze non nulle di bit; in forma sistematica : le ultime colonne sono l'identità e le prime sono le sequenze di peso , La matrice generatrice sistematica (, ) è , cioè I primi bit della parola sono i bit di informazione e gli ultimi sono di parità: , , (somme modulo ). Controllo: (verificato con Python). I parole di codice sono le al variare di .
(3) Errori rilevati e corretti
La parola di peso minimo non nulla ha peso (per esempio dà ): , uguale al peso minimo perché il codice è lineare. Il codice rileva errori e corregge errore (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 →).
(4) Probabilità di ricevere se si trasmette
Si codifica : , , , quindi Si confronta con : i bit uguali sono quelli in posizione (cinque) e i bit diversi quelli in posizione e (due). Sul canale binario simmetrico senza memoria gli errori sono indipendenti, quindi la probabilità è il prodotto: per ogni bit invertito e per ogni bit corretto (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 →):
(5) Parola decodificata
La sindrome di è (somme modulo ). Le tre righe di danno cioè . Non è nulla, quindi non è una parola di codice, e coincide con la prima colonna di : l'errore di peso minimo (coset leader, 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 →) è sul primo bit, . La parola decodificata è che corrisponde ai bit di informazione . Controllo: con si ha , , , quindi , uguale a : è una parola di codice, a distanza da . La parola effettivamente trasmessa, , dista invece da : il decodificatore sbaglia perché sono avvenuti errori e il codice ne corregge uno solo. È il comportamento atteso.
(6) Periodo di bit massimo per una probabilità d'errore piccola a piacere
Per il teorema di Shannon (Tasso d'informazione, capacità di canale e teorema di ShannonUna sorgente che emette un simbolo ogni $T$ secondi ha tasso d'informazione $R=\frac{H_s}T$ [bit/s] ($H_s$ entropia per simbolo); un canale ha tasso $R(g)=\frac{I_s(x;y)}T\le R(x)$. La capacità è il massimo del tasso del canale su tutte le statistiche d'ingresso, $C=\max_{p_x}\frac{I(x;y)}T$ per un canale senza memoria. Teorema di Shannon: se il tasso nominale della sorgente è $R\le C$ esiste un codice di canale con probabilità d'errore piccola a piacere, se $R>C$ no. Capacità: BSC $C=\frac1T[1-h(P_{bit})]$, canale a cancellazione $C=\frac{1-\alpha}T$, AWGN reale $C=\frac1{2T}\log_2\left(1+\frac{E_s}{\sigma^2}\right)$; canali in parallelo sommano le capacità.Tasso d'informazione, capacità di canale e teorema di Shannon →) una codifica di canale con probabilità d'errore residua piccola a piacere esiste se il rate dei bit da proteggere è al più la capacità del canale. I bit da proteggere sono quelli all'uscita del codificatore di sorgente: Mbit/s (un bit ogni s). La capacità del BSC con è dove è il periodo di bit sul canale (dopo il codificatore di canale). Per un codice di rate si ha , cioè , e la condizione dà Il periodo massimo è quindi circa s (la soluzione del corso lo riporta come s, con un'entropia scritta invece di : il valore è lo stesso).
Per un confronto: il codice di Hamming ha rate , quindi i bit sul canale hanno periodo s (sotto il massimo, come deve essere), ma la sua probabilità d'errore sulla parola, , non è piccola a piacere: è fissata dal codice. Il teorema dice solo che esistono codici più lunghi (con fino a s) che portano la probabilità d'errore sotto qualsiasi soglia.
(Verificato con Python: bit, kbit/s, , , , , sindrome , parola più vicina a a distanza , , probabilità d'errore sulla parola di Hamming .)
Errori comuni
- Usare per : con una lunghezza fissa i bit sono un numero intero, .
- Confondere il rate di informazione ( kbit/s, entropia) con quello nominale ( Mbit/s, lunghezza fissa).
- Per il punto 4, dimenticare di codificare (la sequenza trasmessa è , di bit) o contare male le posizioni diverse.
- Nel calcolare la sindrome sbagliare le somme (sono modulo ) o confrontare con la colonna sbagliata di .
- Al punto 6 usare (periodo del Hamming) al posto del massimo periodo permesso dal teorema.
- Dimenticare che la sindrome corregge un solo errore: con errori si decodifica la parola sbagliata.
Versione ripasso
Testo. , , s; codice a lunghezza fissa , poi Hamming; BSC . Domande: rate e ; ; errori rilevati e corretti; con , ; decodifica di ; massimo periodo di bit.
- (1) (Tasso d'informazione, capacità di canale e teorema di ShannonUna sorgente che emette un simbolo ogni $T$ secondi ha tasso d'informazione $R=\frac{H_s}T$ [bit/s] ($H_s$ entropia per simbolo); un canale ha tasso $R(g)=\frac{I_s(x;y)}T\le R(x)$. La capacità è il massimo del tasso del canale su tutte le statistiche d'ingresso, $C=\max_{p_x}\frac{I(x;y)}T$ per un canale senza memoria. Teorema di Shannon: se il tasso nominale della sorgente è $R\le C$ esiste un codice di canale con probabilità d'errore piccola a piacere, se $R>C$ no. Capacità: BSC $C=\frac1T[1-h(P_{bit})]$, canale a cancellazione $C=\frac{1-\alpha}T$, AWGN reale $C=\frac1{2T}\log_2\left(1+\frac{E_s}{\sigma^2}\right)$; canali in parallelo sommano le capacità.Tasso d'informazione, capacità di canale e teorema di Shannon →) bit, kbit/s; (flusso Mbit/s, ).
- (2) (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 →) ; con , ; parità , , .
- (3) : rileva , corregge .
- (4) differisce da nei bit : .
- (5) (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 →) colonna : (); dista da , ma errori hanno superato la capacità di correzione.
- (6) Mbit/s, s (Hamming : s ma errore non piccolo a piacere: ).
- Dettagli (1). Con i simboli utili sono ma : ; flusso Mbit/s contro informazione kbit/s (). Il codice è perché in 4 e 5 compaiono parole di e bit: bit sono due simboli.
- Dettagli (2)-(3). ha come colonne le sequenze non nulle di bit; ; (peso minimo): rileva , corregge .
- Dettagli (4)-(5). : , , , quindi contro (bit diversi); sindrome , , : colonna di , (distanza da , mentre la parola trasmessa dista : decodifica errata).
- Dettagli (6). ; ; Mbit/s, s: s. Hamming: s, probabilità d'errore sulla parola , non piccola a piacere.
- Errori: con ; non codificare al punto 4; al posto del massimo.
Teoria collegata
- Entropia - informazione di un evento, disuguaglianza di Jensen e valore massimo
- Tasso d'informazione, capacità di canale e teorema di Shannon
- Codici a blocco lineari - matrice generatrice, forma sistematica e bound di Singleton
- Codici di Hamming e bound di Hamming
- Matrice di controllo di parità, sindrome e coset
- Controllo d'errore - ARQ, FEC e codici a blocco sul canale binario simmetrico