Controllo d'errore - ARQ, FEC e codici a blocco sul canale binario simmetrico
In questa pagina 13
Un collegamento digitale sbaglia qualche bit: il demodulatore decide un simbolo (Regioni di decisione - criteri MAP, ML e minima distanzaLe regioni di decisione $\mathcal R_1,\dots,\mathcal R_M$ sono una partizione dello spazio $\mathbb R^I$: se il vettore ricevuto cade in $\mathcal R_m$ si decide $\hat a_0=m$. La probabilità di decisione corretta è $P[C]=\sum_m\int_{\mathcal R_m}D(\boldsymbol\rho;m),d\boldsymbol\rho$ con $D=P_{a_0}(m),p_{\mathbf r|a_0}(\boldsymbol\rho|m)$, ed è massima assegnando ogni $\boldsymbol\rho$ al $m$ che massimizza $D$: criterio MAP. Con simboli equiprobabili è il ML; con in più rumore AWGN diventa la minima distanza (MD), $\hat a_0=\arg\min_m\lVert\boldsymbol\rho-\mathbf s_m\rVert$, con confini che sono gli assi dei segmenti tra i punti. Con probabilità diverse i confini si spostano verso i punti meno probabili.Regioni di decisione - criteri MAP, ML e minima distanza →) e con probabilità piccola ma non nulla la decisione è sbagliata (Probabilità d'errore delle modulazioni binarie - funzione Q e coefficiente di correlazioneIn una modulazione binaria con rumore AWGN e decisione a minima distanza l'errore avviene solo se la componente di rumore lungo la congiungente dei due punti supera metà distanza: $P[E]=Q\left(\frac{d}{2\sigma_I}\right)$ con $d=\lVert\underline s_1-\underline s_2\rVert$. A parità di energia $E_s$ si ha $d^2=2E_s(1-\rho)$, quindi $P[E]=Q\left(\sqrt{\frac{E_s}{\sigma_I^2}}\sqrt{\frac{1-\rho}{2}}\right)$, con $\rho=\frac{\langle s_1,s_2\rangle}{\sqrt{E_{s_1}E_{s_2}}}$ coefficiente di correlazione. Antipodali ($\rho=-1$, BPSK): $Q\left(\sqrt{E_s/\sigma_I^2}\right)$; ortogonali ($\rho=0$): $Q\left(\sqrt{E_s/(2\sigma_I^2)}\right)$, 3 dB peggio; $\rho=1$: $P[E]=\frac12$. Per qualunque modulazione binaria basta un solo ramo del ricevitore, lungo $\phi_1'\propto s_1-s_2$.Probabilità d'errore delle modulazioni binarie - funzione Q e coefficiente di correlazione →). Se è troppo alta per l'applicazione, aumentare l'energia o ridurre il rumore costa potenza, banda o distanza. La codifica di canale è l'altra strada: si aggiungono bit di ridondanza, scelti in modo che gli errori si possano riconoscere o correggere.
Versione per Ing. Elettronica: Codifica di canale - codici a blocco, distanza minima, rivelazione e correzioneLa codifica di canale aggiunge ridondanza ai bit per rivelare o correggere gli errori del canale. Un codice a blocco $(n,k)$ trasforma $k$ bit in $n$ bit (rendimento $R_c=\frac kn$). Con la distanza di Hamming minima $d_{min}$ il codice rivela fino a $d_{min}-1$ errori e ne corregge $t=\left\lfloor\frac{d_{min}-1}2\right\rfloor$ (decodifica a minima distanza). Vale il limite di Singleton $d_{min}\le n-k+1$. Su un canale binario simmetrico con errore $p$, la probabilità di parola sbagliata è $P_w\le\sum_{i>t}\binom nip^i(1-p)^{n-i}$ e, con $p$ piccola, $P_{bit}\approx\frac{d_{min}}n\binom n{t+1}p^{t+1}$.Codifica di canale - codici a blocco, distanza minima, rivelazione e correzione →. Versione per Ing. delle Telecomunicazioni: Codici a blocco - distanza minima, rivelazione e correzioneLa codifica di canale aggiunge ridondanza in modo mirato: $k$ bit di informazione diventano una parola di codice di $n>k$ bit scelta tra $2^k$ parole ammesse. Se la parola ricevuta non è una parola di codice l'errore è rivelato (e si può chiedere la ritrasmissione, ARQ) oppure corretto (FEC). La qualità dipende dalla distanza minima di Hamming $d_{min}$: si rivelano fino a $d_{min}-1$ errori e se ne correggono $t<d_{min}/2$, ma non contemporaneamente. Per un BSC con $P_{bit}<1/2$ la decisione ottima ML coincide con quella a distanza minima. Limite di Hamming: $k/n\le1-\frac1n\log_2\sum_{r=0}^t\binom nr$.Codici a blocco - distanza minima, rivelazione e correzione →.
1. Tre strategie contro gli errori
- Ritrasmissione, ARQ (ARQautomatic repeat request: il ricevitore controlla ogni messaggio e ne chiede la ripetizione se contiene errori). Serve un canale di ritorno su cui il ricevitore dice al trasmettitore "ricevuto bene" o "ricevuto male". La ridondanza serve solo a rivelare la presenza di errori: se ci sono, si rimanda il messaggio. Costa tempo (le ripetizioni) ma pochi bit di ridondanza.
- Correzione diretta, FEC (FECforward error correction: la ridondanza permette al ricevitore di correggere gli errori da solo, senza ritrasmettere). Il ricevitore corregge da solo, nessun canale di ritorno. Costa più ridondanza (più bit per ogni bit di informazione) e non dà garanzie se gli errori sono più di quelli previsti.
- ARQ ibrido, HARQ: si usa una FEC per correggere gli errori più comuni e la ritrasmissione quando la parola ricevuta non è accettabile.
Le sezioni 2-9 trattano la FEC con i codici a blocco; la sezione 10 tratta le prestazioni dell'ARQ.
2. Il codice a blocco: schema e notazione
Definizione. Un codice a blocco associa a ogni sequenza di bit di informazione una parola di codice di bit, in modo biunivoco. L'insieme delle parole è il codice .
La catena di trasmissione è
Conviene contare e distinguere tre vettori che spesso si confondono.
- Le sequenze possibili sono , quindi le parole di codice sono ; le sequenze binarie di bit sono , e ne contiene solo una piccola parte (la frazione ). Per questo la ridondanza serve: una sequenza fuori dal codice è un errore riconoscibile.
- è la parola trasmessa.
- è la sequenza ricevuta all'uscita del demodulatore: ha bit, può essere una qualunque delle sequenze e non è detto che sia una parola di codice.
- è la parola decisa dal decodificatore e i bit a essa associati. In generale ; e sono parole di codice, no.
Esempio (, ). La tabella
00 0001 01 0110 10 1010 11 1101 definisce il codice : parole tra le sequenze. Se si trasmette con un errore sul primo bit si riceve , che non appartiene a : l'errore è riconosciuto. Ma lo stesso si ottiene anche da con un errore sul secondo bit: il decodificatore vede una sequenza a un solo bit di distanza da due parole diverse e non può sapere quale fosse stata inviata. Se invece si riceve la parola più vicina è (un solo bit diverso, le altre ne hanno almeno 2), quindi .
Il canale binario. Il blocco "modulatore, canale analogico, demodulatore" riceve bit e restituisce bit: dal punto di vista della codifica è un canale binario, descritto da una probabilità d'errore sul bit che si calcola con le formule dei capitoli sulle modulazioni, per esempio (Variabili aleatorie continue - uniforme, gaussiana, esponenziale e funzione QUna v.a. continua ha funzione di distribuzione F_x(a) = P(x ≤ a) e densità f_x(a) = dF_x/da ≥ 0 con integrale 1; P(A ≤ x ≤ B) = F_x(B) − F_x(A) = ∫A^B f_x e P(x = A) = 0. Uniforme U([a,b]): densità 1/(b−a), media (a+b)/2, varianza (b−a)²/12. Esponenziale unilatera di media m: (1/m)e^(−a/m), a ≥ 0. Gaussiana N(m, σ²): P(x ≥ A) = Q((A − m)/σ), con Q(A) coda della gaussiana standard. Somme di gaussiane indipendenti sono gaussiane (medie e varianze si sommano); teorema del limite centrale.Variabili aleatorie continue - uniforme, gaussiana, esponenziale e funzione Q →). Il codificatore e il decodificatore lavorano solo sui bit; la modulazione resta un blocco a parte (Modulazione digitale - trasmettitore, bit map e canale AWGNIl trasmettitore digitale ha due blocchi: la bit map raggruppa $\log_2M$ bit in un simbolo $a_m\in{1,\dots,M}$ (periodo $T=T_b\log_2M$) e il modulatore associa a ogni simbolo una forma d'onda $s{a_m}(t)$, così $s_{Tx}(t)=\sum_ms_{a_m}(t-mT)$; l'insieme delle $M$ forme d'onda è la segnalazione. Il canale ideale lascia il segnale com'è, il canale AWGN lo scala di $A$ e somma il rumore bianco gaussiano $w(t)$, il canale multipath somma echi ritardati: i suoi due effetti sono la deformazione delle forme d'onda ($s'_m$) e l'interferenza intersimbolica. Il ricevitore ha un demodulatore digitale che decide $\hat a_m$ e una bit demap.Modulazione digitale - trasmettitore, bit map e canale AWGN →).
3. Criteri di decodifica: MAP e ML
Il decodificatore è un ricevitore come quello della modulazione, con le parole di codice al posto dei simboli. La probabilità di decisione corretta è
(è la stessa formula della modulazione, con "simboli".) Come nella modulazione, si massimizza scegliendo, per ogni sequenza ricevuta , la parola con probabilità a posteriori massima:
Il primo fattore è la probabilità di transizione del canale da a ; il secondo è la probabilità a priori della parola. Se tutte le parole hanno la stessa probabilità a priori il secondo fattore è costante e rimane
I bit di informazione equiprobabili e indipendenti danno parole equiprobabili, perché la corrispondenza è biunivoca: nei problemi si usa quasi sempre ML. Per il confronto con la modulazione: Regioni di decisione - criteri MAP, ML e minima distanzaLe regioni di decisione $\mathcal R_1,\dots,\mathcal R_M$ sono una partizione dello spazio $\mathbb R^I$: se il vettore ricevuto cade in $\mathcal R_m$ si decide $\hat a_0=m$. La probabilità di decisione corretta è $P[C]=\sum_m\int_{\mathcal R_m}D(\boldsymbol\rho;m),d\boldsymbol\rho$ con $D=P_{a_0}(m),p_{\mathbf r|a_0}(\boldsymbol\rho|m)$, ed è massima assegnando ogni $\boldsymbol\rho$ al $m$ che massimizza $D$: criterio MAP. Con simboli equiprobabili è il ML; con in più rumore AWGN diventa la minima distanza (MD), $\hat a_0=\arg\min_m\lVert\boldsymbol\rho-\mathbf s_m\rVert$, con confini che sono gli assi dei segmenti tra i punti. Con probabilità diverse i confini si spostano verso i punti meno probabili.Regioni di decisione - criteri MAP, ML e minima distanza →; versione per Ing. Elettronica: Teoria della decisione - criteri MAP, ML e MDLe regioni di decisione che massimizzano la probabilità di decisione corretta sono $\mathcal R_m={\boldsymbol\rho:\ m=\arg\max_mP_m,p_{\mathbf r|m}(\boldsymbol\rho|m)}$: criterio MAP (ottimo). Il criterio ML ignora le probabilità a priori; se i simboli sono equiprobabili coincide con il MAP. Il criterio MD sceglie il punto più vicino, $\hat m=\arg\min_m\lVert\boldsymbol\rho-\mathbf s_m\rVert$; con canale AWGN coincide con il ML. Quindi con simboli equiprobabili e AWGN la distanza minima è ottima; con probabilità diverse le soglie si spostano verso il punto meno probabile.Teoria della decisione - criteri MAP, ML e MD →.
4. Il canale binario simmetrico senza memoria (BSC)
Definizione. Un canale binario simmetrico senza memoria (BSC, binary symmetric channel) ha ingresso e uscita in e con gli errori indipendenti nel tempo, .
"Simmetrico" vuol dire che si sbaglia con la stessa probabilità sia mandando 0 sia mandando 1; "senza memoria" che l'errore su un bit non dice nulla sugli altri. Se queste due ipotesi mancano il canale non è un BSC: per esempio un canale che con probabilità dà qualunque sia , con probabilità dà e altrimenti ha ma : è binario e senza memoria ma non simmetrico.
Poiché gli errori sono indipendenti, la probabilità di ricevere avendo trasmesso è il prodotto dei fattori, uno per bit: nelle posizioni dove i due vettori coincidono, dove differiscono. Se i due vettori differiscono in posizioni (distanza di Hamming, sezione 5):
Esempio. Con si riceve dal codice . Le distanze sono , quindi le verosimiglianze sono La più alta è quella di : ML decide . Con invece e sono entrambe a distanza e hanno la stessa verosimiglianza : ML è in parità. Se le parole non sono equiprobabili, per esempio con probabilità a priori , si moltiplica per il prior: contro , e MAP sceglie .
5. ML sul BSC significa minima distanza di Hamming
Definizione. La distanza di Hamming tra due sequenze binarie di bit è il numero di posizioni in cui sono diverse: dove vale se i bit sono diversi e se sono uguali ("differenza binaria").
Sul BSC con parole equiprobabili, il criterio ML diventa
Il fattore non dipende da e si può togliere. Se il rapporto è minore di 1, quindi elevato a una potenza decrescente: la verosimiglianza è massima quando l'esponente è minimo.
È la stessa regola del ricevitore a minima distanza della modulazione, con la distanza di Hamming al posto di quella euclidea. Per il rapporto sarebbe maggiore di 1 e si sceglierebbe la parola più lontana (un canale che sbaglia più di metà dei bit si può "rovesciare" invertendo l'uscita); non porta informazione.
6. Distanza minima, rivelazione e correzione
Definizione. La distanza minima del codice è la minima distanza di Hamming tra due parole diverse:
Rivelazione. Un errore non viene riconosciuto solo se trasforma una parola di codice in un'altra parola di codice, e per farlo deve cambiare almeno bit. Quindi qualunque combinazione di al più errori porta fuori dal codice e si riconosce: il codice rivela sempre errori.
Correzione. Si disegnano attorno a ogni parola le "sfere" di Hamming di raggio : tutte le sequenze a distanza da essa. Se le sfere sono disgiunte, ogni sequenza ricevuta con al più errori sta nella sfera della parola trasmessa e solo in quella: la decodifica a minima distanza la riconduce alla parola giusta. Due sfere di raggio centrate in parole a distanza sono disgiunte se , cioè
"Sempre" significa in qualunque posizione cadano gli errori. Con più di errori la decodifica può ancora riuscire per fortuna, ma non c'è garanzia.
Grafico interattivo: Numero di errori rivelati sempre (d_min − 1) e corretti sempre (parte intera di (d_min − 1)/2) in funzione della distanza minima: i corretti crescono a gradini, uno ogni due unità di d_min; per d_min pari l'ultimo bit di distanza non migliora la correzione
Esempio ( pari). Il codice ha : rivela errori e corregge . Ricevendo si decide (distanza contro ). Ricevendo le due parole sono entrambe a distanza : l'errore (doppio) è rivelato ma non correggibile. Il disegno della distanza ha un punto di decisione esattamente a metà strada, quindi con pari c'è un punto di parità.
Si possono anche combinare i due scopi: un codice con corregge errori e ne rivela fino a . Per : corregge e rivela allo stesso tempo.
Come limitare dall'alto: il bound di Hamming (sezione 8 e nota 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 →) e 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 →).
7. Tasso del codice e bit-rate
Definizione. Il tasso (rate) del codice è .
Se il tasso tende a : quasi tutti i bit trasmessi sono ridondanza. Se il canale trasporta un bit ogni secondi ( è il tempo per trasmettere un bit sul canale), ogni parola occupa secondi e porta bit di informazione. Il codificatore riceve quindi
di informazione, mentre sul canale passano bit/s. Viceversa, per trasportare un'informazione di bit/s occorre un canale da bit/s: per esempio con un codice e Mbit/s servono Mbit/s sul canale (più banda, o più energia per bit se si vuole la stessa ). La codifica "costa" sempre almeno questo fattore.
8. Probabilità d'errore di parola e bound di Hamming
Sul BSC, il numero di errori in una parola di bit ha distribuzione binomiale (Prove ripetute e modello binomialen prove indipendenti, ciascuna con probabilità di successo p: una sequenza con k successi ha probabilità p^k (1−p)^(n−k), e la probabilità di esattamente k successi è (n su k) p^k (1−p)^(n−k) (modello binomiale); il primo successo alla prova k ha probabilità (1−p)^(k−1) p.Prove ripetute e modello binomiale →): la probabilità di errori in posizioni qualsiasi è . Un codice con errori corretti sempre decodifica bene almeno quando gli errori sono al più . Quindi, per la probabilità d'errore di parola :
(è una limitazione superiore: con più di errori la decodifica può ancora riuscire). Vale l'uguaglianza per i codici perfetti (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 →). Il valore vale per qualunque mappa : la probabilità d'errore di parola dipende solo dall'insieme , non da quale corrisponde a quale (permutare le associazioni non cambia le parole né le distanze).
Esempio (codice con , ). Il codice corregge errore. Allora Senza codice, i due bit di informazione arrivano corretti con probabilità e la probabilità che almeno uno sia sbagliato è : il codice la riduce di un fattore circa . Con si passa da a .
Grafico interattivo: Probabilità d'errore sui due bit di informazione senza codice e con il codice (5,2) a distanza minima 3 (limite superiore): il codice vince per P_bit minore di circa 0,36; a P_bit = 0,01 la limitazione vale 9,8·10⁻⁴ contro 1,99·10⁻² senza codice
Solo rivelazione. Se il codice si usa solo per rivelare (come nell'ARQ), l'errore non rivelato è quello che trasforma in un'altra parola. Con un solo bit di parità () è un numero pari di errori: a (circa ), contro una probabilità di avere un errore tra i bit di informazione senza codice pari a .
Il bound di Hamming dà un limite al tasso a parità di errori corretti . Il numero di sequenze a distanza esattamente da una sequenza di bit è (si scelgono le posizioni da cambiare); le sequenze nella sfera di raggio sono . Le sfere sono disgiunte e stanno tutte tra le sequenze:
9. Quando basta un codice: il teorema di Shannon sul BSC
La codifica non può portare a zero gli errori a qualunque bit-rate. Per il BSC la capacità di canale (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 il periodo di un bit sul canale. Se il bit-rate di informazione della sorgente è minore di esiste (per grande) un codice con probabilità d'errore residua piccola a piacere; se è maggiore, nessun codice ci riesce. Il teorema non dice come costruire il codice: i codici a blocco di queste note sono esempi concreti, lontani dal limite.
Esempio. Con e s: , kbit/s. Una sorgente da kbit/s si può proteggere (rate minore di ), una da kbit/s no.
Nei temi d'esame la domanda "è possibile trovare una codifica di canale con probabilità d'errore residua piccola a piacere?" si risolve confrontando il bit-rate di informazione (entropia della sorgente divisa per il periodo di simbolo) con : vedi gli esercizi Esercizio - codice (5,3) non sistematico, matrice di parità e sindrome su BSC (secondo compitino del 9 gennaio 2026, es. 195) e Esercizio - codice (5,3) lineare dalle parole di codice, sindrome e periodo di simbolo massimo (esame dell'8 febbraio 2024, es. 175). Versione 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 →.
10. ARQ: ritrasmissione dei pacchetti
Con l'ARQ i dati sono divisi in pacchetti (PDU) di bit. Il ricevitore controlla ogni pacchetto con un codice a rivelazione (per esempio il bit di parità o un CRC) e risponde con un ACK (corretto) o un NACK (errato); si ritrasmette quello errato. Si assume il canale di ritorno affidabile. Il pacchetto è errato se almeno un bit è errato:
Si definiscono il tempo per trasmettere un pacchetto, quello dell'ACK/NACK, il ritardo di propagazione (andata; andata e ritorno ). Il numero di trasmissioni di un pacchetto fino al successo è geometrico, con media . Si chiama throughput normalizzato la frazione di tempo in cui il canale trasporta pacchetti nuovi e corretti.
- Stop-and-wait (SW). Si manda un pacchetto e si aspetta la conferma prima del successivo. Un ciclo dura e porta di tempo utile con probabilità :
- Go-back-N (GBN). Il trasmettitore manda pacchetti senza aspettare, con una finestra di pacchetti in volo, con (la finestra copre l'andata e ritorno). Se un pacchetto è errato, il ricevitore scarta anche i successivi e il trasmettitore li rimanda tutti: ogni errore costa trasmissioni inutili in più. Il numero medio di trasmissioni per pacchetto utile è e
- Selective repeat (SR). Come GBN ma il ricevitore conserva i pacchetti corretti arrivati dopo uno errato e si rimanda solo l'errato:
Valori tipici: con ms, ms, ms e (esercizio Esercizio - throughput di stop-and-wait, go-back-N e selective repeat (esercizi del corso, cap. 4)) si ottiene , con , : sul collegamento lungo lo stop-and-wait aspetta quasi sempre. Versione per Ing. Elettronica: Tecniche ARQ - stop-and-wait, go-back-N e selective repeatL'ARQ (automatic repeat request) usa un codice che rivela gli errori e fa ritrasmettere i pacchetti sbagliati, con conferme ACK/NACK. Con $p=1-(1-P_{bit})^L$ la probabilità che un pacchetto sia errato, $t_P$ il tempo di pacchetto, $t_A$ quello dell'ACK e $\tau_P$ il ritardo di propagazione: stop-and-wait $S=\frac{t_P(1-p)}{t_P+t_A+2\tau_P}$; go-back-N $S=\frac{(1-p),t_P}{1+(N-1)p}$ con $N-1=\left\lceil\frac{2\tau_P}{t_P+t_A}\right\rceil$; selective repeat $S=(1-p)\frac{t_P}{t_P+t_A}$. Il numero medio di trasmissioni di un pacchetto è $\frac1{1-p}$.Tecniche ARQ - stop-and-wait, go-back-N e selective repeat →; per Ing. delle Telecomunicazioni: Tecniche ARQ e loro prestazioniARQ (Automatic Repeat reQuest) rende affidabile un collegamento che sbaglia: il ricevitore risponde a ogni pacchetto con ACK (corretto) o NACK (errato), e il trasmettitore ritrasmette. Con probabilità di pacchetto errato $p$, $t_{RTT}=t_P+t_A+2\tau_P$ e coda sempre piena, il throughput massimo (frazione di tempo d'aria) è: Stop-and-Wait $S=\frac{t_P(1-p)}{t_{RTT}}$; Go-Back-N con $N=t_{RTT}/t_P$ $S=\frac{1-p}{(N-1)p+1}$; Selective Repeat $S=1-p$. Il ritardo medio è $m_{delay}=t_P+\tau_P+\frac p{1-p}t_{RTT}$ (a coda vuota). Sono solo valori massimi: la coda ARQ è stabile solo se $\lambda$ è minore della velocità di servizio, $\lambda<1/m_y$; altrimenti il throughput è $\min(\lambda,\mu)$. L'efficienza (payload) è $\eta=S,L_D/L$.Tecniche ARQ e loro prestazioni →.
L'ARQ ha bisogno del canale di ritorno e porta un ritardo variabile, ma con pochi bit di parità raggiunge (SR); la FEC non ha ritardi di ritrasmissione ma spende ridondanza a ogni parola. L'HARQ combina i due vantaggi.
Errori comuni
- Confondere (ricevuta, di solito non è una parola) con (decisa, è sempre una parola).
- Usare la decodifica a minima distanza con , o con parole non equiprobabili: allora serve la verosimiglianza o il criterio MAP.
- Dire che il codice corregge " errori" senza la parte intera: con si correggono errore, non .
- Calcolare del pacchetto come nell'ARQ: .
- Confrontare la capacità con il bit-rate del canale invece del bit-rate di informazione della sorgente, o dimenticare che è il periodo di un bit sul canale.
Domande d'esame
- Un codice a blocco ha . Quanti errori rivela e quanti ne corregge sempre? Rivela errori e corregge . Con tre errori può decodificare male; con quattro li rivela se non corregge.
- Perché sul BSC la decodifica ML è a minima distanza di Hamming? La verosimiglianza di è e per decresce con ; il fattore è lo stesso per tutte le parole.
- Un codice con è usato su un BSC con : limite superiore alla probabilità d'errore di parola. ; .
Esercizi svolti
- Esercizio - throughput di stop-and-wait, go-back-N e selective repeat (esercizi del corso, cap. 4): throughput di stop-and-wait, go-back-N e selective repeat con i dati del corso.
- Esercizio - stop-and-wait con canale a cancellazione e informazione mutua (secondo compitino del 12 gennaio 2018, es. 73): stop-and-wait su un canale a cancellazione, sistema senza ACK per alcuni simboli, informazione mutua e capacità.
- Esercizio - codice non lineare a quattro parole, distanza 2 e bound di Singleton (esame del 21 giugno 2023, es. 159): codice non lineare a quattro parole, distanza minima, bound di Singleton e un bit inutile.
- Esercizio - codice (5,3) lineare dalle parole di codice, sindrome e periodo di simbolo massimo (esame dell'8 febbraio 2024, es. 175): probabilità di una sequenza ricevuta sul BSC e periodo di simbolo massimo secondo Shannon.
Versione ripasso
Strategie.
- ARQ: canale di ritorno, la ridondanza serve a rivelare; si ritrasmette.
- FEC: la ridondanza corregge, nessun ritorno.
- HARQ: le due insieme.
- Versione per Ing. Elettronica: Codifica di canale - codici a blocco, distanza minima, rivelazione e correzioneLa codifica di canale aggiunge ridondanza ai bit per rivelare o correggere gli errori del canale. Un codice a blocco $(n,k)$ trasforma $k$ bit in $n$ bit (rendimento $R_c=\frac kn$). Con la distanza di Hamming minima $d_{min}$ il codice rivela fino a $d_{min}-1$ errori e ne corregge $t=\left\lfloor\frac{d_{min}-1}2\right\rfloor$ (decodifica a minima distanza). Vale il limite di Singleton $d_{min}\le n-k+1$. Su un canale binario simmetrico con errore $p$, la probabilità di parola sbagliata è $P_w\le\sum_{i>t}\binom nip^i(1-p)^{n-i}$ e, con $p$ piccola, $P_{bit}\approx\frac{d_{min}}n\binom n{t+1}p^{t+1}$.Codifica di canale - codici a blocco, distanza minima, rivelazione e correzione →; per Ing. delle Telecomunicazioni: Codici a blocco - distanza minima, rivelazione e correzioneLa codifica di canale aggiunge ridondanza in modo mirato: $k$ bit di informazione diventano una parola di codice di $n>k$ bit scelta tra $2^k$ parole ammesse. Se la parola ricevuta non è una parola di codice l'errore è rivelato (e si può chiedere la ritrasmissione, ARQ) oppure corretto (FEC). La qualità dipende dalla distanza minima di Hamming $d_{min}$: si rivelano fino a $d_{min}-1$ errori e se ne correggono $t<d_{min}/2$, ma non contemporaneamente. Per un BSC con $P_{bit}<1/2$ la decisione ottima ML coincide con quella a distanza minima. Limite di Hamming: $k/n\le1-\frac1n\log_2\sum_{r=0}^t\binom nr$.Codici a blocco - distanza minima, rivelazione e correzione →.
Codice a blocco
- ( bit) ( bit), biunivoco: parole tra sequenze, insieme delle parole .
- trasmessa, ricevuta (di solito non è una parola), decisa (è una parola): .
- Modulatore, canale e demodulatore equivalgono a un canale binario con (Modulazione digitale - trasmettitore, bit map e canale AWGNIl trasmettitore digitale ha due blocchi: la bit map raggruppa $\log_2M$ bit in un simbolo $a_m\in{1,\dots,M}$ (periodo $T=T_b\log_2M$) e il modulatore associa a ogni simbolo una forma d'onda $s_{a_m}(t)$, così $s_{Tx}(t)=\sum_ms_{a_m}(t-mT)$; l'insieme delle $M$ forme d'onda è la segnalazione. Il canale ideale lascia il segnale com'è, il canale AWGN lo scala di $A$ e somma il rumore bianco gaussiano $w(t)$, il canale multipath somma echi ritardati: i suoi due effetti sono la deformazione delle forme d'onda ($s'_m$) e l'interferenza intersimbolica. Il ricevitore ha un demodulatore digitale che decide $\hat a_m$ e una bit demap.Modulazione digitale - trasmettitore, bit map e canale AWGN →).
- Esempio: ; ricevuta (distanze ); ricevuta : parità tra e .
Decodifica ottima
- ; MAP: ; ML se le parole sono equiprobabili (Regioni di decisione - criteri MAP, ML e minima distanzaLe regioni di decisione $\mathcal R_1,\dots,\mathcal R_M$ sono una partizione dello spazio $\mathbb R^I$: se il vettore ricevuto cade in $\mathcal R_m$ si decide $\hat a_0=m$. La probabilità di decisione corretta è $P[C]=\sum_m\int_{\mathcal R_m}D(\boldsymbol\rho;m),d\boldsymbol\rho$ con $D=P_{a_0}(m),p_{\mathbf r|a_0}(\boldsymbol\rho|m)$, ed è massima assegnando ogni $\boldsymbol\rho$ al $m$ che massimizza $D$: criterio MAP. Con simboli equiprobabili è il ML; con in più rumore AWGN diventa la minima distanza (MD), $\hat a_0=\arg\min_m\lVert\boldsymbol\rho-\mathbf s_m\rVert$, con confini che sono gli assi dei segmenti tra i punti. Con probabilità diverse i confini si spostano verso i punti meno probabili.Regioni di decisione - criteri MAP, ML e minima distanza →).
- BSC: , , errori indipendenti; . Un canale con e non è simmetrico.
- Con il rapporto : ML equivale alla minima distanza di Hamming . Con e ricevuta : verosimiglianze , vince . Con priori e ricevuta , MAP sceglie ( contro ).
Capacità del codice
- . Rivelati sempre (un errore non rivelato deve cambiare almeno bit). Corretti sempre (sfere di raggio disgiunte se ).
- Correggere e rivelare errori richiede . Con (): corregge , rivela ; è rivelata ma non corretta.
- Rate ; informazione in ingresso al codificatore bit/s; sul canale servono bit/s (per e Mbit/s: Mbit/s).
- ; uguaglianza per i codici perfetti. Dipende solo da , non dalla mappa .
- Codice con , : contro senza codice. Solo rivelazione con parità a : errore non rivelato , contro per bit senza codice.
- Bound di Hamming: , cioè (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 →).
Shannon sul BSC
- , , = periodo di un bit sul canale.
- Esiste un codice a errore residuo piccolo a piacere se il bit-rate di informazione è minore di . Esempio: , s: kbit/s; kbit/s sì, kbit/s no (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 →).
ARQ (; trasmissioni medie per pacchetto )
- (il ciclo dura ).
- con ; ogni errore costa trasmissioni inutili.
- , il massimo con l'ARQ.
- Esempio , , ms, : , (), (Tecniche ARQ - stop-and-wait, go-back-N e selective repeatL'ARQ (automatic repeat request) usa un codice che rivela gli errori e fa ritrasmettere i pacchetti sbagliati, con conferme ACK/NACK. Con $p=1-(1-P_{bit})^L$ la probabilità che un pacchetto sia errato, $t_P$ il tempo di pacchetto, $t_A$ quello dell'ACK e $\tau_P$ il ritardo di propagazione: stop-and-wait $S=\frac{t_P(1-p)}{t_P+t_A+2\tau_P}$; go-back-N $S=\frac{(1-p),t_P}{1+(N-1)p}$ con $N-1=\left\lceil\frac{2\tau_P}{t_P+t_A}\right\rceil$; selective repeat $S=(1-p)\frac{t_P}{t_P+t_A}$. Il numero medio di trasmissioni di un pacchetto è $\frac1{1-p}$.Tecniche ARQ - stop-and-wait, go-back-N e selective repeat →).
Esempio completo: codice con (parole )
- errore corretto, rivelati; rate ; sul canale servono bit per ogni bit di informazione.
- : a e a ; senza codice i due bit sbagliano con e . Il codice vince per circa.
- La verosimiglianza di una ricevuta dipende solo da quanti bit differiscono, non da quali.
ARQ: definizioni
- Pacchetto di bit; errato se almeno un bit è errato. tempo di pacchetto, tempo della conferma, ritardo di propagazione (andata), andata e ritorno. Throughput normalizzato = frazione di tempo con pacchetti nuovi e corretti, bit-rate utile .
- Trasmissioni di un pacchetto fino al successo: geometrico, media . GBN: media trasmissioni per pacchetto utile, ognuna di durata .
Domande tipiche
- : rivela errori, corregge .
- Perché ML sul BSC è a minima distanza: la verosimiglianza decresce con se , e è comune a tutte le parole.
- Esistenza di una codifica a errore piccolo a piacere: confrontare il bit-rate di informazione (entropia diviso periodo di simbolo) con .
Errori tipici
- Scambiare (ricevuta) e (decisa).
- Usare la minima distanza con o con parole non equiprobabili.
- Dimenticare la parte intera in : con si corregge errore, non .
- Usare al posto di nell'ARQ.
- Confrontare con il bit-rate del canale invece che con quello di informazione.
Esercizi su questo argomento
- Esercizio - 4-QAM con impulso triangolare, lunghezza del cavo, canale di simbolo, capacità e codice non lineare (compito del 23 gennaio 2026, es. 199)
- Esercizio - capacità di un canale 4-PSK, entropia di un codice a blocco, distanza minima e decodifica (compito dell'11 febbraio 2025, es. 192)
- Esercizio - codice (5,3) lineare dalle parole di codice, sindrome e periodo di simbolo massimo (esame dell'8 febbraio 2024, es. 175)
- Esercizio - codice (5,3) non sistematico, matrice di parità e sindrome su BSC (secondo compitino del 9 gennaio 2026, es. 195)
- Esercizio - codice (6,3) accorciato di Hamming, sindrome e peso minimo (esame del 6 settembre 2022, es. 146)
- Esercizio - codice (6,3) con G sistematica, numero di coset e bucatura (esame del 29 agosto 2021, es. 128)
- 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,4) con colonne uguali in H, coset leader multipli e bit di parità aggiunto (esame del 25 gennaio 2023, es. 154)
- Esercizio - codice non lineare a quattro parole, distanza 2 e bound di Singleton (esame del 21 giugno 2023, es. 159)
- Esercizio - matrice di parità a 4 righe, forma sistematica e permutazione delle colonne (esame del 24 gennaio 2025, es. 188)
- Esercizio - porta parallela a 8 pin, Hamming (7,4), coset e canale con pin guasto (esame del 15 febbraio 2023, es. 157)
- Esercizio - rate di informazione, codice di Hamming (7,4) e capacità del canale binario simmetrico (compito del 6 luglio 2026, es. 204)
- Esercizio - stop-and-wait con canale a cancellazione e informazione mutua (secondo compitino del 12 gennaio 2018, es. 73)
- Esercizio - throughput di stop-and-wait, go-back-N e selective repeat (esercizi del corso, cap. 4)