Salta al contenuto
Note per Studenti Esercizio - codice (5,3) non sistematico, matrice di parità e sindrome su BSC (secondo compitino del 9 gennaio 2026, es. 195)

Esercizio - codice (5,3) non sistematico, matrice di parità e sindrome su BSC (secondo compitino del 9 gennaio 2026, es. 195)

Esame
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 10 μ10\ \mus e probabilità d'errore sul bit pari a Pbit=10−3P_{bit}=10^{-3}. Prima della trasmissione sul canale si impiega un codice binario in cui le parole di codice c=[c1,c2,c3,c4,c5]T\mathbf c=[c_1,c_2,c_3,c_4,c_5]^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=b1,c2=b1+b2,c3=b3,c4=∥[b1,b2,b3]∥H mod 2,c5=b2+b3,c_1=b_1,\quad c_2=b_1+b_2,\quad c_3=b_3,\quad c_4=\|[b_1,b_2,b_3]\|_H\bmod2,\quad c_5=b_2+b_3,

dove ∥⋅∥H\|\cdot\|_H indica il peso di Hamming e le somme si intendono modulo due.

  1. (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.
  2. (3p) Trovare la distanza minima, il peso minimo, il numero di errori rilevati e corretti dal codice.
  3. (3p) Data la sequenza di ingresso b=[0,0,0]T\mathbf b=[0,0,0]^T è più probabile ricevere all'uscita del canale la sequenza ξ1=[1,0,1,0,0]T\boldsymbol\xi_1=[1,0,1,0,0]^T o la sequenza ξ2=[0,0,1,1,0]T\boldsymbol\xi_2=[0,0,1,1,0]^T e qual è la probabilità delle due?
  4. (3p) Trovare la matrice di controllo di parità nella forma sistematica e trovare la sequenza di bit decodificati b^\hat{\mathbf b} quando viene ricevuta la sequenza ξ=[1,1,1,1,1]T\boldsymbol\xi=[1,1,1,1,1]^T.
  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}\mathcal A=\{0,1,2\}.

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 k=3k=3 bit e escono n=5n=5 bit: R=kn=35R=\frac kn=\frac35.

Linearità. Un codice è lineare se ogni bit di parola è una somma modulo 2 di bit di informazione, senza costanti e senza prodotti. c1,c2,c3,c5c_1,c_2,c_3,c_5 lo sono già. Resta c4=∥b∥H mod 2c_4=\|\mathbf b\|_H\bmod2: il peso di Hamming ∥b∥H\|\mathbf b\|_H è il numero di 11 in b\mathbf b, cioè b1+b2+b3b_1+b_2+b_3 calcolato in Z\mathbb Z; prenderlo modulo 22 dà la parità di quel numero, che è proprio la somma modulo 22 dei tre bit. Quindi c4=b1+b2+b3(mod2)c_4=b_1+b_2+b_3\pmod 2 e il codice è lineare. La matrice generatrice G′G' (5×35\times3) ha per righe i coefficienti delle equazioni: G′=[100110001111011](riga 1: c1=b1; riga 2: c2=b1+b2; … ).G'=\begin{bmatrix}1&0&0\\1&1&0\\0&0&1\\1&1&1\\0&1&1\end{bmatrix}\qquad(\text{riga }1:\ c_1=b_1;\ \text{riga }2:\ c_2=b_1+b_2;\ \dots).

Sistematico? No: in un codice sistematico i primi tre bit della parola sono b1,b2,b3b_1,b_2,b_3, qui c2=b1+b2≠b2c_2=b_1+b_2\ne b_2.

Forma sistematica con sole operazioni sulle colonne. Le operazioni sulle colonne di G′G' non cambiano il codice, solo la corrispondenza b→c\mathbf b\to\mathbf c (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 [1,0,0][1,0,0] e [1,1,0][1,1,0]: per far diventare la seconda [0,1,0][0,1,0] occorre togliere un "11" in prima colonna. Si sostituisce la prima colonna con la somma della prima e della seconda: col1←col1+col2=[11010]+[01011]=[10001].\text{col}_1\leftarrow\text{col}_1+\text{col}_2=\begin{bmatrix}1\\1\\0\\1\\0\end{bmatrix}+\begin{bmatrix}0\\1\\0\\1\\1\end{bmatrix}=\begin{bmatrix}1\\0\\0\\0\\1\end{bmatrix}. Si ottiene G=[100010001011111]=[I3A],A=[011111].G=\begin{bmatrix}1&0&0\\0&1&0\\0&0&1\\0&1&1\\1&1&1\end{bmatrix}=\begin{bmatrix}I_3\\A\end{bmatrix},\qquad A=\begin{bmatrix}0&1&1\\1&1&1\end{bmatrix}.

Controllo (Python): le 88 parole di G′G' e di GG sono le stesse.

b\mathbf b 000 001 010 011 100 101 110 111
parola con G′G' 00000 00111 01011 01100 11010 11101 10001 10110
parola con GG 00000 00111 01011 01100 10001 10110 11010 11101

Cambia solo quale b\mathbf b produce quale parola (per b=100\mathbf b=100: 1101011010 con G′G', 1000110001 con GG), l'insieme C\mathcal C è lo stesso.

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

I pesi delle 77 parole non nulle sono 3,3,2,3,4,2,33,3,2,3,4,2,3 (dalla tabella: 00111→300111\to3, 01011→301011\to3, 01100→201100\to2, 11010→311010\to3, 11101→411101\to4, 10001→210001\to2, 10110→310110\to3). Il peso minimo è wH(C)=2w_H(\mathcal C)=2 e, essendo il codice lineare, la distanza minima è dmin=2d_{min}=2 (due parole sono 0110001100 e 1000110001).

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

3. Due sequenze ricevute

Si trasmette b=[0,0,0]T\mathbf b=[0,0,0]^T, quindi la parola è c=0=[0,0,0,0,0]T\mathbf c=\mathbf 0=[0,0,0,0,0]^T. 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 →): P[ξ∣c]=Pbit dH(1−Pbit) 5−dH.P[\boldsymbol\xi\mid\mathbf c]=P_{bit}^{\,d_H}(1-P_{bit})^{\,5-d_H}. ξ1=10100\boldsymbol\xi_1=10100 ha due 11 (posizioni 11 e 33) e ξ2=00110\boldsymbol\xi_2=00110 ha due 11 (posizioni 33 e 44): in entrambi i casi dH(ξ,0)=2d_H(\boldsymbol\xi,\mathbf 0)=2. Quindi le due sequenze sono equiprobabili, con P[ξ1]=P[ξ2]=Pbit2(1−Pbit)3=10−6⋅0,9993=9,97⋅10−7.P[\boldsymbol\xi_1]=P[\boldsymbol\xi_2]=P_{bit}^2(1-P_{bit})^3=10^{-6}\cdot0{,}999^3=9{,}97\cdot10^{-7}.

4. Matrice di controllo di parità e decodifica

Dalla GG sistematica si legge H=[A∣I2]H=[A\mid I_2] (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=[0111011101].H=\begin{bmatrix}0&1&1&1&0\\1&1&1&0&1\end{bmatrix}. Verifica HG=0HG=0, riga per colonna (le colonne di GG sono [1,0,0,0,1]T[1,0,0,0,1]^T, [0,1,0,1,1]T[0,1,0,1,1]^T, [0,0,1,1,1]T[0,0,1,1,1]^T):

  • riga [0,1,1,1,0][0,1,1,1,0]: 0+0+0+0+0=00+0+0+0+0=0,  0+1+0+1+0=2≡0\ 0+1+0+1+0=2\equiv0,  0+0+1+1+0=2≡0\ 0+0+1+1+0=2\equiv0;
  • riga [1,1,1,0,1][1,1,1,0,1]: 1+0+0+0+1=2≡01+0+0+0+1=2\equiv0,  0+1+0+0+1=2≡0\ 0+1+0+0+1=2\equiv0,  0+0+1+0+1=2≡0\ 0+0+1+0+1=2\equiv0.

Il prodotto è la matrice nulla 2×32\times3 (controllato anche con Python).

Sindrome. Per ξ=[1,1,1,1,1]T\boldsymbol\xi=[1,1,1,1,1]^T: σ=Hξ=[0+1+1+1+01+1+1+0+1]=[34]=[10](mod2).\boldsymbol\sigma=H\boldsymbol\xi=\begin{bmatrix}0+1+1+1+0\\1+1+1+0+1\end{bmatrix}=\begin{bmatrix}3\\4\end{bmatrix}=\begin{bmatrix}1\\0\end{bmatrix}\pmod2. È diversa da 0\mathbf 0: ξ\boldsymbol\xi non è una parola. La sindrome [1,0]T[1,0]^T è la colonna 44 di HH e nessun'altra colonna le è uguale (le colonne sono [0,1],[1,1],[1,1],[1,0],[0,1][0,1],[1,1],[1,1],[1,0],[0,1]): il coset leader è unico, εmin=[0,0,0,1,0]T\boldsymbol\varepsilon_{min}=[0,0,0,1,0]^T.

Parola e bit decodificati. c^=ξ+εmin=[1,1,1,1,1]T+[0,0,0,1,0]T=[1,1,1,0,1]T.\hat{\mathbf c}=\boldsymbol\xi+\boldsymbol\varepsilon_{min}=[1,1,1,1,1]^T+[0,0,0,1,0]^T=[1,1,1,0,1]^T. È una parola di codice (b=111\mathbf b=111 con GG dà proprio 1110111101). Poiché GG è sistematica, b^\hat{\mathbf b} sono i primi k=3k=3 bit: b^=[1,1,1]T.\hat{\mathbf b}=[1,1,1]^T.

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 20 μ20\ \mus da un alfabeto di 33 simboli. Il massimo dell'informazione per simbolo è log⁡23=1,585\log_2 3=1{,}585 bit (a simboli equiprobabili): bit-rate al più Rb=log⁡2320⋅10−6=79,25 kbit/s.R_b=\frac{\log_23}{20\cdot10^{-6}}=79{,}25\ \text{kbit/s}. (Se i simboli non fossero equiprobabili l'entropia sarebbe minore, e la condizione ancora più facile.)

Canale. BSC con Pbit=10−3P_{bit}=10^{-3} e un bit ogni T=10 μT=10\ \mus: h(10−3)=−10−3log⁡210−3−0,999log⁡20,999=0,01141,C=1T[1−h(Pbit)]=1−0,0114110−5=98,86 kbit/s.h(10^{-3})=-10^{-3}\log_210^{-3}-0{,}999\log_20{,}999=0{,}01141,\qquad C=\frac1T[1-h(P_{bit})]=\frac{1-0{,}01141}{10^{-5}}=98{,}86\ \text{kbit/s}.

Rb=79,25<C=98,86R_b=79{,}25<C=98{,}86 kbit/s: sì, è possibile (con un codice molto più lungo di questo (5,3)(5,3); il (5,3)(5,3) non lo fa, perché non corregge nessun errore).

Errori comuni

  • Trattare ∥b∥H\|\mathbf b\|_H come termine non lineare: modulo 22 vale b1+b2+b3b_1+b_2+b_3.
  • Per ottenere la forma sistematica scambiare righe di G′G': qui servirebbe una riga [0,1,0][0,1,0] che non c'è; si usa la somma di colonne.
  • Dedurre dalla distanza minima 22 che il codice "corregge un errore": ⌊2−12⌋=0\lfloor\frac{2-1}2\rfloor=0.
  • Confrontare la capacità con il rate del codice invece che con il bit-rate dell'informazione della sorgente.

Versione ripasso

Testo. BSC con T=10 μT=10\ \mus e Pbit=10−3P_{bit}=10^{-3}. Codice: c1=b1c_1=b_1, c2=b1+b2c_2=b_1+b_2, c3=b3c_3=b_3, c4=∥b∥H mod 2c_4=\|\mathbf b\|_H\bmod2, c5=b2+b3c_5=b_2+b_3. Richiesti: rate, linearità, forma sistematica con operazioni sulle colonne; dmind_{min}, errori rivelati e corretti; probabilità di ξ1=10100\boldsymbol\xi_1=10100 e ξ2=00110\boldsymbol\xi_2=00110 inviando 0\mathbf 0; HH e decodifica di 1111111111; esistenza di una codifica per una sorgente ternaria 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 →)

  • R=35R=\frac35. ∥b∥H mod 2=b1+b2+b3\|\mathbf b\|_H\bmod2=b_1+b_2+b_3: lineare. Non sistematico (c2=b1+b2c_2=b_1+b_2).
  • G′=[100110001111011]G'=\begin{bmatrix}1&0&0\\1&1&0\\0&0&1\\1&1&1\\0&1&1\end{bmatrix}; colonna 1←1\leftarrow colonna 1+1+ colonna 22 dà G=[100010001011111]G=\begin{bmatrix}1&0&0\\0&1&0\\0&0&1\\0&1&1\\1&1&1\end{bmatrix}, stesse 88 parole.

Punto 2: pesi 3,3,2,3,4,2,33,3,2,3,4,2,3; dmin=wmin=2d_{min}=w_{min}=2; rivela 11, corregge ⌊12⌋=0\lfloor\frac12\rfloor=0.

Punto 3: entrambe a distanza 22 da 0\mathbf 0: equiprobabili, Pbit2(1−Pbit)3=9,97⋅10−7P_{bit}^2(1-P_{bit})^3=9{,}97\cdot10^{-7}.

Punto 4 (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∣I2]=[0111011101]H=[A\mid I_2]=\begin{bmatrix}0&1&1&1&0\\1&1&1&0&1\end{bmatrix}, HG=0HG=0.
  • σ=H[1,1,1,1,1]T=[1,0]T\boldsymbol\sigma=H[1,1,1,1,1]^T=[1,0]^T = colonna 44 (unica): εmin=00010\boldsymbol\varepsilon_{min}=00010, c^=11101\hat{\mathbf c}=11101, b^=[1,1,1]T\hat{\mathbf b}=[1,1,1]^T.

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⁡2320 μs=79,25R_b=\frac{\log_23}{20\ \mu s}=79{,}25 kbit/s; C=1−h(10−3)10 μs=98,86C=\frac{1-h(10^{-3})}{10\ \mu s}=98{,}86 kbit/s. Rb<CR_b<C: sì.

Dettagli di calcolo

  • Parole con GG (b→c\mathbf b\to\mathbf c): 000→00000000\to00000, 001→00111001\to00111, 010→01011010\to01011, 011→01100011\to01100, 100→10001100\to10001, 101→10110101\to10110, 110→11010110\to11010, 111→11101111\to11101. Con G′G' l'insieme è lo stesso, cambia solo quale b\mathbf b dà quale parola (per b=100\mathbf b=100: 1101011010).
  • Punto 4: σ=[0+1+1+1+0, 1+1+1+0+1]T=[1,0]T\boldsymbol\sigma=[0+1+1+1+0,\ 1+1+1+0+1]^T=[1,0]^T; colonne di HH: [0,1],[1,1],[1,1],[1,0],[0,1][0,1],[1,1],[1,1],[1,0],[0,1], solo la quarta vale [1,0][1,0], quindi il leader è unico. Le sindromi [0,1][0,1] e [1,1][1,1] hanno invece due leader ciascuna.
  • Punto 5: log⁡23=1,585\log_23=1{,}585 bit per simbolo, h(10−3)=0,01141h(10^{-3})=0{,}01141.

Errori tipici

  • Considerare non lineare ∥b∥H mod 2\|\mathbf b\|_H\bmod2.
  • Cercare la forma sistematica con scambi di righe invece che con somma di colonne.
  • Dire che dmin=2d_{min}=2 corregge 11 errore.

Teoria collegata