Esercizio - porta parallela a 8 pin, Hamming (7,4), coset e canale con pin guasto (esame del 15 febbraio 2023, es. 157)
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 bit da un dispositivo ad un altro attraverso distinti punti (pin).
- Trovare i valori di e 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.
- Si consideri ora un codice di correzione d'errore lineare con il seguente coset per una sindrome . Trovare tutti i possibili coset leader e calcolare quante parole di codice possono essere trasmesse simultaneamente attraverso la porta.
- Si scriva la matrice di parità di un codice di correzione d'errore binario lineare, con parole di codice da bit, che garantisca sempre di rilevare quando al più un pin non funziona correttamente (al ricevitore su quel pin si osserva casualmente o ). Si utilizzi un numero di bit di parità che permetta la trasmissione del massimo numero di bit di informazione.
- Nei connettori di un lotto di produzione difettato il primo pin con probabilità non trasmette alcun segnale (quindi al ricevitore non sappiamo se è stato trasmesso o 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 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 è . I codici di Hamming hanno con 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 →): (), (), (), ... Con restano e . Il numero di parole è , quindi si prende il più grande, quello di : (Con , , si avrebbero solo parole.) Ogni codice di Hamming ha , quindi rivela sempre errori (e ne corregge ). Il bound di Hamming con vale con l'uguaglianza: .
2. Un coset e il numero di parole sulla porta
Il coset ha vettori di lunghezza . I vettori di un coset sono al variare di (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: , cioè , con (lunghezza dei vettori). Il codice è un e le sue parole sono le differenze dei vettori del coset (per esempio , , ): .
Coset leader. Sono i vettori di peso minimo del coset. I pesi sono , , , : i leader sono e (due leader, perché la sindrome è ripetuta tra due colonne di ).
Parole in parallelo. Ogni parola ha bit; la porta ha pin, quindi si possono trasmettere parole di codice contemporaneamente (una su pin, una sugli altri ).
3. Rilevare il guasto di un pin
Se un pin non funziona, al ricevitore su quel pin si osserva o a caso: per quel bit la sequenza ricevuta ha un errore con probabilità oppure no. In ogni caso al più un bit è sbagliato. Per rivelare sempre al più un errore serve (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 si vuole il massimo . 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à , quindi richiede : basta un solo bit di parità, . Il bit di parità è la somma di tutti i bit di informazione: , cioè la somma di tutti i bit della parola vale zero. La matrice di controllo ha una riga: Le colonne sono tutte uguali a (non nulle): (due in qualunque posizione sommano a zero), rivela errore, ne corregge .
4. La capacità con il pin difettato
Il primo pin si comporta come un canale a cancellazione: con probabilità l'uscita è una cancellazione (non si sa se era o ) e con probabilità è esatta. Un canale binario a cancellazione con probabilità di cancellazione ha capacità 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 →): Gli altri pin sono senza errore: ciascuno ha capacità 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: Con usi al secondo per pin: (Per confronto, senza guasto la capacità è kbit/s.)
Errori comuni
- Trasmettere una parola di Hamming su più di un ciclo della porta: la lunghezza deve essere ; non entra.
- Confondere i vettori del coset (lunghi ) con i bit di informazione: la lunghezza di un vettore del coset è , e il numero di vettori è .
- Per un pin "casuale" chiedere : un solo bit sbagliato si rivela con ; serve solo per correggerlo.
- Calcolare la capacità del pin difettato come (canale binario simmetrico): qui l'errore è una cancellazione e vale .
Versione ripasso
Testo. Porta parallela a pin. (1) Hamming con più parole entro bit e errori rivelati; (2) coset : leader e parole in parallelo; (3) matrice di parità per rivelare un pin guasto, massimo ; (4) capacità con il primo pin cancellato con probabilità , bit/s per pin.
- : , ( parole). : rivela errori.
- Coset di vettori lunghi : , . Leader di peso minimo: e . Parole in parallelo: .
Punto 3
- Un pin guasto dà al più un errore: basta . Singleton: , . .
- Pin difettato: canale a cancellazione, bit per uso; pin ideali bit; bit per uso kbit/s.
Dettagli di calcolo
- Punto 1: Hamming con : (, parole) o (, parole). Bound di Hamming a uguaglianza: .
- Punto 2: le differenze dei vettori del coset sono le parole: , . Leader e di peso ; e di peso .
- Punto 3: Singleton con dà ; e .
- Punto 4: il pin difettato è una cancellazione con (); gli altri sette valgono ; la capacità della porta è la somma e va moltiplicata per usi al secondo.
Errori tipici
- Usare con pin.
- Confondere la lunghezza dei vettori del coset () con .
- Chiedere per rivelare un errore.
- Usare per una cancellazione.
Teoria collegata
- Codici di Hamming e bound di Hamming
- Matrice di controllo di parità, sindrome e coset
- Codici a blocco lineari - matrice generatrice, forma sistematica e bound di Singleton
- Tasso d'informazione, capacità di canale e teorema di Shannon
- Controllo d'errore - ARQ, FEC e codici a blocco sul canale binario simmetrico
- Capacità di canale - canale binario simmetrico, a cancellazione e AWGN