Salta al contenuto
Note per Studenti Formulario · Telecommunications

FormularioTelecommunications: definizioni, teoremi e formule delle note, in ordine di capitolo

In questa pagina 7

1. Introduzione

Introduzione alle reti di telecomunicazione

Definizione (telecomunicazione). Un servizio di telecomunicazione (telefonata, e-mail, televisione, navigazione web) è realizzato da un sistema che trasporta informazione da una sorgente a una destinazione poste a distanza. Coinvolge tre entità: il trasmettitore (sorgente, mittente, Tx), il canale (portante, mezzo trasmissivo: cavo, fibra, spazio libero) e il ricevitore (destinazione, utente, terminale, Rx).

Esempio. In una telefonata la voce (sorgente) è convertita in bit e trasmessa (Campionamento e conversione analogico-digitalePer trasmettere un segnale analogico $a(t)$ con un sistema digitale lo si trasforma in bit: filtro anti-aliasing, campionatore ($T_s=\frac1{F_s}$, $F_s\ge2B$), quantizzatore su $L=2^b$ livelli, mappa livello $\to$ $b$ bit, serializzatore. Il bit-rate nominale è $R_b=bF_s$. Campionare è reversibile (con un filtro interpolatore, in pratica un holder) se $F_s\ge2B$; quantizzare invece perde informazione in modo irreversibile. Al ricevitore si ripercorre la catena al contrario (D/A).Campionamento e conversione analogico-digitale →), il canale è il cavo o il collegamento radio che attenua e aggiunge rumore (Mezzi trasmissivi - cavi, fibre e radioUn mezzo trasmissivo è noto quando si conosce la risposta in frequenza $g_{ch}(f)$ (o il guadagno di potenza $g_{ch}(f)$, cioè l'attenuazione $a_{ch}=\frac1{g_{ch}}$). Nei cavi $g_{ch}=e^{-2\alpha(f)d}$: l'attenuazione in dB è proporzionale alla distanza ($a_{ch}=\tilde a_{ch},d$, in dB/km) e a $\sqrt f$. Nelle fibre ottiche l'attenuazione è bassa in tre finestre di lunghezza d'onda e la dispersione $\sigma_F$ (risposta gaussiana) limita la banda. Nei collegamenti radio in spazio libero vale la formula di Friis $a_{ch}=\frac{(4\pi d/\lambda)^2}{g_{tx}g_{rc}}$, cioè $a_{ch,dB}=32{,}4+20\log_{10}d_{km}+20\log_{10}f_{MHz}-g_{tx}-g_{rc}$; fuori dallo spazio libero $a_{ch}\propto d^\beta$ con $\beta\ge2$.Mezzi trasmissivi - cavi, fibre e radio →), il ricevitore ricostruisce il segnale.

Definizione (rete di telecomunicazioni). Insieme non isolato di sistemi in cui i ruoli (trasmettitore, ricevitore) degli utenti possono cambiare. Una volta ogni servizio aveva una rete dedicata (rete telefonica POTS, plain old telephone service, per la voce); le reti moderne sono integrate: una sola infrastruttura porta più servizi, voce e dati (ISDN, integrated services digital network, e poi Internet).

Definizione (grafo di una rete). I nodi (nodes) sono gli utenti o i dispositivi che comunicano; gli archi (collegamenti, links, hops) sono i canali, orientati (unidirezionali) o no.

Definizione (protocollo). Insieme di regole su cui gli utenti devono accordarsi per interagire, realizzate tramite lo scambio di dati di controllo.

Esempio. Un messaggio di 10001000 bit scende dal livello 4 al livello 2 con intestazioni di 2020, 2020 e 1414 bit: sul filo viaggia una PDU da 1000+20+20+14=10541000+20+20+14=1054 bit (5,4%5{,}4\% di overhead); il ricevitore toglie le intestazioni in ordine inverso.

Segnali, potenza e decibel

Definizione (decibel). Per un rapporto di potenze A=P1P2A=\frac{P_1}{P_2} (con P1,P2>0P_1,P_2>0): [A]dB=10log⁡10A,A=10[A]dB/10.[A]_{dB}=10\log_{10}A,\qquad A=10^{[A]_{dB}/10}. Per un rapporto di ampiezze (tensioni o correnti) R=X1X2R=\frac{X_1}{X_2}, poiché la potenza è il "segnale al quadrato" (P=X2P=X^2): [R]dB=10log⁡10R2=20log⁡10R.[R]_{dB}=10\log_{10}R^2=20\log_{10}R.

Esempio. A=10→10A=10\to10 dB; A=100→20A=100\to20 dB; A=1000→30A=1000\to30 dB; A=0,1→−10A=0{,}1\to-10 dB; A=0,01→−20A=0{,}01\to-20 dB. Una tensione che raddoppia (R=2R=2) fa 20log⁡102=6,0220\log_{10}2=6{,}02 dB, una potenza che raddoppia fa 10log⁡102=3,0110\log_{10}2=3{,}01 dB.

Definizione (supporto, durata, banda). Il supporto è l'insieme dei tempi in cui x(t)≠0x(t)\neq0 e la durata è la sua misura. La banda completa B\mathcal B è l'insieme delle frequenze in cui X(f)≠0X(f)\neq0; la banda si restringe alle frequenze f≥0f\ge0 e la larghezza di banda BB è la sua misura. Per un segnale reale ∣X(f)∣\lvert X(f)\rvert è pari, quindi la banda completa è doppia della banda.

Esempio. x(t)=rect⁡(tT)x(t)=\operatorname{rect}\left(\frac tT\right) ha supporto [−T2,T2]\left[-\frac T2,\frac T2\right] e durata TT. La sua trasformata è X(f)=Tsinc⁡(fT)X(f)=T\operatorname{sinc}(fT) (con sinc⁡(u)=sin⁡πuπu\operatorname{sinc}(u)=\frac{\sin\pi u}{\pi u}), diversa da zero per quasi tutte le ff: la banda formale è infinita.

Grafico interattivo: Modulo dello spettro del rettangolo di durata T, |X(f)|/X(0) = |sinc(fT)|, in funzione di fT: il primo zero è in fT = 1; la banda a 3 dB (soglia 0,7071) finisce in fT = 0,443, quella a 20 dB (soglia 0,1) in fT = 0,908

Definizione (energia e potenza). L'energia di x(t)x(t) è Ex=∫−∞+∞∣x(t)∣2dt\mathcal E_x=\int_{-\infty}^{+\infty}\lvert x(t)\rvert^2dt (unità: V2⋅^2\cdots, non joule: è un'energia "normalizzata" a una resistenza di 1 Ω1\ \Omega). La potenza media è Mx=lim⁡T→∞12T∫−TT∣x(t)∣2dtM_x=\lim_{T\to\infty}\frac1{2T}\int_{-T}^{T}\lvert x(t)\rvert^2dt (unità: V2^2).

Teorema (Parseval). Ex=∫∣x(t)∣2dt=∫∣X(f)∣2df\displaystyle\mathcal E_x=\int\lvert x(t)\rvert^2dt=\int\lvert X(f)\rvert^2df. La funzione Ex(f)=∣X(f)∣2\mathcal E_x(f)=\lvert X(f)\rvert^2 è la densità spettrale di energia: l'energia contenuta in una banda si ottiene integrandola. Vedi Segnali - supporto, area, valor medio, energia e potenzaUn segnale è una funzione del tempo (continuo $t$ o discreto $n$). Si descrive con pochi numeri: estensione, area, valor medio, energia $\int|x|^2$ e potenza (energia media). Energia finita implica potenza nulla; potenza finita non nulla implica energia infinita; per i segnali periodici tutto si calcola su un periodo.Segnali - supporto, area, valor medio, energia e potenza →.

Esempio. Il rettangolo x(t)=Arect⁡(tT)x(t)=A\operatorname{rect}\left(\frac tT\right) con A=2A=2 V e T=1T=1 ms. Nel tempo: Ex=A2T=4⋅10−3 V2s\mathcal E_x=A^2T=4\cdot10^{-3}\ \text{V}^2\text{s}. In frequenza: X(f)=ATsinc⁡(fT)X(f)=AT\operatorname{sinc}(fT) e ∫A2T2sinc⁡2(fT)df=A2T\int A^2T^2\operatorname{sinc}^2(fT)df=A^2T (si usa ∫sinc⁡2(u)du=1\int\operatorname{sinc}^2(u)du=1): stesso valore. Il lobo principale, cioè la banda di primo zero ∣f∣<1T\lvert f\rvert<\frac1T, contiene il 90,3%90{,}3\% dell'energia (calcolo numerico: 2∫01sinc⁡2u du=0,90282\int_0^1\operatorname{sinc}^2u\,du=0{,}9028).

Definizione (media, potenza, autocorrelazione). mx(t)=E[xω(t)],Mx(t)=E[∣xω(t)∣2],rx(t,τ)=E[xω(t) xω∗(t−τ)].m_x(t)=E[x_\omega(t)],\qquad M_x(t)=E\left[\lvert x_\omega(t)\rvert^2\right],\qquad r_x(t,\tau)=E\left[x_\omega(t)\,x_\omega^*(t-\tau)\right]. Sono tre funzioni deterministiche: la media a ogni tt è la media sulle realizzazioni (non è la media nel tempo di una realizzazione); la potenza è Mx(t)=rx(t,0)M_x(t)=r_x(t,0); l'autocorrelazione descrive quanto sono legati i valori a distanza τ\tau (Valore attesoIl valore atteso E[X] = Σ x p_X(x) è la media dei valori di X pesata con le loro probabilità (esiste se la serie converge assolutamente); per una funzione g vale E[g(X)] = Σ g(x) p_X(x) senza trovare la legge di g(X), ed E è lineare: E[aX + bY + c] = aE[X] + bE[Y] + c.Valore atteso →, Covarianza e coefficiente di correlazioneCov(X, Y) = E[(X − E X)(Y − E Y)] = E[XY] − E[X]E[Y] misura quanto X e Y variano insieme; è bilineare, Cov(X, X) = Var(X), Var(X + Y) = Var X + Var Y + 2Cov(X, Y); ρ = Cov / (σ_X σ_Y) sta in [−1, 1] e vale ±1 solo per legami lineari. Indipendenti ⇒ non correlate, ma non viceversa (tranne per i vettori gaussiani).Covarianza e coefficiente di correlazione →).

Esempio. xω(t)=Acos⁡(2πf0t+Θ)x_\omega(t)=A\cos(2\pi f_0t+\Theta) con Θ\Theta uniforme in [0,2π)[0,2\pi): mx(t)=A⋅E[cos⁡(2πf0t+Θ)]=0m_x(t)=A\cdot E[\cos(2\pi f_0t+\Theta)]=0 e Mx(t)=A2E[cos⁡2(⋅)]=A22M_x(t)=A^2E[\cos^2(\cdot)]=\frac{A^2}2, costanti nel tempo.

Definizione (densità spettrale di potenza). Per un processo WSS la PSD è la trasformata dell'autocorrelazione: Px(f)=F[rx(τ)]\mathcal P_x(f)=\mathcal F[r_x(\tau)]. Vale ∫Px(f) df=rx(0)=Mx\int\mathcal P_x(f)\,df=r_x(0)=M_x: la PSD dice come la potenza si distribuisce sulle frequenze, e ∫f1f2Px(f) df\int_{f_1}^{f_2}\mathcal P_x(f)\,df è la potenza nella banda [f1,f2][f_1,f_2]. Per un processo reale è pari.

Esempio. Rumore bianco: rx(τ)=N02δ(τ)⇒Px(f)=N02r_x(\tau)=\frac{N_0}2\delta(\tau)\Rightarrow\mathcal P_x(f)=\frac{N_0}2 costante; filtrato in una banda [−B,B][-B,B] ha potenza N02⋅2B=N0B\frac{N_0}2\cdot2B=N_0B (da cui il fattore N02\frac{N_0}2: è la densità bilatera).

Teorema (filtraggio di un processo WSS). Se x(t)x(t) è WSS e passa in un sistema LTI con risposta impulsiva g(t)g(t) e risposta in frequenza G(f)G(f), anche y=g∗xy=g*x è WSS (e x,yx,y sono congiuntamente WSS) con my=mxG(0),ry=gˉ∗g∗rx, (gˉ(t)=g(−t)),Py(f)=∣G(f)∣2Px(f).m_y=m_xG(0),\qquad r_y=\bar g*g*r_x,\ (\bar g(t)=g(-t)),\qquad\mathcal P_y(f)=\lvert G(f)\rvert^2\mathcal P_x(f). Si calcola quindi la potenza in uscita come My=∫∣G∣2Px dfM_y=\int\lvert G\rvert^2\mathcal P_x\,df.

Esempio. xx ha PSD Px(f)=N02\mathcal P_x(f)=\frac{N_0}2 e entra in un passa-basso ideale G(f)=rect⁡(f2B)G(f)=\operatorname{rect}\left(\frac f{2B}\right): Py(f)=N02rect⁡(f2B)\mathcal P_y(f)=\frac{N_0}2\operatorname{rect}\left(\frac f{2B}\right) e My=N0BM_y=N_0B. Se il guadagno in banda è G0=0,5G_0=0{,}5 in ampiezza, cioè 20log⁡100,5=−6,0220\log_{10}0{,}5=-6{,}02 dB, la potenza si moltiplica per G02=0,25G_0^2=0{,}25, che in potenza è 10log⁡100,25=−6,0210\log_{10}0{,}25=-6{,}02 dB: lo stesso numero di dB, come deve essere per la definizione 20log⁡1020\log_{10} per le ampiezze.

Teorema (Jensen). Sia xx una variabile aleatoria non quasi certamente costante a valori in un intervallo JJ e hh strettamente concava in JJ. Allora E[h(x)]<h(E[x])E[h(x)]<h(E[x]) (per hh strettamente convessa vale E[h(x)]>h(E[x])E[h(x)]>h(E[x])), purché i valori attesi esistano. "Quasi certamente (a.s.)" vuol dire con probabilità 1: per esempio xx vale una costante con probabilità 1.

Esempio. h(t)=log⁡2th(t)=\log_2t è strettamente concava. Con x∈{1,4}x\in\{1,4\} equiprobabile: E[h(x)]=12(0+2)=1E[h(x)]=\frac12(0+2)=1, mentre h(E[x])=log⁡22,5=1,32h(E[x])=\log_2 2{,}5=1{,}32; infatti 1<1,321<1{,}32. Vedi Disuguaglianze di Markov, Chebyshev e JensenMarkov: per X ≥ 0, P(X ≥ a) ≤ E[X]/a; Chebyshev: P(|X − μ| ≥ ε) ≤ Var(X)/ε²; Jensen: per φ convessa, φ(E[X]) ≤ E[φ(X)]. Stimano probabilità e medie conoscendo solo media e varianza.Disuguaglianze di Markov, Chebyshev e Jensen →.

2. Sorgenti di informazione

Campionamento e conversione analogico-digitale

Definizione (convertitore A/D). Dal segnale analogico a(t)a(t) si ottiene un flusso di bit con questi blocchi in cascata:

  1. filtro anti-aliasing (passa-basso, si veda il §4);
  2. campionatore: preleva a(nTs)a(nT_s) a istanti multipli del periodo di campionamento TsT_s; la frequenza di campionamento (o symbol rate) è Fs=1TsF_s=\frac1{T_s} campioni al secondo;
  3. quantizzatore QQ: associa a ogni campione un valore aq(nTs)a_q(nT_s) preso da un insieme finito di LL livelli Aq={Q1,…,QL}\mathcal A_q=\{Q_1,\dots,Q_L\};
  4. bitmap inversa e serializzatore (P/S): ogni livello è rappresentato con una parola di bb bit, con L=2bL=2^b cioè b=log⁡2Lb=\log_2L, e le parole si mettono in fila.

Esempio. Con L=8L=8 livelli servono b=log⁡28=3b=\log_28=3 bit per campione, e la bitmap associa 000,001,…,111000,001,\dots,111 agli 8 livelli. Non è obbligatorio che LL sia una potenza di 2, ma lo si sceglie così: con L=6L=6 servirebbero comunque ⌈log⁡26⌉=3\lceil\log_26\rceil=3 bit e due parole di codice sarebbero sprecate.

Teorema (campionamento). Sia a(t)a(t) un segnale a banda limitata, con A(f)=0A(f)=0 per ∣f∣>B\lvert f\rvert>B. Se Fs=1Ts≥2BF_s=\frac1{T_s}\ge2B allora a(t)a(t) si ricostruisce esattamente dai campioni a(nTs)a(nT_s) con un filtro interpolatore di risposta in frequenza G(f)={Ts∣f∣<BqualsiasiB≤∣f∣≤Fs−B0∣f∣>Fs−BG(f)=\begin{cases}T_s&\lvert f\rvert<B\\\text{qualsiasi}&B\le\lvert f\rvert\le F_s-B\\0&\lvert f\rvert>F_s-B\end{cases} La frequenza 2B2B è la frequenza di Nyquist (o Nyquist rate), la minima possibile.

Esempio (aliasing). Un tono a 66 kHz campionato a Fs=8F_s=8 kHz ha campioni cos⁡(2π68n)=cos⁡(2π(1−28)n)=cos⁡(2π28n)\cos\left(2\pi\frac6{8}n\right)=\cos\left(2\pi\left(1-\frac28\right)n\right)=\cos\left(2\pi\frac28n\right), identici a quelli di un tono a 22 kHz: il ricevitore non può distinguere i due e ricostruirebbe 22 kHz. In generale una frequenza f0>Fs2f_0>\frac{F_s}2 si "ripiega" su ∣f0−kFs∣\lvert f_0-kF_s\rvert con kk intero più vicino. Per un segnale di banda B=3B=3 kHz, tra Fs=1F_s=1, 22 e 88 kHz l'unica scelta valida è Fs=8F_s=8 kHz perché solo 8≥2B=68\ge2B=6.

Grafico interattivo: Spettro del segnale campionato (triangolo di banda B = 1) con F_s = 3B ≥ 2B: le copie centrate nei multipli di 3 sono separate e un passa-basso con taglio tra B = 1 e F_s − B = 2 recupera il triangolo centrale

Quantizzazione e rumore di quantizzazione

Definizione (quantizzatore). Un quantizzatore è una funzione Q:R→Aq={Q1,…,QL}Q:\mathbb R\to\mathcal A_q=\{Q_1,\dots,Q_L\} che a ogni campione a(nTs)a(nT_s) associa un livello aq(nTs)=Q(a(nTs))a_q(nT_s)=Q(a(nT_s)). Si divide R\mathbb R in LL regioni disgiunte R1,…,RL\mathcal R_1,\dots,\mathcal R_L separate da L−1L-1 soglie v2<⋯<vLv_2<\dots<v_L; il campione in Rj\mathcal R_j diventa QjQ_j. Si prende L=2bL=2^b con bb bit per campione.

Esempio. Le soglie v={−1,0,1}v=\{-1,0,1\} dividono R\mathbb R in quattro regioni (−∞,−1)(-\infty,-1), (−1,0)(-1,0), (0,1)(0,1), (1,+∞)(1,+\infty); con i livelli {−1,5,−0,5,0,5,1,5}\{-1{,}5,-0{,}5,0{,}5,1{,}5\} il campione 0,30{,}3 diventa 0,50{,}5 e il campione −4-4 diventa −1,5-1{,}5. Si lavora con L=4L=4, quindi b=2b=2 bit.

Definizione (quantizzatore uniforme e mid-riser). Il quantizzatore uniforme (PCM, pulse code modulation) ha tutte le regioni interne di ampiezza uguale Δ\Delta (il passo di quantizzazione). Si sceglie il range dinamico [−vsat,vsat][-v_{sat},v_{sat}] (vsatv_{sat} è la tensione di saturazione) e si divide in LL passi: Δ=2vsatL=2vsat2b,vsat=2b−1Δ.\boxed{\Delta=\frac{2v_{sat}}{L}=\frac{2v_{sat}}{2^b}},\qquad v_{sat}=2^{b-1}\Delta. Nel tipo mid-riser ("la scala sale in zero") le soglie sono i multipli di Δ\Delta (che sono i multipli pari di Δ2\frac\Delta2) e i livelli sono i punti centrali delle regioni, cioè i multipli dispari di Δ2\frac\Delta2: Qj=±Δ2, ±3Δ2, …, ±(L−1)Δ2,soglie 0,±Δ,±2Δ,…,±(L2−1)Δ.Q_j=\pm\frac\Delta2,\ \pm\frac{3\Delta}2,\ \dots,\ \pm\frac{(L-1)\Delta}2,\qquad\text{soglie }0,\pm\Delta,\pm2\Delta,\dots,\pm\left(\tfrac L2-1\right)\Delta. Nel mid-tread invece il valore 00 è un livello e i livelli sono 0,±Δ,±2Δ,…0,\pm\Delta,\pm2\Delta,\dots. Negli esercizi si usa il mid-riser.

Esempio. L=8L=8 (b=3b=3) e vsat=4v_{sat}=4 V: Δ=2⋅48=1\Delta=\frac{2\cdot4}{8}=1 V; livelli ±0,5, ±1,5, ±2,5, ±3,5\pm0{,}5,\ \pm1{,}5,\ \pm2{,}5,\ \pm3{,}5 V; soglie −3,−2,−1,0,1,2,3-3,-2,-1,0,1,2,3 V. L'ingresso 1,21{,}2 V cade tra le soglie 11 e 22 e diventa 1,51{,}5 V (errore +0,3+0{,}3 V); l'ingresso −5-5 V è oltre la soglia −3-3 V, quindi satura nel livello −3,5-3{,}5 V (errore +1,5+1{,}5 V). Non si trova mai il livello 00.

Grafico interattivo: Caratteristica del quantizzatore uniforme mid-riser con L = 8 livelli e v_sat = 4 V (Δ = 1 V): 8 gradini larghi 1 V con livelli ±0,5, ±1,5, ±2,5, ±3,5 V; oltre ±3 V l'uscita non cresce più (saturazione). La retta a_q = a sarebbe il caso ideale

Definizione (errore e rumore di quantizzazione). eq(nTs)=aq(nTs)−a(nTs)e_q(nT_s)=a_q(nT_s)-a(nT_s), quindi aq=a+eqa_q=a+e_q: all'uscita c'è il segnale più un "rumore" additivo, come se l'errore fosse introdotto dal canale.

Esempio. Con Δ=1\Delta=1 V (esempio sopra) Meq=112=0,0833M_{e_q}=\frac1{12}=0{,}0833 V2^2, errore efficace 0,0833=0,289\sqrt{0{,}0833}=0{,}289 V, che è Δ12\frac{\Delta}{\sqrt{12}} e non Δ2\frac\Delta2 (l'errore massimo): la media del quadrato è minore del quadrato del massimo.

Grafico interattivo: Errore e_q = a_q − a del quantizzatore mid-riser con Δ = 1 V e v_sat = 4 V: dente di sega di ampiezza ±0,5 V (errore granulare) per |a| < 4 V, poi una retta che cresce senza limite (errore di saturazione)

Definizione (SNR di quantizzazione). Λq=E[a(nTs)2]E[eq(nTs)2]=MaMeq,[Λq]dB=10log⁡10Λq.\Lambda_q=\frac{E\left[a(nT_s)^2\right]}{E\left[e_q(nT_s)^2\right]}=\frac{M_a}{M_{e_q}},\qquad[\Lambda_q]_{dB}=10\log_{10}\Lambda_q. Con segnale a media nulla Ma=σa2M_a=\sigma_a^2 (varianza); in generale Ma=σa2+ma2M_a=\sigma_a^2+m_a^2. Più è alto, più il segnale quantizzato è fedele.

Esempio. Segnale con σa2=2\sigma_a^2=2 V2^2 e rumore Meq=0,002M_{e_q}=0{,}002 V2^2: Λq=1000\Lambda_q=1000, cioè 3030 dB.

Grafico interattivo: SNR di quantizzazione in dB in funzione dei bit b per un segnale gaussiano con v_sat = 4σ (P_sat = 6,3·10⁻⁵): 6,02·b + 4,77 − 12,04, una retta di pendenza 6 dB per bit

Informazione, entropia e informazione mutua

Definizione (informazione). i(A)=log⁡21P(A)\displaystyle i(A)=\log_2\frac1{P(A)} bit (con ln⁡\ln si avrebbe il nat). Per la sorgente, ix(a)=log⁡21px(a)i_x(a)=\log_2\frac1{p_x(a)}.

Esempio. L'estrazione del seme di una carta (cuori, quadri, fiori, picche, equiprobabili con P=14P=\frac14) ha informazione log⁡24=2\log_24=2 bit; scoprire una carta precisa su 52 vale log⁡252=5,70\log_252=5{,}70 bit; un evento certo vale 00 bit, la testa di una moneta equa 11 bit.

Definizione (entropia). L'entropia di una variabile aleatoria discreta xx è l'informazione media (il valore atteso di ix(x)i_x(x)): H(x)=E[log⁡21px(x)]=∑a∈Axpx(a)log⁡21px(a)[bit].\boxed{H(x)=E\left[\log_2\frac1{p_x(x)}\right]=\sum_{a\in\mathcal A_x}p_x(a)\log_2\frac1{p_x(a)}}\quad[\text{bit}]. Per i termini con p=0p=0 si pone 0⋅log⁡210=00\cdot\log_2\frac10=0 (è il limite, si veda sotto).

Esempio. p=0,1p=0{,}1: H=0,1log⁡210+0,9log⁡210,9=0,332+0,137=0,469H=0{,}1\log_210+0{,}9\log_2\frac1{0{,}9}=0{,}332+0{,}137=0{,}469 bit. Una moneta truccata al 90% dà meno di mezzo bit per lancio.

Grafico interattivo: Entropia di una sorgente binaria H(p): massimo 1 bit per p = 1/2 (incertezza massima), zero per p = 0 e p = 1 (esito certo); H(0,1) = 0,469 bit, H(0,2) = 0,722 bit

Teorema (limiti dell'entropia). Se la sorgente ha MM simboli:

  1. H(x)=0H(x)=0 se e solo se xx è quasi certamente (a.s.) costante (un simbolo ha probabilità 1, gli altri 0); altrimenti H(x)>0H(x)>0.
  2. H(x)≤log⁡2MH(x)\le\log_2M, con uguaglianza se e solo se i simboli sono equiprobabili.

Esempio. Probabilità 0,35, 0,22, 0,20, 0,13, 0,100{,}35,\ 0{,}22,\ 0{,}20,\ 0{,}13,\ 0{,}10: H=0,35log⁡210,35+0,22log⁡210,22+0,20log⁡210,20+0,13log⁡210,13+0,10log⁡210,10=0,530+0,481+0,464+0,383+0,332=2,19H=0{,}35\log_2\frac1{0{,}35}+0{,}22\log_2\frac1{0{,}22}+0{,}20\log_2\frac1{0{,}20}+0{,}13\log_2\frac1{0{,}13}+0{,}10\log_2\frac1{0{,}10}=0{,}530+0{,}481+0{,}464+0{,}383+0{,}332=2{,}19 bit, contro log⁡25=2,32\log_25=2{,}32 del caso equiprobabile.

Teorema (entropia congiunta).

  1. Se y=f(x)y=f(x) (dipendenza deterministica) H(x,y)=H(x)H(x,y)=H(x); altrimenti H(x,y)>H(x)H(x,y)>H(x). Per simmetria vale lo stesso scambiando i ruoli, quindi H(x,y)≥max⁡{H(x),H(y)}H(x,y)\ge\max\{H(x),H(y)\}.
  2. Se xx e yy sono indipendenti, H(x,y)=H(x)+H(y)H(x,y)=H(x)+H(y); altrimenti H(x,y)<H(x)+H(y)H(x,y)<H(x)+H(y).

In sintesi max⁡{H(x),H(y)}≤H(x,y)≤H(x)+H(y)\max\{H(x),H(y)\}\le H(x,y)\le H(x)+H(y).

Esempio. xx uniforme in {0,1,2}\{0,1,2\} e y=(x−1)2y=(x-1)^2 (cioè y=1,0,1y=1,0,1): le coppie possibili sono (0,1),(1,0),(2,1)(0,1),(1,0),(2,1) ciascuna di probabilità 13\frac13, quindi H(x,y)=log⁡23=1,585=H(x)H(x,y)=\log_23=1{,}585=H(x): conoscere xx determina yy. Invece per x,yx,y indipendenti con px=(12,12)p_x=(\frac12,\frac12) e py=(14,34)p_y=(\frac14,\frac34): H(x,y)=H(18,38,18,38)=1,811=1+0,811=H(x)+H(y)H(x,y)=H\left(\frac18,\frac38,\frac18,\frac38\right)=1{,}811=1+0{,}811=H(x)+H(y).

Definizione (entropia condizionata). H(x∣y)=E[ix∣y(x∣y)]=∑a∑bpxy(a,b)log⁡21px∣y(a∣b).H(x|y)=E\left[i_{x|y}(x|y)\right]=\sum_{a}\sum_{b}p_{xy}(a,b)\log_2\frac1{p_{x|y}(a|b)}. Dice quanta informazione si guadagna in media scoprendo xx quando già si conosce yy (l'incertezza su xx che resta dopo aver visto yy).

Teorema. (a) H(x∣y)=H(x,y)−H(y)H(x|y)=H(x,y)-H(y). (b) 0≤H(x∣y)≤H(x)0\le H(x|y)\le H(x): vale 00 se xx è funzione di yy e vale H(x)H(x) se e solo se xx e yy sono indipendenti.

Esempio. Nel caso y=(x−1)2y=(x-1)^2 con xx uniforme in {0,1,2}\{0,1,2\}: H(y)=H(13,23)=0,918H(y)=H\left(\frac13,\frac23\right)=0{,}918 bit, quindi H(x∣y)=1,585−0,918=0,667H(x|y)=1{,}585-0{,}918=0{,}667 bit (se y=0y=0 si sa che x=1x=1; se y=1y=1 resta incerto tra 00 e 22, con probabilità 23\frac23: 23⋅1=0,667\frac23\cdot1=0{,}667) e H(y∣x)=H(x,y)−H(x)=0H(y|x)=H(x,y)-H(x)=0.

Definizione (informazione mutua). I(x;y)=H(x)−H(x∣y)=H(x)+H(y)−H(x,y)=H(y)−H(y∣x).I(x;y)=H(x)-H(x|y)=H(x)+H(y)-H(x,y)=H(y)-H(y|x). È simmetrica (I(x;y)=I(y;x)I(x;y)=I(y;x)) e vale 0≤I(x;y)≤min⁡{H(x),H(y)}0\le I(x;y)\le\min\{H(x),H(y)\}: è zero se e solo se xx e yy sono indipendenti (conoscere yy non dice nulla su xx), ed è H(x)H(x) se xx è una funzione di yy.

Esempio. Joint pxy=(0,40,10,10,4)p_{xy}=\begin{pmatrix}0{,}4&0{,}1\\0{,}1&0{,}4\end{pmatrix} (due bit che coincidono col 80%): H(x)=H(y)=1H(x)=H(y)=1, H(x,y)=1,722H(x,y)=1{,}722, quindi H(x∣y)=0,722H(x|y)=0{,}722 e I(x;y)=1−0,722=0,278I(x;y)=1-0{,}722=0{,}278 bit. Per l'esempio y=(x−1)2y=(x-1)^2: I=H(y)−H(y∣x)=0,918−0=0,918I=H(y)-H(y|x)=0{,}918-0=0{,}918 bit, che è anche H(x)−H(x∣y)=1,585−0,667H(x)-H(x|y)=1{,}585-0{,}667. Questa grandezza è quella che il canale riesce a trasportare (Capacità di canaleLa capacità di un canale è il massimo, sulle statistiche di ingresso, della velocità di informazione $R=F,I_s(\mathbf c,\tilde{\mathbf c})$ (informazione mutua per simbolo per la velocità di simbolo). Teorema di Shannon: se la velocità informativa è $R<C$ esistono codici con probabilità d'errore residua piccola a piacere; se $R>C$ no. BSC senza memoria: $C_s=1+P\log_2P+(1-P)\log_2(1-P)$ bit/simbolo. Canale AWGN: $C=B\log_2(1+\mathrm{SNR})$ con $\mathrm{SNR}=P_{rx}/(N_0B)$; per $B\to\infty$ la capacità non cresce indefinitamente ma tende a $P_{rx}/(N_0\ln2)$. Limite per il rapporto $E_b/N_0$: $\ge\ln2=-1{,}59$ dB.Capacità di canale →) e quella che misura la qualità di una previsione (Esercizio - il meteorologo, entropia e informazione mutua).

Definizione (entropia per simbolo, rate, efficienza). Si definisce Hs(x⃗)=H(x⃗)N≤log⁡2MH_s(\vec x)=\frac{H(\vec x)}N\le\log_2M (media "per simbolo", non valore atteso statistico). Se la sorgente emette FsF_s simboli al secondo:

  • bit-rate nominale Rb=Fslog⁡2MR_b=F_s\log_2M (si usano log⁡2M\log_2M bit per simbolo senza codifica);
  • rate di informazione R0=FsHs(x⃗)≤RbR_0=F_sH_s(\vec x)\le R_b (bit di informazione davvero prodotti);
  • efficienza ηx=Hs(x⃗)log⁡2M≤1\eta_x=\frac{H_s(\vec x)}{\log_2M}\le1 e ridondanza 1−ηx1-\eta_x.

Esempio. M=4M=4 con p=(12,14,18,18)p=\left(\frac12,\frac14,\frac18,\frac18\right): H=12+24+38+38=1,75H=\frac12+\frac24+\frac38+\frac38=1{,}75 bit. Con Fs=1000F_s=1000 simboli/s: Rb=2000R_b=2000 bit/s, R0=1750R_0=1750 bit/s, η=1,752=0,875\eta=\frac{1{,}75}2=0{,}875, ridondanza 12,5%12{,}5\%.

Codifica di sorgente

Definizione (codice di sorgente). Una sorgente emette parole x⃗\vec x di NN simboli (dizionario di ingresso Dx\mathcal D_x, entropia H(x⃗)H(\vec x)). Una mappa μs:Dx→C\mu_s:\mathcal D_x\to\mathcal C associa a ogni parola una parola di codice b⃗\vec b scritta con un alfabeto di MM simboli (alfabeto binario: M=2M=2), e deve essere invertibile (diversamente si perderebbe informazione). L(b⃗)L(\vec b) è la lunghezza di b⃗\vec b; la lunghezza media è L~=E[L(b⃗)]=∑b⃗∈CP(b⃗) L(b⃗),\tilde L=E\left[L(\vec b)\right]=\sum_{\vec b\in\mathcal C}P(\vec b)\,L(\vec b), cioè il valore attesoIl valore atteso E[X] = Σ x p_X(x) è la media dei valori di X pesata con le loro probabilità (esiste se la serie converge assolutamente); per una funzione g vale E[g(X)] = Σ g(x) p_X(x) senza trovare la legge di g(X), ed E è lineare: E[aX + bY + c] = aE[X] + bE[Y] + c.Valore atteso → della lunghezza, vista come variabile aleatoria che dipende dalla parola emessa; e l'efficienza del codice è η=H(x⃗)L~ log⁡2M\eta=\frac{H(\vec x)}{\tilde L\,\log_2M} (per un codice binario η=HL~\eta=\frac{H}{\tilde L}).

Esempio. M=8M=8 simboli equiprobabili: H=3H=3 bit e a lunghezza fissa 3 bit: la codifica non può migliorare (η=1\eta=1). Se invece le probabilità sono (12,14,18,18)\left(\frac12,\frac14,\frac18,\frac18\right), la lunghezza fissa usa 2 bit e H=1,75H=1{,}75: c'è margine per risparmiare 12,5%12{,}5\%.

Definizione (decodificabile, a prefisso). Un codice è univocamente decodificabile se due sequenze diverse di parole di codice non danno mai la stessa stringa di bit. Una parola b⃗\vec b è prefisso di b⃗′\vec b' se L(b⃗)<L(b⃗′)L(\vec b)<L(\vec b') e b⃗\vec b coincide con i primi L(b⃗)L(\vec b) simboli di b⃗′\vec b'. Un codice è a prefisso se nessuna sua parola è prefisso di un'altra.

Esempio. Con A→0, B→1, C→01, D→10A\to0,\ B\to1,\ C\to01,\ D\to10 la stringa 01010011011010101001101101 è ambigua (0 1 0 1…0\,1\,0\,1\dots = ABAB…ABAB\dots ma anche 01 01⋯=CC…01\,01\dots=CC\dots): il codice non è decodificabile. Con A→0, B→10, C→110, D→111A\to0,\ B\to10,\ C\to110,\ D\to111 (a prefisso) la stringa 0 10 110 111 00\,10\,110\,111\,0 si legge in un solo modo.

Teorema (Kraft-McMillan). Sia C\mathcal C un codice con alfabeto di MM simboli e parole di lunghezze l1,…,lKl_1,\dots,l_K.

  1. Se C\mathcal C è decodificabile, allora ∑i=1K1Mli≤1\displaystyle\sum_{i=1}^K\frac1{M^{l_i}}\le1 (equivalentemente E[1ML(b⃗)P(b⃗)]≤1E\left[\frac1{M^{L(\vec b)}P(\vec b)}\right]\le1).
  2. Viceversa, se l1,…,lKl_1,\dots,l_K sono interi con ∑iM−li≤1\sum_iM^{-l_i}\le1 esiste un codice a prefisso con alfabeto MM e quelle lunghezze.

Esempio. Le lunghezze 1,2,3,31,2,3,3 danno 12+14+18+18=1≤1\frac12+\frac14+\frac18+\frac18=1\le1: esiste un codice a prefisso binario (quello dell'esempio sopra con B→10B\to10, C→110C\to110, D→111D\to111). Le lunghezze 2,2,3,3,3,3,4,42,2,3,3,3,3,4,4 (otto parole) danno 2⋅14+4⋅18+2⋅116=12+12+18=98>12\cdot\frac14+4\cdot\frac18+2\cdot\frac1{16}=\frac12+\frac12+\frac18=\frac98>1: nessun codice decodificabile ha queste lunghezze.

Teorema (Shannon). Sia C\mathcal C un codice con alfabeto di MM simboli per parole x⃗\vec x di entropia H(x⃗)H(\vec x).

  1. Se C\mathcal C è decodificabile, L~≥H(x⃗)log⁡2M\displaystyle\tilde L\ge\frac{H(\vec x)}{\log_2M}.
  2. Esiste un codice a prefisso con L~<H(x⃗)log⁡2M+1\displaystyle\tilde L<\frac{H(\vec x)}{\log_2M}+1. Corollario (M=2M=2): L~=H(x⃗)\tilde L=H(\vec x) se e solo se tutte le probabilità sono potenze di 12\frac12.

Esempio. Probabilità (12,14,18,18)\left(\frac12,\frac14,\frac18,\frac18\right) e codice A→0A\to0, B→10B\to10, C→110C\to110, D→111D\to111: H=12⋅1+14⋅2+18⋅3+18⋅3=74=1,75H=\frac12\cdot1+\frac14\cdot2+\frac18\cdot3+\frac18\cdot3=\frac74=1{,}75 e L~=12⋅1+14⋅2+18⋅3+18⋅3=1,75\tilde L=\frac12\cdot1+\frac14\cdot2+\frac18\cdot3+\frac18\cdot3=1{,}75: η=1\eta=1.

Definizione (codifica di Shannon). Le lunghezze sono li=⌈log⁡21Pi⌉l_i=\lceil\log_2\frac1{P_i}\rceil e le parole si assegnano scorrendo l'albero dalle lunghezze più corte alle più lunghe.

Esempio. P=(0,38, 0,19, 0,17, 0,14, 0,12)P=(0{,}38,\ 0{,}19,\ 0{,}17,\ 0{,}14,\ 0{,}12) per A,…,EA,\dots,E. log⁡21P=1,40, 2,40, 2,56, 2,84, 3,06\log_2\frac1P=1{,}40,\ 2{,}40,\ 2{,}56,\ 2{,}84,\ 3{,}06, quindi l=(2,3,3,3,4)l=(2,3,3,3,4) (Kraft: 14+38+116=0,6875≤1\frac14+\frac38+\frac1{16}=0{,}6875\le1). Assegnazione canonica: A=00A=00; poi tre parole di 3 bit: B=010B=010, C=011C=011, D=100D=100; poi la parola di 4 bit E=1010E=1010 (si parte da 101101 e si aggiunge uno 00, perché 100100 è già usata e 101101 è libero). L~=0,38⋅2+(0,19+0,17+0,14)⋅3+0,12⋅4=0,76+1,5+0,48=2,74\tilde L=0{,}38\cdot2+(0{,}19+0{,}17+0{,}14)\cdot3+0{,}12\cdot4=0{,}76+1{,}5+0{,}48=2{,}74 bit, a fronte di H=2,184H=2{,}184 bit: η=0,797\eta=0{,}797.

Teorema 1. In un codice ottimo, se Pa≤PbP_a\le P_b allora La≥LbL_a\ge L_b (la parola più probabile non è più lunga). Teorema 2. In un codice ottimo (binario) i due simboli meno probabili hanno parole di lunghezza massima, uguali in tutto tranne l'ultimo bit (sono "fratelli" nell'albero).

Esempio. Stessi simboli (0,38, 0,19, 0,17, 0,14, 0,120{,}38,\ 0{,}19,\ 0{,}17,\ 0{,}14,\ 0{,}12). Si uniscono D+E=0,26D+E=0{,}26; poi i due minori sono C (0,17)C\,(0{,}17) e B (0,19)B\,(0{,}19): B+C=0,36B+C=0{,}36; poi DE (0,26)DE\,(0{,}26) e BC (0,36)BC\,(0{,}36): 0,620{,}62; infine A (0,38)+0,62=1A\,(0{,}38)+0{,}62=1. Codice: A=0A=0, B=100B=100, C=101C=101, D=110D=110, E=111E=111. L~=0,38⋅1+0,62⋅3=2,24\tilde L=0{,}38\cdot1+0{,}62\cdot3=2{,}24 bit, η=2,1842,24=0,975\eta=\frac{2{,}184}{2{,}24}=0{,}975: è il minimo possibile con parole intere (meglio di Shannon, 2,742{,}74, e di Shannon-Fano, 2,262{,}26).

3. Sistemi a coda

Processi di arrivo e processo di Poisson

Definizione (sistema a coda, queueing system). È un sistema fatto da clienti che arrivano, un'area di accodamento (queue, buffer) dove attendono e un servizio fornito da mm servitori (servers) in parallelo. Si assume che i clienti siano identici, i servitori identici e il servizio instancabile (un servitore libero serve sempre il cliente seguente).

Esempio. Un router riceve pacchetti: i pacchetti sono i clienti, il buffer di uscita è la coda, il collegamento in uscita è un servitore (m=1m=1) che "serve" un pacchetto per il tempo che serve a trasmetterlo. Una centrale con mm operatori è un sistema a mm servitori.

Definizione (processo di arrivo). Il nn-esimo cliente CnC_n arriva all'istante tnt_n (t0t_0 è l'istante di riferimento). Il tempo di interarrivo è τn=tn−tn−1\tau_n=t_n-t_{n-1}. Il processo di punto è la successione (aleatoria) degli istanti tnt_n, cioè una sequenza di impulsi di Dirac in tnt_n; il processo di conteggio A(t)A(t) è il numero di arrivi in [0,t][0,t] (una funzione a gradini che sale di 1 a ogni arrivo, il cui "derivato" è il processo di punto: A(t)=∫0t∑nδ(u−tn) duA(t)=\int_0^t\sum_n\delta(u-t_n)\,du, Delta di Dirac e derivate generalizzateLa delta di Dirac $\delta(t)$ è l'impulso ideale: area 1 concentrata in un punto, definita dalla proprietà rivelatrice $\int x(t)\delta(t-t_0)dt = x(t_0)$. Nel discreto la delta di Kronecker vale 1 in $n=0$. La derivata (generalizzata) di un salto di ampiezza $\Delta$ contiene una delta di area $\Delta$; così si derivano i segnali a tratti.Delta di Dirac e derivate generalizzate →).

Esempio. Pacchetti con mτ=0,5m_\tau=0{,}5 s: λ=2\lambda=2 pacchetti/s. Se arrivano 9090 clienti all'ora λ=903600=0,025\lambda=\frac{90}{3600}=0{,}025 s−1^{-1}, e mτ=40m_\tau=40 s.

Grafico interattivo: Densità del tempo di interarrivo (media 1, λ = 1): esponenziale (Poisson, k = 1), Erlang-2 e Erlang-5 (tasso kλ per ogni fase). Al crescere di k la densità si stringe attorno alla media 1: gli arrivi diventano sempre più regolari, fino al caso deterministico

Definizione (processo di Poisson). Un processo di conteggio A(t)A(t) è di Poisson se il numero di arrivi in intervalli disgiunti è (1) indipendente e (2) di Poisson con parametro ∫Jλ(t) dt\int_{\mathcal J}\lambda(t)\,dt per l'intervallo J\mathcal J. È omogeneo se λ(t)=λ\lambda(t)=\lambda. In un intervallo di durata TT vale P[k arrivi in T]=(λT)kk!e−λT,E=Var⁡=λT.P[k\text{ arrivi in }T]=\frac{(\lambda T)^k}{k!}e^{-\lambda T},\qquad E=\operatorname{Var}=\lambda T.

Grafico interattivo: Probabilità del numero k di arrivi in un intervallo con media λT = 3 (Poisson), istogramma con una barra per ogni k: massimo 0,224 per k = 2 e 3, coda lunga a destra; P[0] = e^(-3) = 0,0498

Teorema. Gli interarrivi di un processo di Poisson omogeneo di tasso λ\lambda sono i.i.d. con densità esponenziale pτ(a)=λe−λa1(a)p_\tau(a)=\lambda e^{-\lambda a}\mathbb 1(a), funzione di distribuzione Pτ(a)=1−e−λaP_\tau(a)=1-e^{-\lambda a} e media E[τ]=1λE[\tau]=\frac1\lambda.

Proprietà (memoryless). Per un interarrivo esponenziale P[τ≤a∣τ≥s]=P[τ≤a−s]P[\tau\le a\mid\tau\ge s]=P[\tau\le a-s] per a>sa>s: l'attesa residua ha la stessa distribuzione, traslata, indipendentemente da quanto si è già aspettato.

Esempio. λ=2\lambda=2 s−1^{-1}. Probabilità che l'attesa superi 1,5 s dato che è già durata 1 s: P[τ>1,5∣τ>1]=e−3e−2=e−1=0,368=P[τ>0,5]P[\tau>1{,}5\mid\tau>1]=\frac{e^{-3}}{e^{-2}}=e^{-1}=0{,}368=P[\tau>0{,}5].

Definizione (processo di servizio). Il cliente CnC_n occupa un servitore per un tempo di servizio yny_n. Si suppone che i yny_n siano i.i.d., con densità pyp_y e funzione di distribuzione PyP_y, indipendenti dagli arrivi. Il tasso di servizio di un servitore è μ=1E[y]=1my[clienti/s],\mu=\frac1{E[y]}=\frac1{m_y}\quad[\text{clienti/s}], il numero di clienti che servirebbe al secondo se avesse sempre da lavorare. Con mm servitori in parallelo il tasso massimo è mμm\mu.

Esempio. Rb=50R_b=50 kbit/s e pacchetti di 10001000 bit: μ=50 0001000=50\mu=\frac{50\,000}{1000}=50 pacchetti/s, tempo di servizio 2020 ms.

Sistemi a coda M-M-1 e M-M-m

Formula di Erlang C. La probabilità che un cliente che arriva trovi tutti i servitori occupati (e debba attendere) è, per PASTA, C=P[x≥m]=∑k≥mπk=πm1−ρ=Gmm! (1−ρ) π0.C=P[x\ge m]=\sum_{k\ge m}\pi_k=\frac{\pi_m}{1-\rho}=\frac{G^m}{m!\,(1-\rho)}\,\pi_0.

Esempio. m=2m=2, μ=1\mu=1 s−1^{-1}, λ=1,6\lambda=1{,}6 s−1^{-1}: G=1,6G=1{,}6, ρ=0,8\rho=0{,}8. π0=[1+1,6+1,622⋅10,2]−1=19=0,1111\pi_0=\left[1+1{,}6+\frac{1{,}6^2}{2}\cdot\frac1{0{,}2}\right]^{-1}=\frac1{9}=0{,}1111; C=G22(1−ρ)π0=1,280,2⋅19=0,711C=\frac{G^2}{2(1-\rho)}\pi_0=\frac{1{,}28}{0{,}2}\cdot\frac19=0{,}711. E[q]=0,711⋅1,60,4=2,844E[q]=\frac{0{,}711\cdot1{,}6}{0{,}4}=2{,}844; E[x]=4,444E[x]=4{,}444; E[w]=0,7112−1,6=1,778E[w]=\frac{0{,}711}{2-1{,}6}=1{,}778 s; E[s]=2,778E[s]=2{,}778 s. (Una simulazione con 3⋅1053\cdot10^5 clienti dà E[w]=1,75E[w]=1{,}75 e E[s]=2,75E[s]=2{,}75.)

Grafico interattivo: Probabilità di accodamento (Erlang C) in funzione del fattore di carico ρ = λ/(mμ) per m = 1, 2, 3 servitori: a parità di ρ, più servitori significano meno probabilità di dover attendere (m = 1: C = ρ; m = 2: 2ρ²/(1+ρ); m = 3: 4,5ρ³/(1+2ρ+1,5ρ²)); in ρ = 0,8 valgono 0,8, 0,711 e 0,647

Sistemi a coda M-G-1 e formula di Little

Definizione (stabilità). Un sistema è stabile se lim⁡t→∞P[x(t)=k]=πk\lim_{t\to\infty}P[x(t)=k]=\pi_k esiste, con ∑kπk=1\sum_k\pi_k=1, e non dipende dallo stato iniziale x(0)x(0). Se x(t)→∞x(t)\to\infty le πk\pi_k sono tutte 00 e il sistema è esplosivo (instabile).

Esempio. Con μ=1000\mu=1000 pacchetti/s: se λ=800\lambda=800, ρ=0,8<1\rho=0{,}8<1, η=800\eta=800 pacchetti/s e S=0,8S=0{,}8 (il servitore è occupato l'80% del tempo). Se λ=1200\lambda=1200, ρ=1,2\rho=1{,}2: instabile, escono solo η=1000\eta=1000 pacchetti/s (S=1S=1) e la coda cresce di 200200 pacchetti al secondo.

Teorema (formula di Little). In una struttura "conservativa" (che non crea né distrugge clienti), se i valori medi esistono, il numero medio di clienti presenti è uguale al tasso di ingresso per il tempo medio di permanenza: E[x]=λ E[s].\boxed{E[x]=\lambda\,E[s].} Non fa ipotesi sulla distribuzione di arrivi e servizi, sulla disciplina (anche non FIFO), sul numero di servitori, né sulla dipendenza tra arrivi e servizio. Vale se i processi sono ergodici, in modo che le medie temporali coincidano con quelle statistiche.

Esempio. In un router entrano λ=500\lambda=500 pacchetti/s e in media se ne trovano E[x]=10E[x]=10 nel sistema: ogni pacchetto resta in media E[s]=10500=20E[s]=\frac{10}{500}=20 ms. Se la trasmissione di un pacchetto dura 1μ=1\frac1\mu=1 ms, ne aspetta E[w]=20−1=19E[w]=20-1=19 ms in coda, e in coda ci sono E[q]=500⋅0,019=9,5E[q]=500\cdot0{,}019=9{,}5 pacchetti; il servitore è occupato per E[z]=500⋅0,001=0,5E[z]=500\cdot0{,}001=0{,}5 del tempo (9,5+0,5=109{,}5+0{,}5=10 ✓). Little non dice com'è fatto il sistema: lega solo le tre medie.

Formula di Pollaczek-Khinchin. E[w]=λ E[y2]2(1−ρ)\boxed{E[w]=\frac{\lambda\,E[y^2]}{2(1-\rho)}}

Esempio. Collegamento da 11 Mbit/s, λ=800\lambda=800 pacchetti/s, pacchetti da 10001000 bit (μ=1000\mu=1000 pacchetti/s, ρ=0,8\rho=0{,}8). M/D/1 (lunghezza fissa): E[w]=0,82⋅1000⋅0,2=2E[w]=\frac{0{,}8}{2\cdot1000\cdot0{,}2}=2 ms, E[s]=3E[s]=3 ms, E[x]=0,8+0,640,4=2,4E[x]=0{,}8+\frac{0{,}64}{0{,}4}=2{,}4 pacchetti (Little: 800⋅0,003=2,4800\cdot0{,}003=2{,}4 ✓). M/M/1 (lunghezza esponenziale di media 10001000 bit): E[w]=4E[w]=4 ms, E[s]=5E[s]=5 ms, E[x]=4E[x]=4. Con servizio uniforme in [0,2/μ][0,2/\mu] (E[y2]=43μ2E[y^2]=\frac4{3\mu^2}, c2=13c^2=\frac13): E[w]=1+1/32⋅4=2,67E[w]=\frac{1+1/3}2\cdot4=2{,}67 ms (una simulazione con 6⋅1056\cdot10^5 clienti dà 2,662{,}66). Altro esempio, pacchetti fissi con λ=50\lambda=50 pacchetti/s e μ=100\mu=100 (ρ=0,5\rho=0{,}5): E[w]=0,52⋅100⋅0,5=5E[w]=\frac{0{,}5}{2\cdot100\cdot0{,}5}=5 ms, E[s]=15E[s]=15 ms, E[x]=0,5+0,251=0,75E[x]=0{,}5+\frac{0{,}25}{1}=0{,}75.

Grafico interattivo: Tempo medio nel sistema normalizzato E[s]·μ in funzione del fattore di carico ρ: M/M/1, 1/(1−ρ), e M/D/1, 1 + ρ/(2(1−ρ)). Entrambe divergono per ρ → 1; a ρ = 0,8 valgono 5 e 3

4. Mezzi trasmissivi

Potenza elettrica, impedenza e adattamento di carico

Formula (potenza elettrica e densità di potenza elettrica). P=∫−∞+∞pv(f) df,pv(f)=Pv(f) R(f)∣Z(f)∣2[W/Hz].P=\int_{-\infty}^{+\infty}p_v(f)\,df,\qquad p_v(f)=\mathcal P_v(f)\,\frac{R(f)}{\lvert Z(f)\rvert^2}\quad[\text{W/Hz}]. Se vv è limitata alla banda B\mathcal B (di frequenze positive, di larghezza BB), poiché pv(f)p_v(f) è pari: P=2∫Bpv(f) dfP=2\int_{\mathcal B}p_v(f)\,df.

Esempio. Su un'impedenza puramente resistiva R=50 ΩR=50\ \Omega una tensione ha PSD costante Pv=10−6\mathcal P_v=10^{-6} V2^2/Hz per ∣f∣<B=100|f|<B=100 kHz. Potenza statistica: Mv=2B Pv=2⋅105⋅10−6=0,2M_v=2B\,\mathcal P_v=2\cdot10^5\cdot10^{-6}=0{,}2 V2^2. Potenza elettrica: P=MvR=0,250=4P=\frac{M_v}{R}=\frac{0{,}2}{50}=4 mW =6,02=6{,}02 dBm.

Teorema (massimo trasferimento di potenza, load matching). La potenza trasferita al carico è massima se ZL(f)=ZS∗(f)(RL=RS, XL=−XS).Z_L(f)=Z_S^*(f)\qquad(R_L=R_S,\ X_L=-X_S). Il carico deve avere la stessa resistenza e la reattanza opposta: è il coniugato, non l'impedenza uguale.

Esempio. Sorgente con ZS=50+j30 ΩZ_S=50+j30\ \Omega: il carico ottimo è ZL=50−j30 ΩZ_L=50-j30\ \Omega. Con ZL=50+j30 ΩZ_L=50+j30\ \Omega (uguale invece che coniugata) il denominatore vale (100)2+(60)2=13 600(100)^2+(60)^2=13\,600 e non (100)2=10 000(100)^2=10\,000: la potenza trasferita è 10 00013 600=74%\frac{10\,000}{13\,600}=74\% del massimo.

Grafico interattivo: Frazione della potenza massima trasferita al carico in funzione di ρ = R_L/R_S (con le reattanze compensate): massimo 1 per ρ = 1, vale 8/9 = 0,889 per ρ = 1/2 o ρ = 2, e tende a 0 per ρ → 0 (cortocircuito) e ρ → ∞ (circuito aperto)

Doppi bipoli, guadagno e attenuazione

Definizione (guadagno di potenza). g(f)=pvout(f)pvin(f)(rapporto tra le densitaˋ di potenza elettrica in uscita e in ingresso).g(f)=\frac{p_{v_{out}}(f)}{p_{v_{in}}(f)}\qquad(\text{rapporto tra le densità di potenza elettrica in uscita e in ingresso}). Quando g(f)<1g(f)<1 (il doppio bipolo dissipa invece di amplificare, per esempio un cavo) è più comodo usare l'attenuazione a(f)=1g(f).a(f)=\frac1{g(f)} .

Esempio. Un cavo che lascia passare il 10% della potenza ha g=0,1⇒gdB=−10g=0{,}1\Rightarrow g_{dB}=-10 dB, cioè a=10⇒adB=+10a=10\Rightarrow a_{dB}=+10 dB. Un amplificatore con g=100g=100 ha gdB=+20g_{dB}=+20 dB.

Grafico interattivo: Scala dei decibel: guadagno in dB, 10·log₁₀(g), in funzione del guadagno lineare g (asse orizzontale logaritmico). Moltiplicare g per 10 aggiunge sempre 10 dB; g = 1 (nessuna variazione) corrisponde a 0 dB; g = 2 a circa 3 dB; g < 1 (attenuazione) dà dB negativi

Rumore termico, temperatura e cifra di rumore

Formula (Friis). Tc=T1+T2g1+T3g1g2+⋯ ,Fc=F1+F2−1g1+F3−1g1g2+⋯ ,gc=g1g2g3⋯T_c=T_1+\frac{T_2}{g_1}+\frac{T_3}{g_1g_2}+\cdots,\qquad F_c=F_1+\frac{F_2-1}{g_1}+\frac{F_3-1}{g_1g_2}+\cdots,\qquad g_c=g_1g_2g_3\cdots (tutte le grandezze in lineare).

Grafico interattivo: Cifra di rumore (in dB) di una cascata di due stadi in funzione del guadagno g₁ (in dB) del primo, con F₁ = 3 dB e F₂ = 10 dB: F = F₁ + (F₂ − 1)/g₁. Con g₁ = 0 dB il secondo stadio pesa tutto (F ≈ 11 dB); aumentando g₁ il secondo quasi sparisce e F tende a F₁ = 3 dB

Link budget

Formula (link budget in dB). SNRdB=(Ptx)dBm+114−(ach)dB−(Frc)dB−10log⁡10BMHz.\text{SNR}_{dB}=(P_{tx})_{dBm}+114-(a_{ch})_{dB}-(F_{rc})_{dB}-10\log_{10}B_{MHz}.

Esempio 1 (radio locale). Ptx=10P_{tx}=10 mW =10=10 dBm, ach=90a_{ch}=90 dB, Frc=17F_{rc}=17 dB, B=60B=60 kHz =0,06=0{,}06 MHz (10log⁡100,06=−12,210\log_{10}0{,}06=-12{,}2): SNRdB=10+114−90−17+12,2=29,2 dB (≈830).\text{SNR}_{dB}=10+114-90-17+12{,}2=29{,}2\ \text{dB}\ (\approx830). Verifica in lineare: 10−2/1091,38⋅10−23⋅290⋅50,1⋅6⋅104=10−111,20⋅10−14=830\frac{10^{-2}/10^{9}}{1{,}38\cdot10^{-23}\cdot290\cdot50{,}1\cdot6\cdot10^4}=\frac{10^{-11}}{1{,}20\cdot10^{-14}}=830 ✓.

5. Modulazione digitale

Spazio dei segnali e Gram-Schmidt

Definizione (prodotto scalare, norma, energia). ⟨x,y⟩=∫−∞+∞x(t) y∗(t) dt,Ex=⟨x,x⟩=∫−∞+∞∣x(t)∣2dt,∥x∥=Ex.\langle x,y\rangle=\int_{-\infty}^{+\infty}x(t)\,y^*(t)\,dt,\qquad E_x=\langle x,x\rangle=\int_{-\infty}^{+\infty}\lvert x(t)\rvert^2dt,\qquad\lVert x\rVert=\sqrt{E_x}. Il quadrato della norma è l'energia del segnale; due segnali sono ortogonali se ⟨x,y⟩=0\langle x,y\rangle=0.

Esempio. s1=Arect⁡(t−T/2T)s_1=A\operatorname{rect}\left(\frac{t-T/2}T\right) (ampiezza AA per 0<t<T0<t<T): E1=∫0TA2dt=A2TE_1=\int_0^TA^2dt=A^2T. Con A=2A=2 V e T=1T=1 ms: E1=4⋅10−3E_1=4\cdot10^{-3} V2^2s (le unità dell'energia sono V2⋅^2\cdots, quelle della norma Vs\sqrt{\text{s}}).

Teorema di irrilevanza. Se il vettore ricevuto si può scrivere r=[r1∣r2]\mathbf r=[\mathbf r_1\mid\mathbf r_2] e la densità di r2\mathbf r_2 condizionata a r1\mathbf r_1 e al simbolo trasmesso a0a_0 non dipende da a0a_0, pr2∣r1,a0(ρ2∣ρ1,j)=pr2∣r1(ρ2∣ρ1),p_{\mathbf r_2|\mathbf r_1,a_0}(\boldsymbol\rho_2\mid\boldsymbol\rho_1,j)=p_{\mathbf r_2|\mathbf r_1}(\boldsymbol\rho_2\mid\boldsymbol\rho_1), allora la decisione ottima può basarsi sul solo r1\mathbf r_1: r2\mathbf r_2 è irrilevante.

Dimostrazione. Il criterio ottimo (MAP: Decisione ottima - criteri MAP e MLIl ricevitore osserva il vettore $\mathbf r$ e deve stimare il simbolo trasmesso $a_0$: lo spazio $\mathbb R^I$ si divide in $M$ regioni di decisione $\mathcal R_j$. La probabilità di decisione corretta è $P[C]=\sum_j\int_{\mathcal R_j}D_j(\boldsymbol\rho),d\boldsymbol\rho$ con $D_j=p_{\mathbf r|a_0}(\boldsymbol\rho|j),p_j$ e si massimizza assegnando ogni $\boldsymbol\rho$ alla regione con $D_j$ più alto: criterio MAP (massimo a posteriori, ottimo). Il criterio ML ($\arg\max_jp_{\mathbf r|a_0}(\boldsymbol\rho|j)$) ignora le probabilità a priori e coincide con MAP per simboli equiprobabili. Il criterio MD (minima distanza, $\arg\min\lVert\boldsymbol\rho-\mathbf s_j\rVert$) coincide con ML se il rumore è AWGN, quindi con simboli equiprobabili e AWGN è ottimo.Decisione ottima - criteri MAP e ML →) massimizza pr∣a0(ρ∣j) pjp_{\mathbf r|a_0}(\boldsymbol\rho\mid j)\,p_j. Scrivendo pr∣a0=pr2∣r1,a0⋅pr1∣a0p_{\mathbf r|a_0}=p_{\mathbf r_2|\mathbf r_1,a_0}\cdot p_{\mathbf r_1|a_0} (regola della catena, Formula delle probabilità totali e formula di BayesSe (A_i) è una partizione di Ω, P(B) = Σ P(B ∣ A_i) P(A_i) (probabilità totali); la formula di Bayes inverte il condizionamento: P(A_k ∣ B) = P(B ∣ A_k) P(A_k) / P(B).Formula delle probabilità totali e formula di Bayes →) il primo fattore non dipende da jj per ipotesi e si può portare fuori dalla massimizzazione: resta max⁡j pr1∣a0(ρ1∣j) pj\max_j\,p_{\mathbf r_1|a_0}(\boldsymbol\rho_1\mid j)\,p_j. □\square

Esempio. Se N02=2⋅10−6\frac{N_0}2=2\cdot10^{-6} V2^2/Hz, la varianza per dimensione è σI2=2⋅10−6\sigma_I^2=2\cdot10^{-6} V2^2s e σI=1,41⋅10−3\sigma_I=1{,}41\cdot10^{-3} Vs\sqrt{\text{s}}. Confrontata con le coordinate dell'esempio di Gram-Schmidt (≈0,03÷0,06\approx0{,}03\div0{,}06 Vs\sqrt{\text{s}}) il rumore è piccolo: la distanza minima dmin=0,577⋅0,0632=0,0365d_{min}=0{,}577\cdot0{,}0632=0{,}0365 Vs\sqrt{\text{s}} vale dmin2σI=12,9\frac{d_{min}}{2\sigma_I}=12{,}9 deviazioni standard, un SNR altissimo.

Decisione ottima - criteri MAP e ML

Criterio MAP (maximum a posteriori probability). a^0=arg⁡max⁡jDj(ρ)=arg⁡max⁡j pr∣a0(ρ∣j) pj,Rj={ρ: j=arg⁡max⁡kDk(ρ)}\boxed{\hat a_0=\arg\max_{j}D_j(\boldsymbol\rho)=\arg\max_j\ p_{\mathbf r|a_0}(\boldsymbol\rho\mid j)\,p_j,\qquad\mathcal R_j=\left\{\boldsymbol\rho:\ j=\arg\max_kD_k(\boldsymbol\rho)\right\}} È il criterio ottimo: massimizza P[C]P[C].

Criterio ML (maximum likelihood). a^0=arg⁡max⁡j pr∣a0(ρ∣j).\hat a_0=\arg\max_j\ p_{\mathbf r|a_0}(\boldsymbol\rho\mid j).

Teorema. Se i simboli sono equiprobabili (pj=1Mp_j=\frac1M) il MAP coincide con il ML (e quindi il ML è ottimo). Dimostrazione: arg⁡max⁡j1M p(ρ∣j)=arg⁡max⁡jp(ρ∣j)\arg\max_j\frac1M\,p(\boldsymbol\rho|j)=\arg\max_jp(\boldsymbol\rho|j), perché 1M\frac1M è una costante e non cambia dove sta il massimo.

Criterio MD (minimum distance). a^0=arg⁡min⁡j dist(ρ,sj)=arg⁡min⁡j∥ρ−sj∥.\hat a_0=\arg\min_j\ \text{dist}(\boldsymbol\rho,\mathbf s_j)=\arg\min_j\lVert\boldsymbol\rho-\mathbf s_j\rVert . Si calcola la distanza del punto ricevuto da ciascun punto della costellazione e si sceglie il più vicino.

Teorema. Se il rumore è AWGN, MD coincide con ML. Dimostrazione. La verosimiglianza è pr∣a0(ρ∣j)=(πN0)−I/2exp⁡(−∥ρ−sj∥2N0)p_{\mathbf r|a_0}(\boldsymbol\rho|j)=(\pi N_0)^{-I/2}\exp\left(-\frac{\lVert\boldsymbol\rho-\mathbf s_j\rVert^2}{N_0}\right). Il fattore davanti non dipende da jj e l'esponenziale è crescente, quindi massimizzare la verosimiglianza equivale a massimizzare −∥ρ−sj∥2-\lVert\boldsymbol\rho-\mathbf s_j\rVert^2, cioè a minimizzare la distanza. □\square

Probabilità d'errore e funzione Q

Definizione (funzione QQ). Se z∼N(0,1)z\sim\mathcal N(0,1), Q(x)=P[z>x]=∫x+∞12πe−t2/2 dt=12erfc⁡(x2).Q(x)=P[z>x]=\int_x^{+\infty}\frac1{\sqrt{2\pi}}e^{-t^2/2}\,dt=\frac12\operatorname{erfc}\left(\frac x{\sqrt2}\right). Per una gaussiana generica w∼N(0,σ2)w\sim\mathcal N(0,\sigma^2): P[w>k]=Q(kσ)P[w>k]=Q\left(\frac k\sigma\right) (Distribuzione gaussiana (normale)N(μ, σ²) ha densità e^(−(x−μ)²/(2σ²)) / √(2πσ²), a campana centrata in μ con larghezza σ; media μ, varianza σ²; si standardizza con Z = (X − μ)/σ ~ N(0, 1) e si calcola P(X ≤ x) = Φ((x − μ)/σ), con Φ(−z) = 1 − Φ(z); aX + b è ancora gaussiana, N(aμ + b, a²σ²).Distribuzione gaussiana (normale) →).

Grafico interattivo: log₁₀ Q(x) in funzione di x (tabella della funzione Q: ogni 1,1 unità di x circa un decimo in meno; Q(3) = 1,3·10⁻³, Q(4,753) = 10⁻⁶, Q(6) = 10⁻⁹). Calcolata con l'approssimazione di Börjesson-Sundberg Q(x) ≈ e^(−x²/2)/(√(2π)·[0,661·x + 0,339·√(x² + 5,51)]), che differisce dal valore esatto meno dello 0,4%

Formula (probabilità d'errore, modulazione binaria). P[E]=Q(d122σI)=σI2=N0/2Q(Es (1−ρ)N0)(E1=E2=Es)\boxed{P[E]=Q\left(\frac{d_{12}}{2\sigma_I}\right)\overset{\sigma_I^2=N_0/2}{=}Q\left(\sqrt{\frac{E_s\,(1-\rho)}{N_0}}\right)}\qquad(E_1=E_2=E_s) Con due soli simboli ogni errore è un errore su un bit: Pbit=P[E]P_{bit}=P[E] (il canale numerico equivalente è un canale binario simmetrico, Canale binario simmetrico, codifica di Gray e probabilità di bitIl canale numerico equivalente a modulatore, canale e demodulatore è un canale binario simmetrico senza memoria (BSC): ogni bit è sbagliato con probabilità $P_{bit}$, indipendentemente dagli altri. Per una modulazione $M$-aria con $n=\log_2M$ bit per simbolo, la probabilità di errore sul simbolo è $P[E]=1-(1-P_{bit})^n\approx nP_{bit}$ e $P_{bit}\le P[E]$. Il legame inverso passa dalla distanza di Hamming tra le parole di bit: $P_{bit}=\sum_k\sum_{j\ne k}p_kP_{j|k}\frac{d_H(\mathbf c_j,\mathbf c_k)}{\log_2M}$. Con la codifica di Gray (simboli adiacenti differiscono per un solo bit) e SNR non troppo basso gli errori più probabili, verso i vicini, sbagliano un solo bit, quindi $P_{bit}\approx\frac{P[E]}{\log_2M}$.Canale binario simmetrico, codifica di Gray e probabilità di bit →).

Trasmissione digitale di segnali analogici (PCM)

Formula (ΛPCM\Lambda_{PCM}). ΛPCM=Λq1+4Pbit(22b−1)(scala lineare!)\boxed{\Lambda_{PCM}=\frac{\Lambda_q}{1+4P_{bit}\left(2^{2b}-1\right)}}\qquad\textbf{(scala lineare!)}

Esempio (b=8b=8, segnale uniforme, Λq=48\Lambda_q=4^8: 48,248{,}2 dB). Con la formula:

Grafico interattivo: SNR complessivo Λ_PCM (dB) di un segnale uniforme a fondo scala in funzione di log₁₀ P_bit, per b = 4, 8, 12 bit: finché P_bit è piccola vale il plateau 6,02·b dB (24, 48, 72 dB) della sola quantizzazione; oltre la soglia P_bit ≈ 1/(4·4^b) tutte le curve si fondono nella retta −10·log₁₀(4P_bit), indipendente da b

6. Controllo d'errore

Codici a blocco - distanza minima, rivelazione e correzione

Definizione (codice a blocco binario (n,k)(n,k)). Una sequenza di kk bit di informazione b=(b1,…,bk)∈Ak\mathbf b=(b_1,\dots,b_k)\in\mathcal A^k (parola di informazione, A=Z2={0,1}\mathcal A=\mathbb Z_2=\{0,1\}), che sono 2k2^k possibili, viene trasformata dalla mappa di codifica μC\mu_C in una parola di codice (codeword) c=μC(b)=(c1,…,cn)∈An\mathbf c=\mu_C(\mathbf b)=(c_1,\dots,c_n)\in\mathcal A^n di n>kn>k bit. Le parole di codice sono ancora 2k2^k ma stanno in uno spazio più grande, di 2n2^n elementi: l'insieme C=μC(Ak)⊂An\mathcal C=\mu_C(\mathcal A^k)\subset\mathcal A^n è il codice. Si chiama tasso di codifica (coding rate) il rapporto k/n<1k/n<1.

Esempio. Il codice a ripetizione con k=1k=1, n=3n=3 ha 21=22^1=2 parole di codice, C={000,111}\mathcal C=\{000,111\}, dentro uno spazio di 23=82^3=8 sequenze: le altre sei (001,010,…001,010,\dots) non sono parole di codice; sono quelle che si ricevono quando il canale sbaglia. Il tasso è 1/31/3.

Definizione (codice sistematico). Un codice è sistematico se la parola di informazione b\mathbf b compare come prefisso della parola di codice: c=( b∣ck+1…cn )\mathbf c=(\,\mathbf b\mid c_{k+1}\dots c_n\,). Gli altri n−kn-k bit sono i bit di ridondanza (o di parità).

Definizione (distanza di Hamming). dH(x,y)d_H(\mathbf x,\mathbf y) è il numero di posizioni in cui x\mathbf x e y\mathbf y differiscono, cioè il numero minimo di salti per passare dall'una all'altra. È una vera distanza (simmetrica, ≥0\ge0, nulla solo se uguali, vale la disuguaglianza triangolare). Esempio. dH(001001,001011)=1d_H(001001,001011)=1; dH(1011,0110)=3d_H(1011,0110)=3 (differiscono nei bit 1,2,41,2,4).

Definizione (distanza minima di un codice). dmin=min⁡γ1,γ2∈Cγ1≠γ2dH(γ1,γ2).d_{min}=\min_{\substack{\boldsymbol\gamma_1,\boldsymbol\gamma_2\in\mathcal C\\ \boldsymbol\gamma_1\ne\boldsymbol\gamma_2}}d_H(\boldsymbol\gamma_1,\boldsymbol\gamma_2). È il minimo numero di salti per andare da un sasso colorato a un altro sasso colorato.

Esempio. Ripetizione m=3m=3: dH(000,111)=3=dmind_H(000,111)=3=d_{min}. Codice {00,11}\{00,11\} (m=2m=2): dmin=2d_{min}=2.

Teorema (potere di rivelazione). Un codice a blocco con distanza minima dmind_{min} usato per rivelare garantisce la rivelazione di ogni situazione con al più dmin−1d_{min}-1 bit sbagliati, cioè con #errori<dmin\#errori<d_{min}. Dimostrazione. Si parte da un sasso colorato (la parola trasmessa) e si fanno meno di dmind_{min} salti (gli errori): non si può arrivare a un altro sasso colorato, perché ogni altro sasso colorato dista almeno dmind_{min}. Quindi la parola ricevuta non è di codice: nessun errore non rivelato è possibile.

Esempio. Un codice con dmin=3d_{min}=3 rivela ogni pattern di 11 o 22 errori; con 33 errori potrebbe finire su un'altra parola di codice (a distanza 33), e l'errore non verrebbe visto.

Teorema (condizione sufficiente per ML = MD). Su un BSC senza memoria con Pbit<1/2P_{bit}<1/2, la decisione ML coincide con quella a distanza minima di Hamming. Dimostrazione. Sia d=dH(γ,c~)d=d_H(\boldsymbol\gamma,\tilde{\mathbf c}) con γ=μC(β)\boldsymbol\gamma=\mu_C(\boldsymbol\beta). Allora pc~∣b(ξ∣β)=Pbit d(1−Pbit)n−d=(Pbit1−Pbit)d(1−Pbit)n.p_{\tilde{\mathbf c}|\mathbf b}(\boldsymbol\xi|\boldsymbol\beta)=P_{bit}^{\,d}(1-P_{bit})^{n-d}=\Big(\frac{P_{bit}}{1-P_{bit}}\Big)^{d}(1-P_{bit})^{n}. Il fattore (1−Pbit)n(1-P_{bit})^n è costante. Se Pbit<12P_{bit}<\frac12 allora Pbit1−Pbit<1\frac{P_{bit}}{1-P_{bit}}<1, e una potenza di un numero minore di 11 è tanto più grande quanto più piccolo è l'esponente dd. Massimizzare la likelihood equivale quindi a minimizzare dd. □\square

Teorema (potere di correzione). Un codice con distanza minima dmind_{min} usato con decodifica a distanza minima garantisce di correggere ogni caso con meno di dmin/2d_{min}/2 bit sbagliati: la correzione è buona se t<dmin/2t<d_{min}/2 errori, cioè t≤dmin−22 (dmin pari),t≤dmin−12 (dmin dispari).t\le\frac{d_{min}-2}{2}\ (d_{min}\text{ pari}),\qquad t\le\frac{d_{min}-1}{2}\ (d_{min}\text{ dispari}). Dimostrazione (per assurdo). Si invia γ1\boldsymbol\gamma_1 e si riceve c~\tilde{\mathbf c} con dH(γ1,c~)=t<dmin/2d_H(\boldsymbol\gamma_1,\tilde{\mathbf c})=t<d_{min}/2. Supponiamo che si decodifichi un'altra parola γ2∈C\boldsymbol\gamma_2\in\mathcal C, γ2≠γ1\boldsymbol\gamma_2\neq\boldsymbol\gamma_1. Poiché MD sceglie la parola più vicina, dH(γ2,c~)≤dH(γ1,c~)=t<dmin/2d_H(\boldsymbol\gamma_2,\tilde{\mathbf c})\le d_H(\boldsymbol\gamma_1,\tilde{\mathbf c})=t<d_{min}/2. Ma per la disuguaglianza triangolare dH(γ2,c~) ≥ dH(γ1,γ2)−dH(γ1,c~) > dmin−dmin2=dmin2,d_H(\boldsymbol\gamma_2,\tilde{\mathbf c})\ \ge\ d_H(\boldsymbol\gamma_1,\boldsymbol\gamma_2)-d_H(\boldsymbol\gamma_1,\tilde{\mathbf c})\ >\ d_{min}-\frac{d_{min}}2=\frac{d_{min}}2, contraddizione. □\square

Esempio. dmin=3d_{min}=3: o si rivelano 22 errori, o se ne corregge 11. dmin=4d_{min}=4: o si rivelano 33 errori, o se ne corregge 11 (la condizione t<2t<2 dà t=1t=1); in quest'ultimo caso si possono ancora rivelare, ma non correggere, i pattern con 22 errori (a metà strada tra due parole di codice).

Teorema (limite di Hamming). Se un codice a blocco (n,k)(n,k) garantisce di correggere fino a tt errori, allora kn≤1−1nlog⁡2∑r=0t(nr)⟺k≤n−log⁡2∑r=0t(nr).\frac kn\le1-\frac1n\log_2\sum_{r=0}^t\binom nr\quad\Longleftrightarrow\quad k\le n-\log_2\sum_{r=0}^t\binom nr. Dimostrazione. Si ricorda che b∈Ak\mathbf b\in\mathcal A^k ha 2k2^k valori, c∈C⊆An\mathbf c\in\mathcal C\subseteq\mathcal A^n ha 2k2^k valori scelti in un insieme di 2n2^n elementi. Garantire la correzione di tt errori significa che se dH(c,c~)=r≤td_H(\mathbf c,\tilde{\mathbf c})=r\le t allora c~∈Rb\tilde{\mathbf c}\in\mathcal R_{\mathbf b} con b=μC−1(c)\mathbf b=\mu_C^{-1}(\mathbf c). Quindi Rb\mathcal R_{\mathbf b} contiene almeno tutte le nn-uple che differiscono da c\mathbf c in al più tt posizioni, che sono ∑r=0t(nr)\sum_{r=0}^t\binom nr (c'è 11 parola con 00 errori, nn con 11 errore, (n2)\binom n2 con 22, …): ∣Rb∣ ≥ ∑r=0t(nr)|\mathcal R_{\mathbf b}|\ \ge\ \sum_{r=0}^t\binom nr (disuguaglianza e non uguaglianza: la regione può contenere altri elementi). La proprietà vale per ogni regione; sommando su tutte le 2k2^k parole di informazione b\mathbf b, ∑b∣Rb∣ ≥ 2k∑r=0t(nr).\sum_{\mathbf b}|\mathcal R_{\mathbf b}|\ \ge\ 2^k\sum_{r=0}^t\binom nr. Ma le Rb\mathcal R_{\mathbf b} sono disgiunte e ricoprono tutto An\mathcal A^n, quindi la somma vale ∣An∣=2n|\mathcal A^n|=2^n. Allora 2n≥2k∑r=0t(nr)2^n\ge2^k\sum_{r=0}^t\binom nr e, prendendo log⁡2\log_2, n≥k+log⁡2∑r=0t(nr)n\ge k+\log_2\sum_{r=0}^t\binom nr. □\square

Esempio. Hamming (7,4)(7,4) con t=1t=1: ∑=(70)+(71)=8\sum=\binom70+\binom71=8, 24⋅8=128=272^4\cdot8=128=2^7: uguaglianza, le regioni ricoprono lo spazio senza avanzi (codice perfetto, Codici di Hamming e CRCIl codice di Hamming $(2^h-1,,2^h-h-1)$ ha come matrice di controllo $H$ che ha per colonne tutte le sequenze non nulle di $h$ bit: colonne distinte e non nulle danno $d_{min}=3$, la sindrome di un errore singolo è la colonna corrispondente, quindi corregge 1 errore (o rivela 2) ed è un codice perfetto ($2^{n-k}=1+n$). Per $(7,4)$ e BSC: errore non rivelato $\simeq7P^3(1-P)^4$, parola sbagliata dopo correzione $\simeq\binom72P^2(1-P)^5$. Il CRC è un codice lineare ciclico usato per sola rivelazione: la parola è $m(x)x^r$ più il resto della divisione per il polinomio generatore $g(x)$ di grado $r$ (modulo 2); rivela ogni errore a burst di lunghezza $\le r$.Codici di Hamming e CRC →). Per un codice con n=15n=15 e t=1t=1: k≤15−log⁡2(16)=11k\le15-\log_2(16)=11 (è l'Hamming (15,11)(15,11)). Per n=25n=25, t=1t=1: ∑=26\sum=26, k≤25−log⁡226=20,30k\le25-\log_2 26=20{,}30, quindi k≤20k\le20: il (25,16)(25,16) del corso, che corregge 11 errore, ha tasso 0,640{,}64 contro un massimo teorico 20/25=0,820/25=0{,}8. Per n=23n=23, t=3t=3 il limite dà k≤12k\le12 (il codice di Golay (23,12)(23,12) lo raggiunge).

Codici a blocco lineari e sindrome

Definizione (peso di Hamming). ∥c∥H=dH(c,0)=\|\mathbf c\|_H=d_H(\mathbf c,\mathbf 0)= numero di bit uguali a 11 in c\mathbf c =∑j=1ncj=\sum_{j=1}^nc_j (somma in R\mathbb R, non modulo 22), dove 0\mathbf 0 è la parola nulla (tutti zeri). Vale dH(γ1,γ2)=∥γ1−γ2∥H=∥γ1+γ2∥Hd_H(\boldsymbol\gamma_1,\boldsymbol\gamma_2)=\|\boldsymbol\gamma_1-\boldsymbol\gamma_2\|_H=\|\boldsymbol\gamma_1+\boldsymbol\gamma_2\|_H.

Esempio. γ1=1011\boldsymbol\gamma_1=1011, γ2=0110\boldsymbol\gamma_2=0110: γ1+γ2=1101\boldsymbol\gamma_1+\boldsymbol\gamma_2=1101, peso 3=dH(γ1,γ2)3=d_H(\boldsymbol\gamma_1,\boldsymbol\gamma_2) (le posizioni 1,2,41,2,4 differiscono).

Definizione (codice lineare). Un codice a blocco è lineare se l'insieme delle parole C=μC(Z2k)\mathcal C=\mu_C(\mathbb Z_2^k) è un sottospazio (Sottospazi vettorialiUn sottospazio vettoriale è un sottoinsieme che è spazio vettoriale con le stesse operazioni: basta che sia chiuso per somma e per prodotto per scalari. Deve contenere il vettore nullo. In R^2 i sottospazi sono {0}, le rette per l'origine e tutto R^2.Sottospazi vettoriali →) di Z2n\mathbb Z_2^n.

Teorema (distanza minima di un codice lineare). In un codice lineare dmind_{min} coincide con il peso di Hamming minimo delle parole non nulle: dmin=min⁡γ∈C∖{0}∥γ∥H.d_{min}=\min_{\boldsymbol\gamma\in\mathcal C\setminus\{\mathbf0\}}\|\boldsymbol\gamma\|_H. Dimostrazione. Per definizione dmin=min⁡γ1≠γ2dH(γ1,γ2)=min⁡∥γ1−γ2∥Hd_{min}=\min_{\gamma_1\ne\gamma_2}d_H(\gamma_1,\gamma_2)=\min\|\gamma_1-\gamma_2\|_H. Basta mostrare che l'insieme delle differenze γ1−γ2\boldsymbol\gamma_1-\boldsymbol\gamma_2 con γ1≠γ2\boldsymbol\gamma_1\ne\boldsymbol\gamma_2 è esattamente l'insieme delle parole di codice non nulle. Una differenza è una parola di codice (linearità) e non è nulla perché γ1≠γ2\gamma_1\ne\gamma_2. Viceversa, sia γ∈C\boldsymbol\gamma\in\mathcal C non nulla: allora γ=γ−0\boldsymbol\gamma=\boldsymbol\gamma-\mathbf0 è la differenza di due parole del codice, perché 0∈C\mathbf0\in\mathcal C. □\square

Esempio. Il codice μ1\mu_1 dell'Esercizio - Codici (4,2) lineari o no e probabilità di errore non rivelato, {0011,0110,1010,1100}\{0011,0110,1010,1100\}, non è lineare: manca 0\mathbf 0. Il μ2\mu_2, {0000,0110,1011,1101}\{0000,0110,1011,1101\}, lo è: pesi 0,2,3,30,2,3,3, dmin=2d_{min}=2.

Definizione (matrice generatrice). Se si prendono kk parole di codice linearmente indipendenti γ1,…,γk\boldsymbol\gamma_1,\dots,\boldsymbol\gamma_k (Combinazioni lineari e dipendenza lineareUna combinazione lineare è una somma di vettori moltiplicati per scalari. I vettori sono linearmente indipendenti se l'unica combinazione che dà il vettore nullo è quella con tutti i coefficienti nulli; altrimenti sono dipendenti, e allora uno di essi è combinazione lineare degli altri.Combinazioni lineari e dipendenza lineare →) e le si mettono in colonna si ottiene G=[γ1 γ2 … γk]G=[\boldsymbol\gamma_1\ \boldsymbol\gamma_2\ \dots\ \boldsymbol\gamma_k] (n×kn\times k), una matrice generatrice del codice. Le γj\boldsymbol\gamma_j sono una base di C\mathcal C (Generatori e basiDei vettori generano V se ogni vettore di V è loro combinazione lineare; una base è un insieme di generatori linearmente indipendenti, e allora ogni vettore si scrive in modo unico come combinazione dei vettori di base. Lemma dello scambio: i vettori indipendenti non sono mai più dei generatori.Generatori e basi →, DimensioneTutte le basi di uno spazio vettoriale hanno lo stesso numero di vettori, la dimensione (dim K^n = n). Da ogni sistema di generatori si estrae una base, ogni insieme di vettori indipendenti si completa a una base, e in dimensione n bastano n vettori indipendenti (o n generatori) per avere una base.Dimensione →: dim⁡C=k\dim\mathcal C=k).

Esempio. Il codice μ2\mu_2 dell'esercizio, c1=b1c_1=b_1, c2=b2c_2=b_2, c3=b1+b2c_3=b_1+b_2, c4=c2+c3=b1c_4=c_2+c_3=b_1, ha G=(10011110).G=\begin{pmatrix}1&0\\0&1\\1&1\\1&0\end{pmatrix}. La prima colonna è (1,0,1,1)T=1011(1,0,1,1)^T=1011 (la parola associata a b=10\mathbf b=10), la seconda (0,1,1,0)T=0110(0,1,1,0)^T=0110 (per b=01\mathbf b=01); la parola per b=11\mathbf b=11 è la loro somma 11011101, e per b=00\mathbf b=00 si ha 00000000.

Teorema (forma di GG per un codice sistematico). Un codice lineare sistematico ammette una matrice generatrice G=(IkA),G=\begin{pmatrix}I_k\\ A\end{pmatrix}, con IkI_k la matrice identità k×kk\times k e AA una matrice (n−k)×k(n-k)\times k detta matrice di parità. Dimostrazione. Per definizione di sistematico cj=bjc_j=b_j per 1≤j≤k1\le j\le k: le prime kk righe di GG sono IkI_k. Gli altri n−kn-k bit sono combinazioni lineari dei bjb_j e le loro righe formano AA. □\square

Lemma. Ogni codice lineare ha un equivalente sistematico. Idea della dimostrazione. Data una GG a rango pieno, con operazioni elementari su righe e colonne (l'eliminazione di Gauss-Jordan, Eliminazione di GaussCon tre operazioni elementari sulle righe (scambio, moltiplicazione per uno scalare non nullo, somma di un multiplo di un'altra riga) ogni matrice si riduce a scala senza cambiare il rango; serve a calcolare ranghi, risolvere sistemi, trovare relazioni di dipendenza e matrici che riducono a scala.Eliminazione di Gauss →) la si riduce a G′=(IkA)G'=\binom{I_k}{A}.

Teorema (limite di Singleton). Per ogni codice lineare (n,k)(n,k), dmin≤n−k+1d_{min}\le n-k+1. Dimostrazione. Si usa il lemma. Ogni colonna di G′=(IkA)G'=\binom{I_k}{A} è una parola di codice che ha al più un 11 nella parte superiore (IkI_k) e al più n−kn-k uni nella parte inferiore (AA): peso ≤1+(n−k)\le1+(n-k). Quindi esiste una parola non nulla di peso ≤n−k+1\le n-k+1 e dmin≤n−k+1d_{min}\le n-k+1. □\square

Definizione (matrice di controllo di parità). Per un codice lineare (n,k)(n,k) la matrice di controllo di parità è una matrice HH di tipo ℓ×n\ell\times n (in generale ℓ≥n−k\ell\ge n-k, in pratica ℓ=n−k\ell=n-k) tale che Hc=0  ⟺  c∈C,H\mathbf c=\mathbf 0\iff\mathbf c\in\mathcal C, dove 0\mathbf 0 è il vettore nullo con ℓ\ell elementi. (Non va confusa con la matrice di parità AA, che è un'altra cosa.)

Teorema (proprietà caratteristica). HH (ℓ×n\ell\times n) è la matrice di controllo del codice con matrice generatrice GG se e solo se HG=OHG=O e rank(H)=n−k\mathrm{rank}(H)=n-k. Dimostrazione (sketch). (⇒\Rightarrow) GG è fatta di parole di codice, quindi Hγj=0H\boldsymbol\gamma_j=\mathbf0 per ogni colonna: HG=OHG=O (la matrice nulla ℓ×k\ell\times k). (⇐\Leftarrow) C\mathcal C è lo spazio nullo di HH (Nucleo e immagineIl nucleo (vettori mandati in 0) e l'immagine (vettori raggiunti) di una funzione lineare sono sottospazi; f è iniettiva se e solo se Ker f = {0}; dim Ker f + dim Im f = dim V (nullità + rango); l'antimmagine di un vettore è una soluzione particolare più il nucleo.Nucleo e immagine →), che ha dimensione n−rank(H)=n−(n−k)=kn-\mathrm{rank}(H)=n-(n-k)=k; e HG=OHG=O dice che lo span di GG (dimensione kk) è contenuto nel nucleo di HH: avendo la stessa dimensione coincidono. □\square

Teorema (matrice HH di un codice sistematico). Se G=(IkA)G=\binom{I_k}{A} allora H=[ −A∣In−k ]=[ A∣In−k ]in Z2.H=[\,-A\mid I_{n-k}\,]=[\,A\mid I_{n-k}\,]\quad\text{in }\mathbb Z_2. Dimostrazione. HH ha rango n−kn-k per la presenza di In−kI_{n-k}. Inoltre HG=[−A∣In−k](IkA)=−A Ik+In−kA=−A+A=OHG=[-A\mid I_{n-k}]\binom{I_k}{A}=-A\,I_k+I_{n-k}A=-A+A=O. Per la proprietà caratteristica HH è la matrice di controllo. □\square (Il teorema vale anche sui campi non binari, dove il segno conta.)

Esempio. Hamming (7,4)(7,4) (n−k=3n-k=3): H=[A∣I3]=(110110010110100111001).H=[A\mid I_3]=\begin{pmatrix}1&1&0&1&1&0&0\\1&0&1&1&0&1&0\\0&1&1&1&0&0&1\end{pmatrix}. Controllo su γ1=1000110\boldsymbol\gamma_1=1000110: la prima riga di HH somma i bit 1,2,4,51,2,4,5 di γ1\boldsymbol\gamma_1 (1+0+0+1=01+0+0+1=0), la seconda i bit 1,3,4,61,3,4,6 (1+0+0+1=01+0+0+1=0), la terza i bit 2,3,4,72,3,4,7 (0+0+0+0=00+0+0+0=0): Hγ1=0H\boldsymbol\gamma_1=\mathbf0. Lo stesso vale per γ2,γ3,γ4\boldsymbol\gamma_2,\boldsymbol\gamma_3,\boldsymbol\gamma_4 (HG=OHG=O, verificato al calcolatore). Le colonne di HH sono 110, 101, 011, 111, 100, 010, 001110,\ 101,\ 011,\ 111,\ 100,\ 010,\ 001: tutte le 77 sequenze non nulle di 33 bit, e quindi tutte distinte e non nulle.

Definizione (laterale, o coset). Ognuna delle classi della partizione si chiama coset: Z2n\mathbb Z_2^n è partizionato in 2n−k2^{n-k} coset, ciascuno associato a una sindrome e con 2k2^k elementi; uno di essi (sindrome nulla) è l'insieme delle parole di codice C\mathcal C.

Definizione (coset leader). A ogni sindrome σ\boldsymbol\sigma si associa un elemento speciale ε(σ)=arg⁡min⁡c∈Z2n: Hc=σ∥c∥H,\varepsilon(\boldsymbol\sigma)=\arg\min_{\mathbf c\in\mathbb Z_2^n:\ H\mathbf c=\boldsymbol\sigma}\|\mathbf c\|_H, cioè l'elemento del coset di peso di Hamming minimo. Se più elementi hanno peso minimo se ne sceglie uno con una regola qualsiasi. Evidentemente ε(0n−k)=0n\varepsilon(\mathbf0_{n-k})=\mathbf0_n.

Teorema (decodifica a sindrome). Ricevuto c~\tilde{\mathbf c} con sindrome σ=Hc~\boldsymbol\sigma=H\tilde{\mathbf c}, la decodifica a distanza minima (MD) è c^=c~−ε(σ)  (=c~+ε(σ) in Z2).\hat{\mathbf c}=\tilde{\mathbf c}-\varepsilon(\boldsymbol\sigma)\ \ (=\tilde{\mathbf c}+\varepsilon(\boldsymbol\sigma)\text{ in }\mathbb Z_2). Dimostrazione. Primo, c^\hat{\mathbf c} è una parola di codice: Hc^=Hc~−Hε(σ)=σ−σ=0H\hat{\mathbf c}=H\tilde{\mathbf c}-H\varepsilon(\boldsymbol\sigma)=\boldsymbol\sigma-\boldsymbol\sigma=\mathbf0. Poi, come funziona MD? Se C={γ1,…,γ2k}\mathcal C=\{\boldsymbol\gamma_1,\dots,\boldsymbol\gamma_{2^k}\} si fanno 2k2^k ipotesi: c~=γj+e~j\tilde{\mathbf c}=\boldsymbol\gamma_j+\tilde{\mathbf e}_j, dove e~j\tilde{\mathbf e}_j è il possibile vettore d'errore (con un 11 nei bit invertiti), e si sceglie quello con meno uni (distanza di Hamming minima). I vettori e~j\tilde{\mathbf e}_j (1) sono tutti diversi, (2) sono 2k2^k, (3) hanno tutti sindrome σ\boldsymbol\sigma: infatti σ=Hc~=H(γj+e~j)=He~j\boldsymbol\sigma=H\tilde{\mathbf c}=H(\boldsymbol\gamma_j+\tilde{\mathbf e}_j)=H\tilde{\mathbf e}_j. Sono quindi tutto il coset di σ\boldsymbol\sigma, e quello di peso minimo è per definizione ε(σ)\varepsilon(\boldsymbol\sigma). La decodifica MD è c~=c^+ε(σ)\tilde{\mathbf c}=\hat{\mathbf c}+\varepsilon(\boldsymbol\sigma), cioè quanto affermato. □\square

Codici di Hamming e CRC

Definizione (codice di Hamming). Per ogni h≥2h\ge2 è il codice lineare con HH di tipo h×nh\times n che ha per colonne tutte le 2h−12^h-1 sequenze binarie non nulle di hh bit: n=2h−1n=2^h-1, k=n−h=2h−h−1k=n-h=2^h-h-1.

Teorema (proprietà del codice di Hamming). (1) dmin=3d_{min}=3. (2) Corregge ogni errore singolo. (3) Per qualunque pattern di 22 errori la decodifica a sindrome sbaglia. (4) È un codice perfetto: le regioni di decisione sono tutte le sfere di raggio 11 attorno alle parole e coprono esattamente tutto lo spazio. Dimostrazione. (1) Colonne non nulle: nessuna parola di peso 11; colonne distinte: nessuna parola di peso 22 (la somma di due colonne distinte non è nulla). Tra tre colonne ce ne sono sempre dipendenti: prese due colonne distinte ha,hb\mathbf h_a,\mathbf h_b, la loro somma è un'altra colonna non nulla hc\mathbf h_c (perché le colonne sono tutte le sequenze non nulle), e ha+hb+hc=0\mathbf h_a+\mathbf h_b+\mathbf h_c=\mathbf0. Dunque esiste una parola di peso 33: dmin=3d_{min}=3 (si ricordi che dmind_{min} è il numero minimo di colonne di HH linearmente dipendenti). (2) Un errore singolo in jj ha sindrome hj\mathbf h_j, diversa da ogni altra colonna e non nulla: il coset leader è ej\mathbf e_j. (3) Con due errori in aa e bb la sindrome è ha+hb=hc\mathbf h_a+\mathbf h_b=\mathbf h_c: il decodificatore "corregge" la posizione cc introducendo un terzo errore. (4) Le sfere di raggio 11 hanno ciascuna 1+n1+n elementi e sono 2k2^k: 2k(1+n)=2k⋅2h=2n2^k(1+n)=2^k\cdot2^h=2^n, uguaglianza nel limite di Hamming (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 →). □\square

Definizione (codice CRC). Si fissa un polinomio generatore g(x)g(x) di grado rr, con termine noto 11 (per esempio g(x)=x4+x+1↔10011g(x)=x^4+x+1\leftrightarrow10011). Dato il messaggio m(x)m(x) di kk bit, si calcola il resto ρ(x)=(m(x) xr) mod g(x)(deg⁡ρ<r)\rho(x)=\big(m(x)\,x^r\big)\ \mathrm{mod}\ g(x)\qquad(\deg\rho<r) e si trasmette la parola c(x)=m(x) xr+ρ(x)c(x)=m(x)\,x^r+\rho(x), cioè il messaggio seguito dagli rr bit del resto (codice sistematico).

Capacità di canale

Definizione (velocità di informazione attraverso il canale). Se F=1/TF=1/T è la velocità di simbolo, R(c)=F Is(c,c~)[bit/s].R(\mathbf c)=F\,I_s(\mathbf c,\tilde{\mathbf c})\quad[\text{bit/s}]. Non va confusa con la velocità di informazione della sorgente (quella che si legge dall'entropia della sorgente).

Definizione (capacità di Shannon). C=max⁡statistiche di cR(c)\displaystyle C=\max_{\text{statistiche di }\mathbf c}R(\mathbf c).

Teorema (parte diretta). Se R<CR<C allora per ogni δ>0\delta>0 e per nn sufficientemente grande esistono un dizionario Db\mathcal D_b di parole di informazione, una codifica di canale μC\mu_C con parole di lunghezza nn e una decodifica μd\mu_d inversa di μC\mu_C tali che la probabilità d'errore residua sui bit è P[bℓ≠b^ℓ]<δP[b_\ell\ne\hat b_\ell]<\delta.

Teorema (parte inversa). Se R>CR>C allora esiste δ>0\delta>0 tale che in ogni codifica μC\mu_C si ha P[bℓ≠b^ℓ]>δP[b_\ell\ne\hat b_\ell]>\delta.

Esempio. BSC con P=0,1P=0{,}1 (Cs=0,531C_s=0{,}531): un codice con tasso k/n<0,531k/n<0{,}531 può in linea di principio dare errore arbitrariamente piccolo; l'Hamming (7,4)(7,4) ha tasso 4/7=0,571>0,5314/7=0{,}571>0{,}531 e quindi, con questo canale, nessun codice di tasso 0,5710{,}571 potrà mai portare l'errore sotto una soglia positiva; invece un (15,7)(15,7) (tasso 0,4670{,}467) non è escluso dal teorema (non è garantito che esista, ma non è escluso).

7. Livello di collegamento e reti

Accesso al mezzo - ALOHA, CSMA e protocolli deterministici

Definizione (intervallo di vulnerabilità). L'intervallo in cui altre trasmissioni causano collisione. Per l'ALOHA ha durata 2tP2t_P.

Formula (throughput dell'ALOHA puro). S=G e−2G.\boxed{S=G\,e^{-2G}}.

Esempio. G=0,1G=0{,}1: Psuccess=e−0,2=0,819P_{success}=e^{-0{,}2}=0{,}819, S=0,082S=0{,}082; G=0,5G=0{,}5: S=0,184S=0{,}184; G=2G=2: Psuccess=e−4=0,018P_{success}=e^{-4}=0{,}018, S=0,037S=0{,}037 (canale sommerso dalle collisioni).

Grafico interattivo: Throughput S contro traffico offerto G: ALOHA puro ha massimo 1/(2e) ≈ 0,184 in G=1/2, slotted ALOHA 1/e ≈ 0,368 in G=1; oltre il massimo il throughput scende verso zero.

Formula (CSMA non persistente, completamento). Con a=τP/tPa=\tau_P/t_P e traffico offerto GG (se τP=0\tau_P=0, S=G/(1+G)→1S=G/(1+G)\to1 per G→∞G\to\infty): S=G e−aGG(1+2a)+e−aG.S=\frac{G\,e^{-aG}}{G(1+2a)+e^{-aG}}. (È la formula standard, usata per i grafici delle slide: non è dedotta nel corso. Per a=0,01a=0{,}01 il massimo è S≃0,815S\simeq0{,}815 in G≃9,5G\simeq9{,}5; per a=0,1a=0{,}1, S≃0,515S\simeq0{,}515 in G≃2,6G\simeq2{,}6; per a=1a=1, S≃0,144S\simeq0{,}144: peggio dello slotted ALOHA.)

Grafico interattivo: Throughput di CSMA non persistente per a=τ_P/t_P=0,01 e 0,1 contro slotted ALOHA, con G in scala logaritmica: con a piccolo il CSMA arriva a 0,82 (a=0,01), ma con a=0,1 il massimo cala a 0,52.