Esercizio - codice (5,3) non sistematico, matrice di parità e sindrome su BSC (secondo compitino del 9 gennaio 2026, es. 195)
In questa pagina 6
Testo (tema d'esame del secondo compitino del 9 gennaio 2026, corso di Fondamenti di Telecomunicazioni, Ing. Informatica UniPD). Si consideri un canale binario simmetrico senza memoria con periodo di simbolo pari a s e probabilità d'errore sul bit pari a . Prima della trasmissione sul canale si impiega un codice binario in cui le parole di codice sono ottenute dai bit di ingresso in questo modo
dove indica il peso di Hamming e le somme si intendono modulo due.
- (3p) Determinare il rate del codice. Dire se il codice è lineare. Dire se è sistematico. Se il codice è lineare, trovare la matrice generatrice del codice in forma sistematica associato, effettuando solo operazioni sulle colonne.
- (3p) Trovare la distanza minima, il peso minimo, il numero di errori rilevati e corretti dal codice.
- (3p) Data la sequenza di ingresso è più probabile ricevere all'uscita del canale la sequenza o la sequenza e qual è la probabilità delle due?
- (3p) Trovare la matrice di controllo di parità nella forma sistematica e trovare la sequenza di bit decodificati quando viene ricevuta la sequenza .
- (3p) Determinare se è possibile trovare una codifica di canale per ottenere una probabilità d'errore residua piccola a piacere, se all'ingresso del canale si ha una sorgente che emette un simbolo ogni s, con alfabeto .
Teoria usata: 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 →, 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 →, 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 →, 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 →.
1. Rate, linearità, forma sistematica
Rate. Entrano bit e escono bit: .
Linearità. Un codice è lineare se ogni bit di parola è una somma modulo 2 di bit di informazione, senza costanti e senza prodotti. lo sono già. Resta : il peso di Hamming è il numero di in , cioè calcolato in ; prenderlo modulo dà la parità di quel numero, che è proprio la somma modulo dei tre bit. Quindi e il codice è lineare. La matrice generatrice () ha per righe i coefficienti delle equazioni:
Sistematico? No: in un codice sistematico i primi tre bit della parola sono , qui .
Forma sistematica con sole operazioni sulle colonne. Le operazioni sulle colonne di non cambiano il codice, solo la corrispondenza (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 →). Servono le prime tre righe uguali all'identità. Le prime due righe sono e : per far diventare la seconda occorre togliere un "" in prima colonna. Si sostituisce la prima colonna con la somma della prima e della seconda: Si ottiene
Controllo (Python): le parole di e di sono le stesse.
| 000 | 001 | 010 | 011 | 100 | 101 | 110 | 111 | |
|---|---|---|---|---|---|---|---|---|
| parola con | 00000 | 00111 | 01011 | 01100 | 11010 | 11101 | 10001 | 10110 |
| parola con | 00000 | 00111 | 01011 | 01100 | 10001 | 10110 | 11010 | 11101 |
Cambia solo quale produce quale parola (per : con , con ), l'insieme è lo stesso.
2. Distanza minima, peso minimo, errori rivelati e corretti
I pesi delle parole non nulle sono (dalla tabella: , , , , , , ). Il peso minimo è e, essendo il codice lineare, la distanza minima è (due parole sono e ).
- Errori rivelati sempre: .
- Errori corretti sempre: .
3. Due sequenze ricevute
Si trasmette , quindi la parola è . Su un BSC la probabilità di ricevere una sequenza dipende solo da quanti bit sono diversi, non da quali (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 →): ha due (posizioni e ) e ha due (posizioni e ): in entrambi i casi . Quindi le due sequenze sono equiprobabili, con
4. Matrice di controllo di parità e decodifica
- riga : , , ;
- riga : , , .
Il prodotto è la matrice nulla (controllato anche con Python).
Sindrome. Per : È diversa da : non è una parola. La sindrome è la colonna di e nessun'altra colonna le è uguale (le colonne sono ): il coset leader è unico, .
Parola e bit decodificati. È una parola di codice ( con dà proprio ). Poiché è sistematica, sono i primi bit:
5. Probabilità d'errore residua 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 →) esiste una codifica a errore residuo piccolo a piacere se il bit-rate di informazione della sorgente è minore della capacità del canale.
Sorgente. Emette un simbolo ogni s da un alfabeto di simboli. Il massimo dell'informazione per simbolo è bit (a simboli equiprobabili): bit-rate al più (Se i simboli non fossero equiprobabili l'entropia sarebbe minore, e la condizione ancora più facile.)
Canale. BSC con e un bit ogni s:
kbit/s: sì, è possibile (con un codice molto più lungo di questo ; il non lo fa, perché non corregge nessun errore).
Errori comuni
- Trattare come termine non lineare: modulo vale .
- Per ottenere la forma sistematica scambiare righe di : qui servirebbe una riga che non c'è; si usa la somma di colonne.
- Dedurre dalla distanza minima che il codice "corregge un errore": .
- Confrontare la capacità con il rate del codice invece che con il bit-rate dell'informazione della sorgente.
Versione ripasso
Testo. BSC con s e . Codice: , , , , . Richiesti: rate, linearità, forma sistematica con operazioni sulle colonne; , errori rivelati e corretti; probabilità di e inviando ; e decodifica di ; esistenza di una codifica per una sorgente ternaria a un simbolo ogni s.
- . : lineare. Non sistematico ().
- ; colonna colonna colonna dà , stesse parole.
Punto 2: pesi ; ; rivela , corregge .
Punto 3: entrambe a distanza da : equiprobabili, .
- , .
- = colonna (unica): , , .
- kbit/s; kbit/s. : sì.
Dettagli di calcolo
- Parole con (): , , , , , , , . Con l'insieme è lo stesso, cambia solo quale dà quale parola (per : ).
- Punto 4: ; colonne di : , solo la quarta vale , quindi il leader è unico. Le sindromi e hanno invece due leader ciascuna.
- Punto 5: bit per simbolo, .
Errori tipici
- Considerare non lineare .
- Cercare la forma sistematica con scambi di righe invece che con somma di colonne.
- Dire che corregge errore.