Esercizio - codice (6,2) da matrice di parità non sistematica, decodifica e capacità con 4-QAM (secondo compitino del 12 gennaio 2024, es. 169)
In questa pagina 6
Testo (tema d'esame del secondo compitino del 12 gennaio 2024, corso di Fondamenti di Telecomunicazioni, Ing. Informatica UniPD). Per un canale binario simmetrico senza memoria con periodo di simbolo pari a s e probabilità d'errore sul bit pari a si impiega un codice binario a correzione d'errore con matrice di controllo di parità
- (3p) Dire se il codice è lineare. Determinare il rate del codice. Dire se è sistematico. Trovare la matrice generatrice del codice sistematico associato, cambiando il numero minimo possibile di bit di codice.
- (3p) Trovare la distanza minima, il peso minimo, il numero di errori rilevati e corretti dal codice.
- (3p) Trovare le parole decodificate e con le sequenze ricevute e .
- (3p) Determinare se è possibile trovare una codifica di canale per ottenere una probabilità d'errore residua inferiore a se all'ingresso si ha una sorgente con un rate di kbit/s.
- (3p) Determinare se è possibile trovare una codifica di canale per ottenere una probabilità d'errore residua piccola a piacere con la stessa sorgente del punto precedente se il canale impiega una modulazione 4-QAM su canale gaussiano con lo stesso periodo di simbolo, energia media della costellazione in ricezione pari a e varianza del rumore AWGN nel punto di decisione .
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 →, Modulazione QAM - costellazioni, energia e probabilità d'erroreLa QAM trasmette due PAM indipendenti su due portanti in quadratura: $s_m(t)=\alpha_{m,I}h_{Tx}(t)\cos(2\pi f_0t)-\alpha_{m,Q}h_{Tx}(t)\sin(2\pi f_0t)$ con $\alpha\in{\pm1,\pm3,\dots}$ e $M=2^{2b}$ ($2b$ bit per simbolo). La base è $\phi_{1,2}\propto h_{Tx}\cos,,-h_{Tx}\sin$ con energia $\frac{E_h}2$, i punti stanno su una griglia $\sqrt M\times\sqrt M$ con $d_{\min}=\sqrt{2E_h}$ ed $E_s=\frac{M-1}{3}E_h$. Con $q=Q\left(\sqrt{\frac{E_h}{2\sigma_I^2}}\right)$: $P[E]=4\left(1-\frac1{\sqrt M}\right)q-4\left(1-\frac1{\sqrt M}\right)^2q^2$, con $\frac{E_h}{2\sigma_I^2}=\frac{E_s}{\sigma_I^2}\frac{3}{2(M-1)}$. Con Gray su ogni asse $P_{bit}\simeq\frac{P[E]}{\log_2M}$.Modulazione QAM - costellazioni, energia e probabilità d'errore →, 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. Linearità, rate, forma sistematica
Lineare. Il codice è l'insieme delle con , cioè lo spazio nullo di una matrice: è un sottospazio, quindi lineare.
Rate. ha colonne () e righe indipendenti (il rango è : la prima riga è l'unica con in colonna , la seconda l'unica in colonna , la quarta l'unica in colonna , la terza è l'unica con in colonna ). Quindi , , . Le parole sono .
Sistematico? Una matrice di controllo in forma sistematica ha l'identità nelle ultime quattro colonne, nell'ordine . Le colonne di sono Le colonne sono : non sono l'identità, quindi non è in forma sistematica.
Forma sistematica con il minimo di permutazioni dei bit. Le colonne sono e devono occupare le posizioni in questo ordine: passa in posizione , in , in ( è già al suo posto). Le colonne non identità vanno nelle posizioni . L'ordine nuovo è , cioè la seconda colonna viene spostata in quinta posizione: Si legge la generatrice : Le parole del codice sistematico associato sono , (: prima colonna), () e (). Sono le parole del codice originale con i bit permutati (la posizione finisce in quinta, le altre scorrono), quindi lo stesso comportamento su canale senza memoria: stessa , stesse probabilità d'errore (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 →).
Osservazione. Il codice originale ha le parole (nucleo di , controllato con Python) e i loro primi due bit sono : il codice, come insieme di parole, ha già i primi due bit liberi, quindi con operazioni sulle righe di (che non cambiano il codice) e sulle colonne di si arriva a senza permutare alcun bit. La soluzione del corso permuta una colonna, e i punti successivi (punti 3 e 5) vanno letti sul codice permutato. Se si decodificasse sul codice originale la sequenza darebbe un pareggio (sezione 3).
2. Distanza minima, peso minimo, errori
Pesi delle parole non nulle del codice sistematico: , , . Il peso minimo è e, per un codice lineare, (stesso valore per il codice originale, con pesi ). Si ritrova da : le colonne sono tutte non nulle e tutte diverse, quindi nessuna parola ha peso o (), e le colonne sommano a zero (), cioè la parola di peso esiste (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 →). Quindi
- errori rivelati sempre: ;
- errori corretti sempre: .
3. Decodifica con il codice sistematico associato
. Con , riga per riga:
- riga : ;
- riga : ;
- riga : ;
- riga : .
Sindrome : è la colonna di e le colonne sono tutte diverse, quindi il coset leader è unico, , e È la parola (da ).
. Righe: ; ; ; . Sindrome : è già una parola e . (Quindi anche viene decodificata in , come dice la soluzione del corso: .)
Con il codice originale (parole ) è a distanza sia da sia da (e da , da ): pareggio, non correggibile in modo unico, come previsto da che garantisce solo un errore. Per questo il testo parla del "codice sistematico associato".
4. Esiste un codice per kbit/s?
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 →) con un bit-rate di informazione minore della capacità la probabilità d'errore residua si può rendere piccola a piacere: anche sotto (resta un numero fissato, e "piccola a piacere" lo include). Il canale è il BSC con e s per bit: kbit/s: sì, è possibile. (Il margine è sottile, di kbit/s: servirebbero parole molto lunghe.)
5. Con la modulazione 4-QAM
Probabilità d'errore sul bit. Per la 4-QAM con Gray (Modulazione QAM - costellazioni, energia e probabilità d'erroreLa QAM trasmette due PAM indipendenti su due portanti in quadratura: $s_m(t)=\alpha_{m,I}h_{Tx}(t)\cos(2\pi f_0t)-\alpha_{m,Q}h_{Tx}(t)\sin(2\pi f_0t)$ con $\alpha\in{\pm1,\pm3,\dots}$ e $M=2^{2b}$ ($2b$ bit per simbolo). La base è $\phi_{1,2}\propto h_{Tx}\cos,,-h_{Tx}\sin$ con energia $\frac{E_h}2$, i punti stanno su una griglia $\sqrt M\times\sqrt M$ con $d_{\min}=\sqrt{2E_h}$ ed $E_s=\frac{M-1}{3}E_h$. Con $q=Q\left(\sqrt{\frac{E_h}{2\sigma_I^2}}\right)$: $P[E]=4\left(1-\frac1{\sqrt M}\right)q-4\left(1-\frac1{\sqrt M}\right)^2q^2$, con $\frac{E_h}{2\sigma_I^2}=\frac{E_s}{\sigma_I^2}\frac{3}{2(M-1)}$. Con Gray su ogni asse $P_{bit}\simeq\frac{P[E]}{\log_2M}$.Modulazione QAM - costellazioni, energia e probabilità d'errore →): (È anche la formula generale per la QAM, , con : .)
Capacità. Il periodo di simbolo della 4-QAM è s e ogni simbolo porta bit, quindi i bit del BSC equivalente si succedono ogni s: Con questa lettura kbit/s: sì, è possibile (calcolo verificato con Python).
Osservazione sulla soluzione del corso. La soluzione riporta lo stesso valore, kbit/s, ma conclude "no, perché è inferiore al rate della sorgente". Ora , quindi con quel valore la risposta è sì. La conclusione "no" sarebbe vera se i s fossero il periodo di un bit (non di un simbolo QAM a due bit): allora kbit/s, minore di kbit/s. Con la formulazione "lo stesso periodo di simbolo" della modulazione, la lettura coerente è quella a due bit per simbolo e la risposta è sì.
Errori comuni
- Dire che è già sistematica perché "ha una sotto-matrice identità": le ultime quattro colonne devono essere in ordine.
- Passare da a o a invece di .
- Decodificare con la originale dopo aver permutato il codice, o viceversa.
- Calcolare la capacità della 4-QAM con il periodo del simbolo anziché del bit (due bit per simbolo).
- Dimenticare che nella probabilità d'errore sul bit.
Versione ripasso
Testo. BSC con s, ; . Richiesti: linearità, rate, sistematico, sistematica con permutazioni minime; , peso minimo, errori; decodifica di , ; esistenza di una codifica a errore per kbit/s; lo stesso con 4-QAM (, ).
- definisce un sottospazio: lineare. , , , .
- non è sistematica (colonne non sono ). Si sposta la colonna in posizione : , .
- Osservazione: il codice originale () ha già i primi due bit liberi: con operazioni sulle righe di non servirebbe nessuna permutazione.
Punto 2: pesi : , rivela , corregge .
Punto 3
- : = colonna , . : , .
- kbit/s: sì.
Punto 5
- ; : kbit/s: sì. (La soluzione del corso scrive ma conclude "no", incoerente.)
Dettagli di calcolo
- Colonne di : ; le identità sono le colonne e vanno in posizione .
- Parole del codice sistematico associato: ; del codice originale: (stesse parole con i bit permutati).
- Punto 3: dà , quindi si corregge il bit ; sul codice originale sarebbe a distanza da due parole (pareggio).
- Punto 5: , ; con s kbit/s; con s sarebbe kbit/s (caso in cui la risposta è no).
Errori tipici
- Chiamare sistematica una senza l'identità in fondo, in ordine.
- Scrivere invece di .
- Usare il periodo del simbolo QAM al posto di quello del bit.