Salta al contenuto
Note per Studenti Esercizio - codice (6,2) da matrice di parità non sistematica, decodifica e capacità con 4-QAM (secondo compitino del 12 gennaio 2024, es. 169)

Esercizio - codice (6,2) da matrice di parità non sistematica, decodifica e capacità con 4-QAM (secondo compitino del 12 gennaio 2024, es. 169)

Esame
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 10−510^{-5} s e probabilità d'errore sul bit pari a Pbit=10−4P_{bit}=10^{-4} si impiega un codice binario a correzione d'errore con matrice di controllo di parità H=[001100101010111000001001].H=\begin{bmatrix}0&0&1&1&0&0\\1&0&1&0&1&0\\1&1&1&0&0&0\\0&0&1&0&0&1\end{bmatrix}.

  1. (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.
  2. (3p) Trovare la distanza minima, il peso minimo, il numero di errori rilevati e corretti dal codice.
  3. (3p) Trovare le parole decodificate γ1\boldsymbol\gamma_1 e γ2\boldsymbol\gamma_2 con le sequenze ricevute ξ1=[1 1 1 0 1 1]T\boldsymbol\xi_1=[1\,1\,1\,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 se è possibile trovare una codifica di canale per ottenere una probabilità d'errore residua inferiore a 10−3010^{-30} se all'ingresso si ha una sorgente con un rate di 9999 kbit/s.
  5. (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 8⋅10−78\cdot10^{-7} e varianza del rumore AWGN nel punto di decisione σI2=10−7\sigma_I^2=10^{-7}.

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 r\mathbf r con Hr=0H\mathbf r=\mathbf 0, cioè lo spazio nullo di una matrice: è un sottospazio, quindi lineare.

Rate. HH ha 66 colonne (n=6n=6) e 44 righe indipendenti (il rango è 44: la prima riga è l'unica con 11 in colonna 44, la seconda l'unica in colonna 55, la quarta l'unica in colonna 66, la terza è l'unica con 11 in colonna 22). Quindi n−k=4n-k=4, k=2k=2, R=26=13R=\frac26=\frac13. Le parole sono 22=42^2=4.

Sistematico? Una matrice di controllo in forma sistematica ha l'identità I4I_4 nelle ultime quattro colonne, nell'ordine e1,e2,e3,e4\mathbf e_1,\mathbf e_2,\mathbf e_3,\mathbf e_4. Le colonne di HH sono h1=[0110], h2=[0010], h3=[1111], h4=[1000], h5=[0100], h6=[0001].\mathbf h_1=\begin{bmatrix}0\\1\\1\\0\end{bmatrix},\ \mathbf h_2=\begin{bmatrix}0\\0\\1\\0\end{bmatrix},\ \mathbf h_3=\begin{bmatrix}1\\1\\1\\1\end{bmatrix},\ \mathbf h_4=\begin{bmatrix}1\\0\\0\\0\end{bmatrix},\ \mathbf h_5=\begin{bmatrix}0\\1\\0\\0\end{bmatrix},\ \mathbf h_6=\begin{bmatrix}0\\0\\0\\1\end{bmatrix}. Le colonne 3,4,5,63,4,5,6 sono [1,1,1,1]T,e1,e2,e4[1,1,1,1]^T,\mathbf e_1,\mathbf e_2,\mathbf e_4: non sono l'identità, quindi HH non è in forma sistematica.

Forma sistematica con il minimo di permutazioni dei bit. Le colonne e1,e2,e3,e4\mathbf e_1,\mathbf e_2,\mathbf e_3,\mathbf e_4 sono h4,h5,h2,h6\mathbf h_4,\mathbf h_5,\mathbf h_2,\mathbf h_6 e devono occupare le posizioni 3,4,5,63,4,5,6 in questo ordine: h4\mathbf h_4 passa in posizione 33, h5\mathbf h_5 in 44, h2\mathbf h_2 in 55 (h6\mathbf h_6 è già al suo posto). Le colonne non identità h1,h3\mathbf h_1,\mathbf h_3 vanno nelle posizioni 1,21,2. L'ordine nuovo è (h1,h3,h4,h5,h2,h6)(\mathbf h_1,\mathbf h_3,\mathbf h_4,\mathbf h_5,\mathbf h_2,\mathbf h_6), cioè la seconda colonna viene spostata in quinta posizione: H′=[011000110100110010010001]=[A∣I4],A=[01111101].H'=\begin{bmatrix}0&1&1&0&0&0\\1&1&0&1&0&0\\1&1&0&0&1&0\\0&1&0&0&0&1\end{bmatrix}=[A\mid I_4],\qquad A=\begin{bmatrix}0&1\\1&1\\1&1\\0&1\end{bmatrix}. Si legge la generatrice G=[I2A]G=\begin{bmatrix}I_2\\A\end{bmatrix}: G=[100101111101].G=\begin{bmatrix}1&0\\0&1\\0&1\\1&1\\1&1\\0&1\end{bmatrix}. Le parole del codice sistematico associato sono 000000000000, 100110100110 (b=10\mathbf b=10: prima colonna), 011111011111 (b=01\mathbf b=01) e 111001111001 (b=11\mathbf b=11). Sono le parole del codice originale con i bit permutati (la posizione 22 finisce in quinta, le altre scorrono), quindi lo stesso comportamento su canale senza memoria: stessa dmind_{min}, 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 000000, 011111, 101101, 110010000000,\ 011111,\ 101101,\ 110010 (nucleo di HH, controllato con Python) e i loro primi due bit sono 00,01,10,1100,01,10,11: il codice, come insieme di parole, ha già i primi due bit liberi, quindi con operazioni sulle righe di HH (che non cambiano il codice) e sulle colonne di GG si arriva a G=[100111110111]G=\begin{bmatrix}1&0\\0&1\\1&1\\1&1\\0&1\\1&1\end{bmatrix} 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 ξ1\boldsymbol\xi_1 darebbe un pareggio (sezione 3).

2. Distanza minima, peso minimo, errori

Pesi delle parole non nulle del codice sistematico: 100110→3100110\to3, 011111→5011111\to5, 111001→4111001\to4. Il peso minimo è 33 e, per un codice lineare, dmin=wmin=3d_{min}=w_{min}=3 (stesso valore per il codice originale, con pesi 5,4,35,4,3). Si ritrova da H′H': le colonne sono tutte non nulle e tutte diverse, quindi nessuna parola ha peso 11 o 22 (dmin≥3d_{min}\ge3), e le colonne 1,4,51,4,5 sommano a zero ([0,1,1,0]T+[0,1,0,0]T+[0,0,1,0]T=0[0,1,1,0]^T+[0,1,0,0]^T+[0,0,1,0]^T=\mathbf 0), cioè la parola 100110100110 di peso 33 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: dmin−1=2d_{min}-1=2;
  • errori corretti sempre: ⌊3−12⌋=1\lfloor\frac{3-1}2\rfloor=1.

3. Decodifica con il codice sistematico associato

ξ1=[1,1,1,0,1,1]T\boldsymbol\xi_1=[1,1,1,0,1,1]^T. Con H′H', riga per riga:

  • riga [0,1,1,0,0,0][0,1,1,0,0,0]: ξ2+ξ3=1+1=0\xi_2+\xi_3=1+1=0;
  • riga [1,1,0,1,0,0][1,1,0,1,0,0]: ξ1+ξ2+ξ4=1+1+0=0\xi_1+\xi_2+\xi_4=1+1+0=0;
  • riga [1,1,0,0,1,0][1,1,0,0,1,0]: ξ1+ξ2+ξ5=1+1+1=1\xi_1+\xi_2+\xi_5=1+1+1=1;
  • riga [0,1,0,0,0,1][0,1,0,0,0,1]: ξ2+ξ6=1+1=0\xi_2+\xi_6=1+1=0.

Sindrome σ=[0,0,1,0]T\boldsymbol\sigma=[0,0,1,0]^T: è la colonna 55 di H′H' e le colonne sono tutte diverse, quindi il coset leader è unico, ε=[0,0,0,0,1,0]T\boldsymbol\varepsilon=[0,0,0,0,1,0]^T, e γ1=ξ1+ε=[1,1,1,0,1,1]T+[0,0,0,0,1,0]T=[1,1,1,0,0,1]T.\boldsymbol\gamma_1=\boldsymbol\xi_1+\boldsymbol\varepsilon=[1,1,1,0,1,1]^T+[0,0,0,0,1,0]^T=[1,1,1,0,0,1]^T. È la parola 111001111001 (da b=11\mathbf b=11).

ξ2=[1,1,1,0,0,1]T\boldsymbol\xi_2=[1,1,1,0,0,1]^T. Righe: 1+1=01+1=0; 1+1+0=01+1+0=0; 1+1+0=01+1+0=0; 1+1=01+1=0. Sindrome 0\mathbf 0: ξ2\boldsymbol\xi_2 è già una parola e γ2=ξ2=[1,1,1,0,0,1]T\boldsymbol\gamma_2=\boldsymbol\xi_2=[1,1,1,0,0,1]^T. (Quindi anche ξ1\boldsymbol\xi_1 viene decodificata in ξ2\boldsymbol\xi_2, come dice la soluzione del corso: γ1=γ2\boldsymbol\gamma_1=\boldsymbol\gamma_2.)

Con il codice originale (parole 000000,011111,101101,110010000000,011111,101101,110010) ξ1\boldsymbol\xi_1 è a distanza 22 sia da 011111011111 sia da 110010110010 (e 33 da 101101101101, 55 da 0\mathbf 0): pareggio, non correggibile in modo unico, come previsto da dmin=3d_{min}=3 che garantisce solo un errore. Per questo il testo parla del "codice sistematico associato".

4. Esiste un codice per 9999 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 10−3010^{-30} (resta un numero fissato, e "piccola a piacere" lo include). Il canale è il BSC con Pbit=10−4P_{bit}=10^{-4} e T=10−5T=10^{-5} s per bit: h(10−4)=0,001473,C=1−h(Pbit)T=0,99852710−5=99,85 kbit/s.h(10^{-4})=0{,}001473,\qquad C=\frac{1-h(P_{bit})}{T}=\frac{0{,}998527}{10^{-5}}=99{,}85\ \text{kbit/s}. Rb=99<99,85R_b=99<99{,}85 kbit/s: sì, è possibile. (Il margine è sottile, di 0,850{,}85 kbit/s: servirebbero parole molto lunghe.)

5. Con la modulazione 4-QAM

Probabilità d'errore sul bit. Per la 4-QAM con Gray Pbit=Q ⁣(Es/(2σI2))P_{bit}=Q\!\left(\sqrt{E_s/(2\sigma_I^2)}\right) (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 →): Es2σI2=8⋅10−72⋅10−7=4,Pbit=Q(4)=Q(2)=2,275⋅10−2.\frac{E_s}{2\sigma_I^2}=\frac{8\cdot10^{-7}}{2\cdot10^{-7}}=4,\qquad P_{bit}=Q(\sqrt4)=Q(2)=2{,}275\cdot10^{-2}. (È anche la formula generale per la QAM, 4log⁡2M(1−1M)Q ⁣(3M−1Es2σI2)\frac4{\log_2M}\left(1-\frac1{\sqrt M}\right)Q\!\left(\sqrt{\frac3{M-1}\frac{E_s}{2\sigma_I^2}}\right), con M=4M=4: 2⋅12⋅Q(2)2\cdot\frac12\cdot Q(2).)

Capacità. Il periodo di simbolo della 4-QAM è T=10−5T=10^{-5} s e ogni simbolo porta 22 bit, quindi i bit del BSC equivalente si succedono ogni Tb=T2=5 μT_b=\frac T2=5\ \mus: h(0,02275)=0,1566,C=1−h(Pbit)Tb=1−0,15665⋅10−6=168,7 kbit/s.h(0{,}02275)=0{,}1566,\qquad C=\frac{1-h(P_{bit})}{T_b}=\frac{1-0{,}1566}{5\cdot10^{-6}}=168{,}7\ \text{kbit/s}. Con questa lettura Rb=99<C=168,7R_b=99<C=168{,}7 kbit/s: sì, è possibile (calcolo verificato con Python).

Osservazione sulla soluzione del corso. La soluzione riporta lo stesso valore, 169169 kbit/s, ma conclude "no, perché è inferiore al rate della sorgente". Ora 169>99169>99, quindi con quel valore la risposta è sì. La conclusione "no" sarebbe vera se i 10 μ10\ \mus fossero il periodo di un bit (non di un simbolo QAM a due bit): allora C=1−0,156610−5=84,3C=\frac{1-0{,}1566}{10^{-5}}=84{,}3 kbit/s, minore di 9999 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 HH è già sistematica perché "ha una sotto-matrice identità": le ultime quattro colonne devono essere e1,…,e4\mathbf e_1,\dots,\mathbf e_4 in ordine.
  • Passare da H′=[A∣I]H'=[A\mid I] a G=[A\I]G=\begin{bmatrix}A\I\end{bmatrix} o a [A∣I]T[A\mid I]^T invece di [I\A]\begin{bmatrix}I\A\end{bmatrix}.
  • Decodificare con la HH 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 N0=2σI2N_0=2\sigma_I^2 nella probabilità d'errore sul bit.

Versione ripasso

Testo. BSC con T=10−5T=10^{-5} s, Pbit=10−4P_{bit}=10^{-4}; H=[001100\101010\111000\001001]H=\begin{bmatrix}0&0&1&1&0&0\1&0&1&0&1&0\1&1&1&0&0&0\0&0&1&0&0&1\end{bmatrix}. Richiesti: linearità, rate, sistematico, GG sistematica con permutazioni minime; dmind_{min}, peso minimo, errori; decodifica di ξ1=111011\boldsymbol\xi_1=111011, ξ2=111001\boldsymbol\xi_2=111001; esistenza di una codifica a errore <10−30<10^{-30} per 9999 kbit/s; lo stesso con 4-QAM (Es=8⋅10−7E_s=8\cdot10^{-7}, σI2=10−7\sigma_I^2=10^{-7}).

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

  • Hr=0H\mathbf r=\mathbf 0 definisce un sottospazio: lineare. n=6n=6, n−k=4n-k=4, k=2k=2, R=13R=\frac13.
  • HH non è sistematica (colonne 3…63\dots6 non sono I4I_4). Si sposta la colonna 22 in posizione 55: H′=[011000\110100\110010\010001]=[A∣I4]H'=\begin{bmatrix}0&1&1&0&0&0\1&1&0&1&0&0\1&1&0&0&1&0\0&1&0&0&0&1\end{bmatrix}=[A\mid I_4], G=[I2\A]=[10\01\01\11\11\01]G=\begin{bmatrix}I_2\A\end{bmatrix}=\begin{bmatrix}1&0\0&1\0&1\1&1\1&1\0&1\end{bmatrix}.
  • Osservazione: il codice originale (000000,011111,101101,110010000000,011111,101101,110010) ha già i primi due bit liberi: con operazioni sulle righe di HH non servirebbe nessuna permutazione.

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

Punto 3

  • ξ1\boldsymbol\xi_1: σ=H′ξ1=[0,0,1,0]T\boldsymbol\sigma=H'\boldsymbol\xi_1=[0,0,1,0]^T = colonna 55, γ1=111001\boldsymbol\gamma_1=111001. ξ2\boldsymbol\xi_2: σ=0\boldsymbol\sigma=\mathbf 0, γ2=ξ2\boldsymbol\gamma_2=\boldsymbol\xi_2.

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

  • C=1−h(10−4)10−5=99,85>99C=\frac{1-h(10^{-4})}{10^{-5}}=99{,}85>99 kbit/s: sì.

Punto 5

  • Pbit=Q ⁣(Es2σI2)=Q(2)=2,275⋅10−2P_{bit}=Q\!\left(\sqrt{\frac{E_s}{2\sigma_I^2}}\right)=Q(2)=2{,}275\cdot10^{-2}; Tb=T2T_b=\frac T2: C=1−0,15665 μs=168,7>99C=\frac{1-0{,}1566}{5\ \mu s}=168{,}7>99 kbit/s: sì. (La soluzione del corso scrive 169169 ma conclude "no", incoerente.)

Dettagli di calcolo

  • Colonne di HH: [0,1,1,0]T,[0,0,1,0]T,[1,1,1,1]T,e1,e2,e4[0,1,1,0]^T,[0,0,1,0]^T,[1,1,1,1]^T,\mathbf e_1,\mathbf e_2,\mathbf e_4; le identità e1,e2,e3,e4\mathbf e_1,\mathbf e_2,\mathbf e_3,\mathbf e_4 sono le colonne 4,5,2,64,5,2,6 e vanno in posizione 3,4,5,63,4,5,6.
  • Parole del codice sistematico associato: 000000,100110,011111,111001000000,100110,011111,111001; del codice originale: 000000,011111,101101,110010000000,011111,101101,110010 (stesse parole con i bit permutati).
  • Punto 3: ξ1\boldsymbol\xi_1 dà σ=[0,0,1,0]T=h5′\boldsymbol\sigma=[0,0,1,0]^T=\mathbf h'_5, quindi si corregge il bit 55; sul codice originale ξ1\boldsymbol\xi_1 sarebbe a distanza 22 da due parole (pareggio).
  • Punto 5: Pbit=Q(2)=2,275⋅10−2P_{bit}=Q(2)=2{,}275\cdot10^{-2}, h=0,1566h=0{,}1566; con Tb=5 μT_b=5\ \mus C=168,7C=168{,}7 kbit/s; con Tb=10 μT_b=10\ \mus sarebbe 84,384{,}3 kbit/s (caso in cui la risposta è no).

Errori tipici

  • Chiamare sistematica una HH senza l'identità in fondo, in ordine.
  • Scrivere G=[A\I]G=\begin{bmatrix}A\I\end{bmatrix} invece di [I\A]\begin{bmatrix}I\A\end{bmatrix}.
  • Usare il periodo del simbolo QAM al posto di quello del bit.

Teoria collegata