Salta al contenuto
Note per Studenti Esercizio - codice (6,3) da equazioni con quadrati e matrice di controllo di parità (secondo compitino del 14 gennaio 2025, es. 185)

Esercizio - codice (6,3) da equazioni con quadrati e matrice di controllo di parità (secondo compitino del 14 gennaio 2025, es. 185)

Esame
In questa pagina 6

Testo (tema d'esame del secondo compitino del 14 gennaio 2025, corso di Fondamenti di Telecomunicazioni, Ing. Informatica UniPD). Per un canale binario simmetrico senza memoria con periodo di simbolo pari a 10−510^{-5} s e probabilità d'errore sul bit pari a Pbit=10−4P_{bit}=10^{-4} si impiega un codice binario in cui le parole di codice c=[c1,c2,c3,c4,c5,c6]T\mathbf c=[c_1,c_2,c_3,c_4,c_5,c_6]^T sono ottenute dai bit di ingresso b=[b1,b2,b3]T\mathbf b=[b_1,b_2,b_3]^T in questo modo

c1=b2,c2=b1,c3=b3,c4=b22+b32,c5=b1+b2,c6=(b1+b2+b3)2,c_1=b_2,\quad c_2=b_1,\quad c_3=b_3,\quad c_4=b_2^2+b_3^2,\quad c_5=b_1+b_2,\quad c_6=(b_1+b_2+b_3)^2,

dove la somma si intende modulo due.

  1. (3p) Dire se il codice è lineare. Determinare il rate del codice. Dire se è sistematico. Se il codice è lineare, trovare la matrice generatrice del codice in forma sistematica associato, con il numero minimo possibile di permutazioni di colonne.
  2. (3p) Trovare la distanza minima, il peso minimo, il numero di errori rilevati e corretti dal codice.
  3. (3p) Utilizzando il codice sistematico associato, trovare le parole decodificate γ1\boldsymbol\gamma_1 e γ2\boldsymbol\gamma_2 dalle sequenze ricevute ξ1=[0 0 0 0 1 1]T\boldsymbol\xi_1=[0\,0\,0\,0\,1\,1]^T e ξ2=[1 1 1 0 0 1]T\boldsymbol\xi_2=[1\,1\,1\,0\,0\,1]^T.
  4. (3p) Determinare la probabilità di ricevere la sequenza ξ1\boldsymbol\xi_1 se è stata trasmessa la parola γ2\boldsymbol\gamma_2 determinata sopra.
  5. (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 20 μ20\ \mus, con alfabeto A={0,1,2,3}\mathcal A=\{0,1,2,3\}.

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. Linearità, rate, forma sistematica

Linearità. Nell'aritmetica binaria 02=00^2=0 e 12=11^2=1: elevare al quadrato un bit non cambia il bit. Quindi c4=b22+b32=b2+b3,c6=(b1+b2+b3)2=b1+b2+b3.c_4=b_2^2+b_3^2=b_2+b_3,\qquad c_6=(b_1+b_2+b_3)^2=b_1+b_2+b_3. (la seconda conferma: il quadrato di una somma è la somma dei quadrati modulo 22, perché il doppio prodotto vale 2xy=02xy=0). Tutti i bit sono somme modulo 22 di bit di informazione, senza costanti né prodotti: il codice è lineare. La matrice generatrice G′G' (6×36\times3) ha per righe i coefficienti di b1,b2,b3b_1,b_2,b_3 in ogni equazione: G′=[010100001011110111].G'=\begin{bmatrix}0&1&0\\1&0&0\\0&0&1\\0&1&1\\1&1&0\\1&1&1\end{bmatrix}.

Rate: R=kn=36=12R=\frac kn=\frac36=\frac12.

Sistematico? No: i primi due bit della parola sono b2b_2 e b1b_1, cioè invertiti rispetto all'informazione.

Forma sistematica con il minimo numero di permutazioni. Basta scambiare le prime due colonne di G′G' (una sola permutazione di colonne): è un'operazione sulle colonne, quindi il codice è lo stesso (cambia solo quale b\mathbf b dà quale parola, 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 →). Si ottiene G=[100010001101110111]=[I3A],A=[101110111].G=\begin{bmatrix}1&0&0\\0&1&0\\0&0&1\\1&0&1\\1&1&0\\1&1&1\end{bmatrix}=\begin{bmatrix}I_3\\A\end{bmatrix},\qquad A=\begin{bmatrix}1&0&1\\1&1&0\\1&1&1\end{bmatrix}. Le 88 parole sono (per b=000,001,…,111\mathbf b=000,001,\dots,111) 000000, 001101, 010011, 011110, 100111, 101010, 110100, 111001.000000,\ 001101,\ 010011,\ 011110,\ 100111,\ 101010,\ 110100,\ 111001.

2. Distanza minima, peso minimo, errori rivelati e corretti

Pesi delle parole non nulle: 001101→3001101\to3, 010011→3010011\to3, 011110→4011110\to4, 100111→4100111\to4, 101010→3101010\to3, 110100→3110100\to3, 111001→4111001\to4. Il peso minimo è 33 e, per un codice lineare, dmin=wmin=3d_{min}=w_{min}=3 (le parole di peso 33 sono quattro). Quindi

  • errori rivelati sempre: dmin−1=2d_{min}-1=2;
  • errori corretti sempre: ⌊3−12⌋=1\left\lfloor\frac{3-1}2\right\rfloor=1.

3. Decodifica con la sindrome

Dalla GG sistematica: H=[A∣I3]H=[A\mid I_3] (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 →), H=[101100110010111001].H=\begin{bmatrix}1&0&1&1&0&0\\1&1&0&0&1&0\\1&1&1&0&0&1\end{bmatrix}. Le colonne sono [1,1,1]T[1,1,1]^T, [0,1,1]T[0,1,1]^T, [1,0,1]T[1,0,1]^T, [1,0,0]T[1,0,0]^T, [0,1,0]T[0,1,0]^T, [0,0,1]T[0,0,1]^T: tutte diverse e non nulle, quindi i sei errori singoli hanno sindromi distinte (coset leader unici) e dmin≥3d_{min}\ge3, in accordo con la sezione 2.

ξ1=[0,0,0,0,1,1]T\boldsymbol\xi_1=[0,0,0,0,1,1]^T. Righe: [1,0,1,1,0,0]⋅ξ1=0[1,0,1,1,0,0]\cdot\boldsymbol\xi_1=0; [1,1,0,0,1,0]⋅ξ1=1[1,1,0,0,1,0]\cdot\boldsymbol\xi_1=1; [1,1,1,0,0,1]⋅ξ1=1[1,1,1,0,0,1]\cdot\boldsymbol\xi_1=1. Sindrome σ1=[0,1,1]T\boldsymbol\sigma_1=[0,1,1]^T, che è la colonna 22 di HH: il coset leader è ε=[0,1,0,0,0,0]T\boldsymbol\varepsilon=[0,1,0,0,0,0]^T e γ1=ξ1+ε=[0,0,0,0,1,1]T+[0,1,0,0,0,0]T=[0,1,0,0,1,1]T.\boldsymbol\gamma_1=\boldsymbol\xi_1+\boldsymbol\varepsilon=[0,0,0,0,1,1]^T+[0,1,0,0,0,0]^T=[0,1,0,0,1,1]^T. È la parola 010011010011 (da b=010\mathbf b=010).

ξ2=[1,1,1,0,0,1]T\boldsymbol\xi_2=[1,1,1,0,0,1]^T. Righe: 1+1=01+1=0 (riga 11: bit 11 e 33); 1+1=01+1=0 (riga 22: bit 1,21,2); 1+1+1+1=01+1+1+1=0 (riga 33: bit 1,2,3,61,2,3,6). Sindrome 0\mathbf 0: ξ2\boldsymbol\xi_2 è già una parola di codice (da b=111\mathbf b=111) e γ2=ξ2=[1,1,1,0,0,1]T\boldsymbol\gamma_2=\boldsymbol\xi_2=[1,1,1,0,0,1]^T.

4. Probabilità di ricevere ξ1\boldsymbol\xi_1 trasmettendo γ2\boldsymbol\gamma_2

Su un BSC conta il numero di bit diversi: ξ1=000011\boldsymbol\xi_1=000011 e γ2=111001\boldsymbol\gamma_2=111001 differiscono nelle posizioni 1,2,3,51,2,3,5 (nelle posizioni 44 e 66 coincidono: 0,00,0 e 1,11,1). Quindi dH=4d_H=4 e P[ξ1∣γ2]=Pbit 4(1−Pbit) 2=10−16⋅0,99992=9,998⋅10−17.P[\boldsymbol\xi_1\mid\boldsymbol\gamma_2]=P_{bit}^{\,4}(1-P_{bit})^{\,2}=10^{-16}\cdot0{,}9999^2=9{,}998\cdot10^{-17}.

5. Esiste una codifica a errore residuo piccolo a piacere?

La sorgente emette un simbolo ogni 20 μ20\ \mus da un alfabeto di 44 simboli: al massimo log⁡24=2\log_24=2 bit per simbolo, cioè Rb=220⋅10−6=100 kbit/sR_b=\frac{2}{20\cdot10^{-6}}=100\ \text{kbit/s} (informazione massima, simboli equiprobabili; senza altre informazioni si assume questo valore). Il canale è il BSC con T=10−5T=10^{-5} s e Pbit=10−4P_{bit}=10^{-4}: h(10−4)=−10−4log⁡210−4−0,9999log⁡20,9999=0,001473,C=1−h(Pbit)T=0,99852710−5=99,85 kbit/s.h(10^{-4})=-10^{-4}\log_210^{-4}-0{,}9999\log_20{,}9999=0{,}001473,\qquad C=\frac{1-h(P_{bit})}{T}=\frac{0{,}998527}{10^{-5}}=99{,}85\ \text{kbit/s}. Poiché Rb=100>C=99,85R_b=100>C=99{,}85 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 →) non esiste alcuna codifica a errore residuo piccolo a piacere: no. (Il codice (6,3)(6,3) di questo esercizio, di rate 12\frac12, non basterebbe comunque.)

Errori comuni

  • Credere che b22+b32b_2^2+b_3^2 o (b1+b2+b3)2(b_1+b_2+b_3)^2 rendano il codice non lineare: modulo 22 il quadrato di un bit è il bit stesso.
  • Per la forma sistematica scambiare le righe (anche così si arriva alla forma sistematica, ma si cambiano i bit del codice) invece di scambiare le colonne, che lascia il codice invariato.
  • Calcolare la sindrome di ξ2\boldsymbol\xi_2 senza accorgersi che è già una parola (sindrome nulla, nessuna correzione).
  • Confrontare CC con 1T\frac{1}{T} (il bit-rate del canale) o con il rate del codice R=12R=\frac12 invece che con il bit-rate dell'informazione della sorgente.

Versione ripasso

Testo. BSC con T=10−5T=10^{-5} s e Pbit=10−4P_{bit}=10^{-4}. c1=b2c_1=b_2, c2=b1c_2=b_1, c3=b3c_3=b_3, c4=b22+b32c_4=b_2^2+b_3^2, c5=b1+b2c_5=b_1+b_2, c6=(b1+b2+b3)2c_6=(b_1+b_2+b_3)^2. Richiesti: linearità, rate, forma sistematica con permutazioni minime; dmind_{min}, errori; decodifica di 000011000011 e 111001111001; P[ξ1∣γ2]P[\boldsymbol\xi_1\mid\boldsymbol\gamma_2]; esistenza di una codifica per una sorgente quaternaria a un simbolo ogni 20 μ20\ \mus.

Punto 1 (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 →)

  • x2=xx^2=x modulo 22: c4=b2+b3c_4=b_2+b_3, c6=b1+b2+b3c_6=b_1+b_2+b_3: lineare. R=12R=\frac12. Non sistematico (c1=b2c_1=b_2, c2=b1c_2=b_1).
  • Scambio delle colonne 11 e 22 di G′G': G=[I3A]G=\begin{bmatrix}I_3\\A\end{bmatrix}, A=[101110111]A=\begin{bmatrix}1&0&1\\1&1&0\\1&1&1\end{bmatrix}.
  • Parole: 000000,001101,010011,011110,100111,101010,110100,111001000000,001101,010011,011110,100111,101010,110100,111001.

Punto 2: pesi 3,3,4,4,3,3,43,3,4,4,3,3,4: dmin=3d_{min}=3, rivela 22, corregge 11.

Punto 3 (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 →)

  • H=[A∣I3]H=[A\mid I_3]: colonne tutte diverse e non nulle.
  • ξ1\boldsymbol\xi_1: σ=[0,1,1]T\boldsymbol\sigma=[0,1,1]^T = colonna 22, γ1=010011\boldsymbol\gamma_1=010011. ξ2\boldsymbol\xi_2: σ=0\boldsymbol\sigma=\mathbf 0, γ2=111001\boldsymbol\gamma_2=111001.

Punto 4: dH(000011,111001)=4d_H(000011,111001)=4: Pbit4(1−Pbit)2=9,998⋅10−17P_{bit}^4(1-P_{bit})^2=9{,}998\cdot10^{-17}.

Punto 5 (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 →)

  • Rb=log⁡2420 μs=100R_b=\frac{\log_24}{20\ \mu s}=100 kbit/s; C=1−h(10−4)10−5=99,85C=\frac{1-h(10^{-4})}{10^{-5}}=99{,}85 kbit/s: Rb>CR_b>C, no.

Errori tipici

  • Ritenere non lineare un codice con quadrati.
  • Sistemare GG scambiando le righe (cambia il codice) invece delle colonne.
  • Confrontare CC con il bit-rate del canale o con il rate del codice.

Teoria collegata