Salta al contenuto
Note per Studenti Esercizio - porta parallela a 8 pin, Hamming (7,4), coset e canale con pin guasto (esame del 15 febbraio 2023, es. 157)

Esercizio - porta parallela a 8 pin, Hamming (7,4), coset e canale con pin guasto (esame del 15 febbraio 2023, es. 157)

Esame
In questa pagina 5

Testo (tema d'esame del 15 febbraio 2023, corso di Fondamenti di Telecomunicazioni, Ing. Informatica UniPD). La connessione tra due dispositivi avviene attraverso una porta parallela che trasmette in parallelo 88 bit da un dispositivo ad un altro attraverso 88 distinti punti (pin).

  1. Trovare i valori di nn e kk del codice di Hamming con il massimo numero di parole di codice che permette di trasmettere tutti i bit di una parola di codice in parallelo e dire quanti errori riesce a rivelare sempre questo codice.
  2. Si consideri ora un codice di correzione d'errore lineare con il seguente coset per una sindrome {0010, 1000, 0111, 1101}\{0010,\,1000,\,0111,\,1101\}. Trovare tutti i possibili coset leader e calcolare quante parole di codice possono essere trasmesse simultaneamente attraverso la porta.
  3. Si scriva la matrice di parità di un codice di correzione d'errore binario lineare, con parole di codice da 88 bit, che garantisca sempre di rilevare quando al più un pin non funziona correttamente (al ricevitore su quel pin si osserva casualmente 00 o 11). Si utilizzi un numero di bit di parità che permetta la trasmissione del massimo numero di bit di informazione.
  4. Nei connettori di un lotto di produzione difettato il primo pin con probabilità 0,20{,}2 non trasmette alcun segnale (quindi al ricevitore non sappiamo se è stato trasmesso 00 o 11 su quel pin). Calcolare la capacità del canale tra trasmettitore e ricevitore, assumendo assenza di errore su tutti gli altri pin e una velocità di trasmissione di 10310^3 bit/s per pin.

Teoria usata: Codici di Hamming e bound di HammingIl bound di Hamming (sphere packing) lega tasso e capacità di correzione: $2^k\sum_{r=0}^t\binom nr\le2^n$, cioè $\frac kn\le1-\frac1n\log_2\sum_{r=0}^t\binom nr$, perché le $2^k$ sfere di raggio $t$ attorno alle parole sono disgiunte. Un codice di Hamming ha per colonne di $H$ tutte le sequenze non nulle di $n-k$ bit, ciascuna una volta, quindi $n=2^{n-k}-1$ (parametri $(2^m-1,,2^m-1-m)$: $(7,4)$, $(15,11)$, $(63,57)$, $(255,247)$). Non ha colonne nulle né ripetute e tre colonne sommano a zero: $d_{min}=3$, corregge $1$ errore e ne rivela $2$. Rispetta il bound di Hamming con l'uguaglianza ($t=1$): è un codice perfetto, per cui la probabilità d'errore di parola sul BSC è esattamente $P(\text{almeno 2 errori})$.Codici di Hamming e bound di Hamming →, 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 →, 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. Il codice di Hamming per otto pin

Una parola di codice deve entrare intera nella porta: la lunghezza è n≤8n\le8. I codici di Hamming hanno n=2m−1n=2^m-1 con m=n−km=n-k bit di parità (Codici di Hamming e bound di HammingIl bound di Hamming (sphere packing) lega tasso e capacità di correzione: $2^k\sum_{r=0}^t\binom nr\le2^n$, cioè $\frac kn\le1-\frac1n\log_2\sum_{r=0}^t\binom nr$, perché le $2^k$ sfere di raggio $t$ attorno alle parole sono disgiunte. Un codice di Hamming ha per colonne di $H$ tutte le sequenze non nulle di $n-k$ bit, ciascuna una volta, quindi $n=2^{n-k}-1$ (parametri $(2^m-1,,2^m-1-m)$: $(7,4)$, $(15,11)$, $(63,57)$, $(255,247)$). Non ha colonne nulle né ripetute e tre colonne sommano a zero: $d_{min}=3$, corregge $1$ errore e ne rivela $2$. Rispetta il bound di Hamming con l'uguaglianza ($t=1$): è un codice perfetto, per cui la probabilità d'errore di parola sul BSC è esattamente $P(\text{almeno 2 errori})$.Codici di Hamming e bound di Hamming →): n=3n=3 (m=2m=2), n=7n=7 (m=3m=3), n=15n=15 (m=4m=4), ... Con n≤8n\le8 restano n=3n=3 e n=7n=7. Il numero di parole è 2k2^k, quindi si prende il kk più grande, quello di n=7n=7: n=7,k=n−m=7−3=4,24=16 parole.n=7,\qquad k=n-m=7-3=4,\qquad 2^4=16\ \text{parole}. (Con n=3n=3, k=1k=1, si avrebbero solo 22 parole.) Ogni codice di Hamming ha dmin=3d_{min}=3, quindi rivela sempre dmin−1=2d_{min}-1=2 errori (e ne corregge 11). Il bound di Hamming con t=1t=1 vale con l'uguaglianza: 24⋅(1+7)=272^4\cdot(1+7)=2^7.

2. Un coset e il numero di parole sulla porta

Il coset ha 44 vettori di lunghezza 44. I vettori di un coset sono ε0+c\boldsymbol\varepsilon_0+\mathbf c al variare di c∈C\mathbf c\in\mathcal C (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 i vettori di un coset sono tanti quanti le parole: 2k=42^k=4, cioè k=2k=2, con n=4n=4 (lunghezza dei vettori). Il codice è un (4,2)(4,2) e le sue parole sono le differenze dei vettori del coset (per esempio 0010+1000=10100010+1000=1010, 0010+0111=01010010+0111=0101, 0010+1101=11110010+1101=1111): C={0000, 1010, 0101, 1111}\mathcal C=\{0000,\ 1010,\ 0101,\ 1111\}.

Coset leader. Sono i vettori di peso minimo del coset. I pesi sono 0010→10010\to1, 1000→11000\to1, 0111→30111\to3, 1101→31101\to3: i leader sono 00100010 e 10001000 (due leader, perché la sindrome è ripetuta tra due colonne di HH).

Parole in parallelo. Ogni parola ha n=4n=4 bit; la porta ha 88 pin, quindi si possono trasmettere 84=2\frac84=2 parole di codice contemporaneamente (una su 44 pin, una sugli altri 44).

3. Rilevare il guasto di un pin

Se un pin non funziona, al ricevitore su quel pin si osserva 00 o 11 a caso: per quel bit la sequenza ricevuta ha un errore con probabilità 12\frac12 oppure no. In ogni caso al più un bit è sbagliato. Per rivelare sempre al più un errore serve dmin≥2d_{min}\ge2 (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 →).

Con n=8n=8 si vuole il massimo kk. Il bound di Singleton (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 →) dà dmin≤n−k+1d_{min}\le n-k+1, quindi dmin≥2d_{min}\ge2 richiede n−k≥1n-k\ge1: basta un solo bit di parità, k=7k=7. Il bit di parità è la somma di tutti i bit di informazione: c8=c1+⋯+c7c_8=c_1+\dots+c_7, cioè la somma di tutti i bit della parola vale zero. La matrice di controllo ha una riga: H=[11111111].H=\begin{bmatrix}1&1&1&1&1&1&1&1\end{bmatrix}. Le colonne sono tutte uguali a [1][1] (non nulle): dmin=2d_{min}=2 (due 11 in qualunque posizione sommano a zero), rivela 11 errore, ne corregge 00.

4. La capacità con il pin difettato

Il primo pin si comporta come un canale a cancellazione: con probabilità 0,20{,}2 l'uscita è una cancellazione (non si sa se era 00 o 11) e con probabilità 0,80{,}8 è esatta. Un canale binario a cancellazione con probabilità di cancellazione ϵ\epsilon ha capacità 1−ϵ1-\epsilon bit per uso (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 →; per Ing. Elettronica Capacità di canale - canale binario simmetrico, a cancellazione e AWGNLa capacità $C=\max_{p_x}I(x;y)$ è il massimo di informazione mutua tra ingresso e uscita del canale; per il teorema di Shannon si può comunicare con probabilità d'errore arbitrariamente piccola se e solo se il rate è minore di $C$. Per il canale binario simmetrico $C=1-H_2(p)$ bit per uso (ingresso uniforme), per il canale a cancellazione $C=1-\varepsilon$, per l'AWGN $C=\frac12\log_2(1+\text{SNR})$ per uso reale, cioè $C=B\log_2(1+\text{SNR})$ bit/s su una banda $B$. Il limite $R_b<C$ dà il minimo $\frac{E_b}{N_0}\ge\frac{2^\nu-1}\nu$ ($-1{,}59$ dB per $\nu\to0$).Capacità di canale - canale binario simmetrico, a cancellazione e AWGN →): C1=1−0,2=0,8 bit per uso.C_1=1-0{,}2=0{,}8\ \text{bit per uso}. Gli altri 77 pin sono senza errore: ciascuno ha capacità 11 bit per uso. I pin sono indipendenti e l'informazione mutua tra ingresso e uscita dell'intera porta è la somma di quelle dei singoli pin (l'uscita di ogni pin dipende solo dal suo ingresso), quindi si massimizza ciascuna e si sommano: C=7⋅1+0,8=7,8 bit per uso della porta.C=7\cdot1+0{,}8=7{,}8\ \text{bit per uso della porta}. Con 10310^3 usi al secondo per pin: C=103⋅7,8=7,8 kbit/s.C=10^3\cdot7{,}8=7{,}8\ \text{kbit/s}. (Per confronto, senza guasto la capacità è 88 kbit/s.)

Errori comuni

  • Trasmettere una parola di Hamming su più di un ciclo della porta: la lunghezza nn deve essere ≤8\le8; n=15n=15 non entra.
  • Confondere i vettori del coset (lunghi nn) con i bit di informazione: la lunghezza di un vettore del coset è nn, e il numero di vettori è 2k2^k.
  • Per un pin "casuale" chiedere dmin≥3d_{min}\ge3: un solo bit sbagliato si rivela con dmin=2d_{min}=2; serve dmin=3d_{min}=3 solo per correggerlo.
  • Calcolare la capacità del pin difettato come 1−h(0,2)1-h(0{,}2) (canale binario simmetrico): qui l'errore è una cancellazione e vale 1−0,21-0{,}2.

Versione ripasso

Testo. Porta parallela a 88 pin. (1) Hamming con più parole entro 88 bit e errori rivelati; (2) coset {0010,1000,0111,1101}\{0010,1000,0111,1101\}: leader e parole in parallelo; (3) matrice di parità per rivelare un pin guasto, massimo kk; (4) capacità con il primo pin cancellato con probabilità 0,20{,}2, 10310^3 bit/s per pin.

Punto 1 (Codici di Hamming e bound di HammingIl bound di Hamming (sphere packing) lega tasso e capacità di correzione: $2^k\sum_{r=0}^t\binom nr\le2^n$, cioè $\frac kn\le1-\frac1n\log_2\sum_{r=0}^t\binom nr$, perché le $2^k$ sfere di raggio $t$ attorno alle parole sono disgiunte. Un codice di Hamming ha per colonne di $H$ tutte le sequenze non nulle di $n-k$ bit, ciascuna una volta, quindi $n=2^{n-k}-1$ (parametri $(2^m-1,,2^m-1-m)$: $(7,4)$, $(15,11)$, $(63,57)$, $(255,247)$). Non ha colonne nulle né ripetute e tre colonne sommano a zero: $d_{min}=3$, corregge $1$ errore e ne rivela $2$. Rispetta il bound di Hamming con l'uguaglianza ($t=1$): è un codice perfetto, per cui la probabilità d'errore di parola sul BSC è esattamente $P(\text{almeno 2 errori})$.Codici di Hamming e bound di Hamming →)

  • n=2m−1≤8n=2^m-1\le8: n=7n=7, k=4k=4 (1616 parole). dmin=3d_{min}=3: rivela 22 errori.

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

  • Coset di 4=2k4=2^k vettori lunghi 44: k=2k=2, n=4n=4. Leader di peso minimo: 00100010 e 10001000. Parole in parallelo: 84=2\frac84=2.

Punto 3

  • Un pin guasto dà al più un errore: basta dmin=2d_{min}=2. Singleton: n−k≥1n-k\ge1, k=7k=7. H=[1 1 1 1 1 1 1 1]H=[1\,1\,1\,1\,1\,1\,1\,1].

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 →)

  • Pin difettato: canale a cancellazione, C1=1−0,2=0,8C_1=1-0{,}2=0{,}8 bit per uso; 77 pin ideali =7=7 bit; C=7,8C=7{,}8 bit per uso =7,8=7{,}8 kbit/s.

Dettagli di calcolo

  • Punto 1: Hamming con n≤8n\le8: n=3n=3 (k=1k=1, 22 parole) o n=7n=7 (k=4k=4, 1616 parole). Bound di Hamming a uguaglianza: 24⋅8=272^4\cdot8=2^7.
  • Punto 2: le differenze dei vettori del coset sono le parole: C={0000,1010,0101,1111}\mathcal C=\{0000,1010,0101,1111\}, dmin=2d_{min}=2. Leader 00100010 e 10001000 di peso 11; 01110111 e 11011101 di peso 33.
  • Punto 3: Singleton dmin≤n−k+1d_{min}\le n-k+1 con dmin=2d_{min}=2 dà k≤7k\le7; c8=c1+⋯+c7c_8=c_1+\dots+c_7 e H=[1 1 1 1 1 1 1 1]H=[1\,1\,1\,1\,1\,1\,1\,1].
  • Punto 4: il pin difettato è una cancellazione con ϵ=0,2\epsilon=0{,}2 (C1=0,8C_1=0{,}8); gli altri sette valgono 11; la capacità della porta è la somma e va moltiplicata per 10310^3 usi al secondo.

Errori tipici

  • Usare n=15n=15 con 88 pin.
  • Confondere la lunghezza dei vettori del coset (nn) con kk.
  • Chiedere dmin≥3d_{min}\ge3 per rivelare un errore.
  • Usare 1−h(0,2)1-h(0{,}2) per una cancellazione.

Teoria collegata