Esercizio - codice (5,3) lineare dalle parole di codice, sindrome e periodo di simbolo massimo (esame dell'8 febbraio 2024, es. 175)
In questa pagina 6
Testo (tema d'esame dell'8 febbraio 2024, corso di Fondamenti di Telecomunicazioni, Ing. Informatica UniPD). Una sorgente emette simboli binari (bit) equiprobabili con periodo di simbolo pari a s. Ogni gruppo di bit viene codificato con un codificatore di canale lineare che tra le parole di codice ha , , e . I bit codificati vengono trasmessi su un canale binario simmetrico senza memoria con probabilità d'errore sul bit pari a .
- (2p) Determinare il tasso (rate) del codice. Trovare la matrice generatrice del codice sistematico associato.
- (2p) Trovare la matrice di controllo di parità e il numero di errori rilevati e corretti dal codice.
- (2p) Trovare la parola di codice decodificata dalla sequenza ricevuta .
- (2p) Determinare la probabilità che la sequenza ricevuta sia se è stata trasmessa la parola .
- (2p) Trovare il periodo di simbolo massimo sul canale per trasmettere l'informazione della sorgente sul canale, con una probabilità d'errore piccola a piacere sulle parole decodificate.
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 e matrice generatrice sistematica
I bit entrano a gruppi di e le parole hanno bit: rate . Le parole sono ; ne sono date , e le altre si ottengono per linearità.
Perché bastano le parole date. : la terza parola è somma delle prime due, quindi la dimensione dello spazio generato da è al massimo . Le tre parole sono indipendenti (le somme di ogni loro sottoinsieme non vuoto sono tutte parole non nulle, come mostra l'elenco qui sotto), quindi lo spazio ha dimensione esattamente e il codice è (i vettori di tutte le somme di ; controllato con Python).
Forma sistematica. Servono le tre parole che hanno come primi tre bit , , : saranno le colonne di (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 →, ogni colonna è una parola).
- primi bit : (già data);
- primi bit : ;
- primi bit : .
Scrivendo queste tre parole come colonne:
2. Matrice di controllo di parità, errori rivelati e corretti
I pesi delle parole non nulle sono , , , , , , . Quindi e il codice
- rivela sempre errore;
- corregge sempre errori.
(Dalle colonne di : ; ci sono colonne uguali (, ), quindi .)
3. Decodifica di
Sindrome: È diversa da . Nelle colonne di la sequenza compare una sola volta, alla colonna : il coset leader di peso è unico, (le sindromi e invece hanno due leader ciascuna: sarebbero errori non correggibili in modo unico). La parola decodificata è che appartiene a : con , dà . Poiché è sistematica, i primi tre bit sono i bit decodificati: .
4. Probabilità di ricevere trasmettendo
5. Periodo di simbolo massimo sul canale
La sorgente emette un bit ogni s: bit-rate di informazione kbit/s (bit equiprobabili: bit di informazione per simbolo). 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 →) la probabilità d'errore residua può essere piccola a piacere se , con dove è il periodo di simbolo sul canale. La condizione è Il periodo di simbolo massimo è circa s: poco meno dei s della sorgente, perché il canale sbaglia raramente e è vicino a .
Osservazione. Con il codice di questo esercizio, per tenere il passo della sorgente basterebbe un periodo s, ben dentro il limite; ma il codice non porta la probabilità d'errore a "piccola a piacere": la probabilità di parola errata, dalla tabella dei coset, è a , contro per bit senza codice (Python). Serve un codice più lungo, come garantisce il teorema.
Errori comuni
- Prendere come le parole di un codice con perché sono quattro: sono dipendenti () e il codice ha parole.
- Costruire con le righe uguali alle parole date: in questo corso le parole sono le colonne di , che deve avere forma .
- Dedurre dalla sindrome un errore preciso: con due colonne uguali non si può correggere.
- Usare s come periodo del canale: è quello della sorgente; del canale è l'incognita.
Versione ripasso
Testo. Sorgente di bit equiprobabili ogni s, gruppi di bit, codice lineare con , , , ; BSC con . Richiesti: rate e sistematica; , errori rivelati e corretti; decodifica di ; ; periodo di simbolo massimo sul canale.
- ; : il codice ha parole .
- Colonne di : , , : , .
- . Pesi : , rivela , corregge .
Punto 3
- = colonna (unica): , .
Punto 4: : .
- kbit/s; s.
Dettagli di calcolo
- Parole: , pesi non nulli .
- del codice con la tabella dei coset ( leader di peso , uno solo per sindrome): a , contro per bit senza codice.
Errori tipici
- Contare parole invece di ( dipende da ).
- Mettere le parole come righe di .
- Correggere con una sindrome ripetuta in .