Salta al contenuto
Note per Studenti Formulario · Fondamenti di Segnali e Telecomunicazioni

FormularioFondamenti di Segnali e Telecomunicazioni: definizioni, teoremi e formule delle note, in ordine di capitolo

In questa pagina 5

1. Probabilità

Probabilità per le telecomunicazioni - eventi e variabili aleatorie discrete

Teorema (probabilità dell'unione). P(x∪y)=P(x)+P(y)−P(x∩y).P(x\cup y)=P(x)+P(y)-P(x\cap y). Se i due eventi sono disgiunti (non possono accadere insieme, P(x∩y)=0P(x\cap y)=0) si riduce a P(x∪y)=P(x)+P(y)P(x\cup y)=P(x)+P(y).

Teorema. Per costanti A,BA,B e v.a. x,yx,y qualsiasi (anche dipendenti): E(Ax+By)=A E(x)+B E(y)E(Ax+By)=A\,E(x)+B\,E(y).

Variabili aleatorie continue - uniforme, gaussiana, esponenziale e funzione Q

Teorema del limite centrale. Siano y1,…,yNy_1,\dots,y_N v.a. indipendenti con la stessa densità, media m=E(yi)m=E(y_i) e varianza σ2=E[(yi−m)2]\sigma^2=E\big[(y_i-m)^2\big]. Allora, al crescere di NN, 1N∑i=1N(yi−m) ⟶ N(0,σ2).\frac1{\sqrt N}\sum_{i=1}^{N}\big(y_i-m\big)\ \longrightarrow\ \mathcal N(0,\sigma^2).

2. Segnali

Segnali a tempo continuo - sinusoidi, rect e trasformazioni dell'asse dei tempi

Definizione (rettangolo). rect⁡(t)={1t∈[−12,12]0altrove\operatorname{rect}(t)=\begin{cases}1&t\in\left[-\frac12,\frac12\right]\\0&\text{altrove}\end{cases} È un impulso di altezza 11 e larghezza 11, centrato in 00. Il numero 3rect⁡(t)3\operatorname{rect}(t) è lo stesso impulso con altezza 33.

Definizione (triangolo). triang⁡(t)={t+1t∈[−1,0)1−tt∈[0,1]0altrove=1−∣t∣  per ∣t∣≤1.\operatorname{triang}(t)=\begin{cases}t+1&t\in[-1,0)\\1-t&t\in[0,1]\\0&\text{altrove}\end{cases}=1-|t|\ \text{ per }|t|\le1. Altezza 11 in t=0t=0, base 22 (da −1-1 a 11), simmetrico.

Grafico interattivo: cos(2π f₀ t)·rect((t − T/2)/T) con T = 1/f₀ = 1: un solo periodo di coseno su [0, T], zero altrove

Campionamento e interpolazione - mantenimento, lineare e ideale

Teorema del campionamento. Se il segnale s(t)s(t) ha banda limitata BB (la sua trasformata di Fourier è nulla per ∣f∣>B|f|>B) e il periodo di campionamento soddisfa T≤12B⟺Fs=1T≥2B,T\le\frac1{2B}\qquad\Longleftrightarrow\qquad F_s=\frac1T\ge2B, allora il segnale si ricostruisce esattamente dai suoi campioni con l'interpolatore ideale: s(t)=∑m=−∞+∞s(mT) sinc⁡(t−mTT).s(t)=\sum_{m=-\infty}^{+\infty}s(mT)\,\operatorname{sinc}\Big(\frac{t-mT}{T}\Big).

3. Modulazione digitale e spazio dei segnali

Demodulatore digitale - proiezione del rumore e teorema di irrilevanza

Teorema (irrilevanza). Se, dato il simbolo mm, r(II)\mathbf r^{(II)} è indipendente da r(I)\mathbf r^{(I)}, e inoltre la densità di r(II)\mathbf r^{(II)} non dipende dal simbolo, pr(II)∣a0(r(II)∣m)=pr(II)(r(II))p_{\mathbf r^{(II)}|a_0}(\mathbf r^{(II)}\mid m)=p_{\mathbf r^{(II)}}(\mathbf r^{(II)}) per ogni mm, allora a^0=arg⁡max⁡m pr(I)∣a0(r(I)∣m)Pa0(m):\hat a_0=\arg\max_m\ p_{\mathbf r^{(I)}|a_0}\left(\mathbf r^{(I)}\mid m\right)P_{a_0}(m): la parte r(II)\mathbf r^{(II)} è irrilevante e può essere scartata.

6. Codifica di canale

Controllo d'errore - ARQ, FEC e codici a blocco sul canale binario simmetrico

Definizione. Un codice a blocco (n,k)(n,k) associa a ogni sequenza di kk bit di informazione b=[b1,…,bk]T\mathbf b=[b_1,\dots,b_k]^T una parola di codice c=[c1,…,cn]T\mathbf c=[c_1,\dots,c_n]^T di n>kn>k bit, in modo biunivoco. L'insieme delle parole è il codice C\mathcal C.

Definizione. Un canale binario simmetrico senza memoria (BSC, binary symmetric channel) ha ingresso xx e uscita yy in {0,1}\{0,1\} e P(y=1∣x=0)=P(y=0∣x=1)=Pbit,yi=xi⊕εi,P(y=1\mid x=0)=P(y=0\mid x=1)=P_{bit},\qquad y_i=x_i\oplus\varepsilon_i, con gli errori εi∈{0,1}\varepsilon_i\in\{0,1\} indipendenti nel tempo, P(εi=1)=PbitP(\varepsilon_i=1)=P_{bit}.

Definizione. La distanza di Hamming tra due sequenze binarie α,β\boldsymbol\alpha,\boldsymbol\beta di nn bit è il numero di posizioni in cui sono diverse: dH(α,β)=∑i=1n(αi⊕βi),d_H(\boldsymbol\alpha,\boldsymbol\beta)=\sum_{i=1}^n(\alpha_i\oplus\beta_i), dove αi⊕βi\alpha_i\oplus\beta_i vale 11 se i bit sono diversi e 00 se sono uguali ("differenza binaria").

Definizione. La distanza minima del codice è la minima distanza di Hamming tra due parole diverse: dmin=min⁡α,β∈C, α≠βdH(α,β).d_{min}=\min_{\boldsymbol\alpha,\boldsymbol\beta\in\mathcal C,\ \boldsymbol\alpha\ne\boldsymbol\beta}d_H(\boldsymbol\alpha,\boldsymbol\beta).

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

Definizione. Il tasso (rate) del codice è R=kn≤1R=\dfrac kn\le1.

Codici a blocco lineari - matrice generatrice, forma sistematica e bound di Singleton

Definizione. La norma (peso) di Hamming ∥x∥H=wH(x)\|\mathbf x\|_H=w_H(\mathbf x) è il numero di 11 presenti nella sequenza. Valgono ∥x∥H≥0\|\mathbf x\|_H\ge0, ∥x∥H=0  ⟺  x=0\|\mathbf x\|_H=0\iff\mathbf x=\mathbf0, ∥αx∥H=∣α∣ ∥x∥H\|\alpha\mathbf x\|_H=|\alpha|\,\|\mathbf x\|_H e la disuguaglianza triangolare ∥x+y∥H≤∥x∥H+∥y∥H\|\mathbf x+\mathbf y\|_H\le\|\mathbf x\|_H+\|\mathbf y\|_H.

Definizione. Un codice a blocco C={c1,…,c2k}\mathcal C=\{\mathbf c_1,\dots,\mathbf c_{2^k}\} è lineare se è un sottospazio lineare dello spazio delle sequenze di lunghezza nn (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 →): contiene la parola nulla e la somma di due parole qualunque è ancora una parola.

Definizione. Una matrice GG di dimensioni n×kn\times k è la matrice generatrice di un codice lineare se ha rango kk e c=G b  ⟺  c∈C(b∈{0,1}k).\mathbf c=G\,\mathbf b\iff\mathbf c\in\mathcal C\qquad(\mathbf b\in\{0,1\}^k). Il bit ii-esimo della parola è il prodotto della riga ii di GG per b\mathbf b: ci=Gi,⋅ bc_i=\mathbf G_{i,\cdot}\,\mathbf b (somma modulo 2).

Esempio. Da G=[10011011]G=\begin{bmatrix}1&0\\0&1\\1&0\\1&1\end{bmatrix} (parole 0000, 1011, 0101, 11100000,\,1011,\,0101,\,1110) scambiando le righe 11 e 44 si ottengono le parole 0000, 1011, 1100, 01110000,\,1011,\,1100,\,0111: insieme diverso, dmin=2d_{min}=2 in entrambi i casi.

Definizione. GG è in forma sistematica se G=[IkA],A di dimensioni (n−k)×k,Gb=[bAb].G=\begin{bmatrix}I_k\\A\end{bmatrix},\qquad A\ \text{di dimensioni }(n-k)\times k,\qquad G\mathbf b=\begin{bmatrix}\mathbf b\\A\mathbf b\end{bmatrix}. I primi kk bit della parola sono i bit di informazione, gli altri n−kn-k sono i bit di parità p=Ab\mathbf p=A\mathbf b.

Definizione. Il peso di Hamming del codice è wH(C)=min⁡c∈C, c≠0wH(c)w_H(\mathcal C)=\min_{\mathbf c\in\mathcal C,\ \mathbf c\ne\mathbf0}w_H(\mathbf c), il minimo numero di 11 tra le parole non nulle.

Teorema. In un codice lineare la distanza minima è uguale al peso minimo: dmin=wH(C)d_{min}=w_H(\mathcal C).

Dimostrazione. dmin=min⁡ci≠cjdH(ci,cj)=min⁡ci≠cj∥ci−cj∥Hd_{min}=\min_{\mathbf c_i\ne\mathbf c_j}d_H(\mathbf c_i,\mathbf c_j)=\min_{\mathbf c_i\ne\mathbf c_j}\|\mathbf c_i-\mathbf c_j\|_H. Il codice è lineare, quindi ci−cj=ci+cj\mathbf c_i-\mathbf c_j=\mathbf c_i+\mathbf c_j è una parola di codice, non nulla perché ci≠cj\mathbf c_i\ne\mathbf c_j; viceversa ogni parola non nulla c\mathbf c si ottiene come c−0\mathbf c-\mathbf 0 con 0∈C\mathbf 0\in\mathcal C. Quindi il minimo sulle coppie è il minimo sulle parole non nulle: min⁡c≠0∥c∥H=wH(C)\min_{\mathbf c\ne\mathbf 0}\|\mathbf c\|_H=w_H(\mathcal C). □\square

Teorema (bound di Singleton). Per un codice lineare (n,k)(n,k) dmin≤n−k+1.d_{min}\le n-k+1.

Dimostrazione. Si sceglie una GG in forma sistematica (si può sempre: cambia al più l'ordine dei bit, non dmind_{min}). La colonna ii è [eiA⋅,i]\begin{bmatrix}\mathbf e_i\\A_{\cdot,i}\end{bmatrix}, con ei\mathbf e_i il vettore con un solo 11 in posizione ii e A⋅,iA_{\cdot,i} lunga n−kn-k. Il suo peso è al più 1+(n−k)1+(n-k). Essendo una parola di codice, dmin≤wH≤1+n−kd_{min}\le w_H\le1+n-k. □\square

Matrice di controllo di parità, sindrome e coset

Definizione. Una matrice HH di dimensioni ℓ×n\ell\times n è una matrice di controllo di parità del codice lineare C\mathcal C se Hr=0  ⟺  r∈C(r∈{0,1}n).H\mathbf r=\mathbf 0\iff\mathbf r\in\mathcal C\qquad(\mathbf r\in\{0,1\}^n).

Teorema. HH è una matrice di controllo di parità del codice con generatrice GG se e solo se HG=0erango⁡(H)=n−k.HG=0\qquad\text{e}\qquad\operatorname{rango}(H)=n-k. (dimensioni: HH è ℓ×n\ell\times n, GG è n×kn\times k, 00 è ℓ×k\ell\times k; da cui ℓ≥n−k\ell\ge n-k.)

Dimostrazione (⇐\Leftarrow). Se r∈C\mathbf r\in\mathcal C allora r=Gb\mathbf r=G\mathbf b e Hr=(HG)b=0H\mathbf r=(HG)\mathbf b=\mathbf 0. Viceversa, se Hr=0H\mathbf r=\mathbf 0, r\mathbf r sta nello 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 per il teorema della dimensione ha dimensione n−rango⁡(H)=kn-\operatorname{rango}(H)=k, quindi contiene 2k2^k sequenze. Ma le 2k2^k parole di codice stanno già nello spazio nullo (primo verso): non c'è posto per altre. Quindi Hr=0⇒r∈CH\mathbf r=\mathbf 0\Rightarrow\mathbf r\in\mathcal C.

(⇒\Rightarrow). Le colonne di GG sono parole di codice, e Hr=0H\mathbf r=\mathbf 0 per ogni parola, quindi HG=0HG=0. Lo spazio nullo di HH è il codice, di dimensione kk, quindi il rango di HH è n−kn-k. □\square

Teorema. dmind_{min} è il minimo numero di colonne di HH linearmente dipendenti (che sommano a 0\mathbf 0).

Definizione. Data la sequenza ricevuta γ\boldsymbol\gamma (lunga nn), la sindrome è σ=Hγ(n−k bit).\boldsymbol\sigma=H\boldsymbol\gamma\qquad(n-k\text{ bit}).

Definizione. L'insieme ε0+C\boldsymbol\varepsilon_0+\mathcal C degli errori con sindrome σ\boldsymbol\sigma è il coset associato a σ\boldsymbol\sigma. Un coset leader è un vettore del coset di peso di Hamming minimo.

Codici di Hamming e bound di Hamming

Definizione. Un codice di Hamming è un codice lineare la cui matrice di controllo di parità HH ha per colonne tutte le sequenze binarie non nulle lunghe n−kn-k, ciascuna presa una sola volta. L'ordine delle colonne non conta.

Teorema. Ogni codice di Hamming ha dmin=3d_{min}=3.

Dimostrazione. Per il teorema della sezione 2 di Matrice di controllo di parità, sindrome e cosetLa matrice di controllo di parità $H$ ($\ell\times n$) soddisfa $H\mathbf r=\mathbf 0\iff\mathbf r\in\mathcal C$; per un codice con generatrice $G$ ($n\times k$) vale $HG=0$ con $\operatorname{rango}(H)=n-k$, e se $G=\begin{bmatrix}I_k\A\end{bmatrix}$ allora $H=[A\mid I_{n-k}]$. La distanza minima è il minimo numero di colonne di $H$ linearmente dipendenti. La sindrome $\boldsymbol\sigma=H\boldsymbol\gamma$ della sequenza ricevuta $\boldsymbol\gamma=\mathbf c+\boldsymbol\varepsilon$ vale $H\boldsymbol\varepsilon$: dipende solo dall'errore. Le sequenze con la stessa sindrome formano un coset ($2^{n-k}$ coset di $2^k$ sequenze) e il decodificatore a minima distanza sceglie il coset leader, l'errore di peso minimo del coset: $\hat{\mathbf c}=\boldsymbol\gamma+\boldsymbol\varepsilon_{min}$. La probabilità di decodifica corretta sul BSC è la somma delle probabilità dei coset leader.Matrice di controllo di parità, sindrome e coset →, dmind_{min} è il minimo numero di colonne di HH che sommano a 0\mathbf 0.

  1. Nessuna parola di peso 1. Una parola di peso 11 con l'11 in posizione ii darebbe Hc=hiH\mathbf c=\mathbf h_i, la colonna ii: ma per costruzione in HH non ci sono colonne nulle.
  2. Nessuna parola di peso 2. Con due 11 in posizioni i≠ji\ne j si avrebbe Hc=hi+hjH\mathbf c=\mathbf h_i+\mathbf h_j, la somma di due colonne diverse: non può essere 0\mathbf 0 perché in HH non ci sono colonne ripetute.
  3. Esiste una parola di peso 3. Si scelgono i≠ji\ne j. La somma hi+hj\mathbf h_i+\mathbf h_j non è nulla (le colonne sono diverse) e diversa da hi\mathbf h_i e da hj\mathbf h_j (perché né hj\mathbf h_j né hi\mathbf h_i sono nulle); quindi è una sequenza non nulla di n−kn-k bit diversa da hi\mathbf h_i e hj\mathbf h_j, e siccome HH contiene tutte le sequenze non nulle, è una terza colonna hk\mathbf h_k con k≠i,jk\ne i,j. Allora hi+hj+hk=0\mathbf h_i+\mathbf h_j+\mathbf h_k=\mathbf 0: la sequenza con tre 11 in i,j,ki,j,k è una parola di codice. □\square

Definizione. Un codice per cui le sfere di raggio tt attorno alle parole riempiono tutto lo spazio senza sovrapporsi (il bound di Hamming vale con l'uguaglianza) è un codice perfetto.

7. Teoria dell'informazione

Entropia - informazione di un evento, disuguaglianza di Jensen e valore massimo

Definizione (entropia). L'entropia di xx è il valore atteso dell'informazione (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 →): H(x)=E[ix(x)]=∑a∈AxPx(a)log⁡21Px(a)=−∑aPx(a)log⁡2Px(a)[bit].\boxed{H(x)=E\left[i_x(x)\right]=\sum_{a\in\mathcal A_x}P_x(a)\log_2\frac1{P_x(a)}=-\sum_aP_x(a)\log_2P_x(a)\quad[\text{bit}].} Per i valori con Px(a)=0P_x(a)=0 si pone 0⋅log⁡210=00\cdot\log_2\frac10=0 (il limite di plog⁡1pp\log\frac1p per p→0p\to0 è 00), cioè i simboli impossibili non contano.

Definizione (funzione strettamente concava). ff è strettamente concava se, comunque si scelgano NN pesi k1,…,kN>0k_1,\dots,k_N>0 con ∑nkn=1\sum_{n}k_n=1 e NN punti distinti a1,…,aNa_1,\dots,a_N, ∑n=1Nknf(an)<f(∑n=1Nknan).\sum_{n=1}^Nk_nf(a_n)<f\left(\sum_{n=1}^Nk_na_n\right).

Teorema (disuguaglianza di Jensen). Se ff è strettamente concava e xx è una variabile aleatoria discreta non costante, E[f(x)]<f(E[x]).\boxed{E\left[f(x)\right]<f\left(E[x]\right).} Se xx è costante vale l'uguaglianza. In particolare, per il logaritmo: E[log⁡2x]≤log⁡2E[x]E\left[\log_2x\right]\le\log_2E[x].

Grafico interattivo: Concavità del logaritmo log₂ x: la funzione sta sopra la corda tra due suoi punti, qui in x = 1 e x = 4; nel punto medio x = 2,5 si ha log₂ 2,5 = 1,32, mentre la media dei valori in 1 e 4 è (0 + 2)/2 = 1: E[log x] < log E[x]

Teorema. Una variabile aleatoria discreta xx con alfabeto di cardinalità MM ha 0≤H(x)≤log⁡2M bit,\boxed{0\le H(x)\le\log_2M\ \text{bit},} e H(x)=log⁡2MH(x)=\log_2M se e solo se xx è uniforme sull'alfabeto: Px(a)=1MP_x(a)=\frac1M per ogni aa.

Entropia congiunta e condizionata e informazione mutua

Definizione (entropia congiunta). H(x,y)=E[ix,y(x,y)]=∑a,bPx,y(a,b)log⁡21Px,y(a,b).H(x,y)=E\left[i_{x,y}(x,y)\right]=\sum_{a,b}P_{x,y}(a,b)\log_2\frac1{P_{x,y}(a,b)}.

Proprietà. Se y=f(x)y=f(x) con ff funzione ordinaria (a ogni aa corrisponde un solo b=f(a)b=f(a)), allora H(x,y)=H(x)H(x,y)=H(x).

Esempio. x∈{0,1,2,3}x\in\{0,1,2,3\} con probabilità 0,1; 0,2; 0,3; 0,40{,}1;\ 0{,}2;\ 0{,}3;\ 0{,}4 e y=x2∈{0,1,4,9}y=x^2\in\{0,1,4,9\}. Le coppie (0,0),(1,1),(2,4),(3,9)(0,0),(1,1),(2,4),(3,9) hanno le stesse probabilità, quindi H(x,y)=0,1log⁡210,1+0,2log⁡210,2+0,3log⁡210,3+0,4log⁡210,4=1,8464 bit=H(x).H(x,y)=0{,}1\log_2\tfrac1{0{,}1}+0{,}2\log_2\tfrac1{0{,}2}+0{,}3\log_2\tfrac1{0{,}3}+0{,}4\log_2\tfrac1{0{,}4}=1{,}8464\ \text{bit}=H(x). Al contrario xx non è funzione di yy se xx può valere anche −2-2 e 22 (x=±yx=\pm\sqrt y): vedere y=4y=4 lascia due valori possibili per xx.

Proprietà. Se xx e yy sono indipendenti, H(x,y)=H(x)+H(y)H(x,y)=H(x)+H(y).

Teorema. In generale H(x,y)≤H(x)+H(y)H(x,y)\le H(x)+H(y), con disuguaglianza stretta se xx e yy non sono indipendenti. Inoltre max⁡{H(x),H(y)}≤H(x,y)≤H(x)+H(y)≤log⁡2Mx+log⁡2My,\boxed{\max\{H(x),H(y)\}\le H(x,y)\le H(x)+H(y)\le\log_2M_x+\log_2M_y,} dove Mx,MyM_x,M_y sono le cardinalità degli alfabeti.

Definizione. H(x∣y)H(x|y) è la media di H(x∣y=b)H(x|y=b) sui valori di yy: H(x∣y)=Ey[H(x∣y=y)]=∑bPy(b) H(x∣y=b)=∑a,bPx,y(a,b)log⁡21Px∣y(a∣b).\boxed{H(x|y)=E_y\left[H(x|y=y)\right]=\sum_bP_y(b)\,H(x|y=b)=\sum_{a,b}P_{x,y}(a,b)\log_2\frac1{P_{x|y}(a|b)}.}

Definizione (informazione mutua). I(x;y)=H(x)+H(y)−H(x,y)=H(x)−H(x∣y)=H(y)−H(y∣x)=I(y;x).\boxed{I(x;y)=H(x)+H(y)-H(x,y)=H(x)-H(x|y)=H(y)-H(y|x)=I(y;x).}

Grafico interattivo: Relazione tra le entropie come aree: H(x) e H(y) sono due cerchi, la parte comune è I(x;y), la parte di H(x) fuori dall'intersezione è H(x|y), quella di H(y) è H(y|x); l'unione è H(x,y). Qui H(x) = 1, H(y) = 1, I = 0,53 come nel canale binario simmetrico con errore 0,1

Tasso d'informazione, capacità di canale e teorema di Shannon

Definizione (entropia per simbolo). Hs(x‾)=H(x‾)L(x‾),Hs(x‾)=lim⁡N→∞H([x−N,…,xN])2N+1 per sequenze infinite.H_s(\underline x)=\frac{H(\underline x)}{L(\underline x)},\qquad H_s(\underline x)=\lim_{N\to\infty}\frac{H([x_{-N},\dots,x_N])}{2N+1}\ \text{per sequenze infinite.} Per simboli i.i.d. Hs(x‾)=H(xn)H_s(\underline x)=H(x_n).

Definizione (tasso d'informazione della sorgente). R(x‾)=Hs(x‾)T[bit/s],1T=simboli al secondo.R(\underline x)=\frac{H_s(\underline x)}T\quad[\text{bit/s}],\qquad\frac1T=\text{simboli al secondo}.

Definizione (tasso d'informazione del canale gg). R(g)=Is(x‾;y‾)T[bit/s],x‾=ingresso, y‾=uscita.R(g)=\frac{I_s(\underline x;\underline y)}T\quad[\text{bit/s}],\qquad\underline x=\text{ingresso},\ \underline y=\text{uscita}.

Definizione (capacità di un canale). È il massimo del tasso d'informazione del canale al variare di tutte le statistiche dell'ingresso: C=max⁡px‾R(g)[bit/s].\boxed{C=\max_{p_{\underline x}}R(g)\quad[\text{bit/s}].} Per un canale senza memoria con simboli indipendenti l'informazione mutua per simbolo è I(xn;yn)I(x_n;y_n) e quindi C=max⁡pxI(x;y)TC=\max_{p_x}\frac{I(x;y)}T.

Teorema (Shannon).

  1. Se R≤C\boxed{R\le C}, per ogni δ>0\delta>0 e per ogni nn abbastanza grande esistono: a) un codice di canale con parole lunghe nn e 2nRT2^{nRT} parole; b) un decodificatore con probabilità d'errore sulla parola P[c‾≠c‾^]<δP[\underline c\ne\hat{\underline c}]<\delta.
  2. Se R>C\boxed{R>C} esiste un δ>0\delta>0 tale che ogni codice a correzione d'errore ha probabilità d'errore sulla parola ≥δ\ge\delta.

Esempio. Una sorgente emette un simbolo ogni 20 μ20\ \mus con alfabeto {0,1,2}\{0,1,2\}: R=log⁡2320 μs=79,25R=\frac{\log_23}{20\ \mu\text{s}}=79{,}25 kbit/s. Un canale binario simmetrico con Pbit=10−3P_{bit}=10^{-3} e periodo di bit T=10 μT=10\ \mus ha C=1−h(10−3)T=0,988610 μs=98,86C=\frac{1-h(10^{-3})}{T}=\frac{0{,}9886}{10\ \mu\text{s}}=98{,}86 kbit/s >79,25>79{,}25 kbit/s: la codifica esiste. Con T=15 μT=15\ \mus sarebbe C=65,9C=65{,}9 kbit/s e non esisterebbe.

Codici a prefisso - Kraft-McMillan e limiti di Shannon sulla lunghezza media

Definizione (lunghezza media delle parole di codice). Ly=E[l(Ms(x‾))]=∑a‾∈Dxl(Ms(a‾)) px‾(a‾)[simboli di codice per parola].L_y=E\left[l(\mathcal M_s(\underline x))\right]=\sum_{\underline a\in\mathcal D_x}l\left(\mathcal M_s(\underline a)\right)\,p_{\underline x}(\underline a)\quad[\text{simboli di codice per parola}].

Definizione. In un codice a prefisso nessuna parola di codice è il prefisso (la parte iniziale) di un'altra parola.

Esempio. {1, 010, 0110, 0111}\{1,\ 010,\ 0110,\ 0111\} è a prefisso. Il flusso 1 ∣ 0110 ∣ 0111 ∣ 010 ∣ 11\,|\,0110\,|\,0111\,|\,010\,|\,1 si separa in modo unico: appena i bit letti formano una parola del codice, quella parola è finita (nessuna parola più lunga può iniziare con essa). Per questo la decodifica è istantanea, senza bisogno di guardare i bit seguenti. Un codice a prefisso è sempre decodificabile. Il contrario non vale in generale (esistono codici decodificabili non a prefisso, ma non servono: sono sempre eguagliati da un codice a prefisso con le stesse lunghezze, per il teorema che segue).

Grafico interattivo: Albero del codice a prefisso {1, 010, 0110, 0111}: da ogni nodo partono due rami etichettati 0 e 1; le parole di codice sono le foglie (cerchi grandi) e nessuna è antenata di un'altra. Il nodo 00 è inutilizzato (un ramo non assegnato)

Teorema (Kraft-McMillan). Sia MyM_y la cardinalità dell'alfabeto di codice.

  1. (Condizione necessaria.) Per ogni codificatore decodificabile senza perdite, con parole di lunghezza l1,…,lNl_1,\dots,l_N, ∑i=1N1My li≤1.\boxed{\sum_{i=1}^N\frac1{M_y^{\,l_i}}\le1.}
  2. (Esistenza.) Se l1,…,lNl_1,\dots,l_N sono interi che soddisfano la disuguaglianza (con MyM_y intero), esiste un codice a prefisso con alfabeto di cardinalità MyM_y e parole di lunghezza l1,…,lNl_1,\dots,l_N.

Teorema (Shannon, codifica di sorgente). Per un codificatore senza perdite con alfabeto di cardinalità MyM_y:

  1. (Limite inferiore.) Ogni codice decodificabile ha Ly≥H(x‾)log⁡2My\displaystyle L_y\ge\frac{H(\underline x)}{\log_2M_y}.
  2. (Esistenza.) Esiste un codice a prefisso con Ly<H(x‾)log⁡2My+1\displaystyle L_y<\frac{H(\underline x)}{\log_2M_y}+1.

In sintesi, esiste sempre un codice a prefisso con H(x‾)log⁡2My≤Ly<H(x‾)log⁡2My+1.\boxed{\frac{H(\underline x)}{\log_2M_y}\le L_y<\frac{H(\underline x)}{\log_2M_y}+1.} Per il codice binario (My=2M_y=2): H(x‾)≤Ly<H(x‾)+1H(\underline x)\le L_y<H(\underline x)+1, in bit per parola.

Codici di Shannon, Huffman ed Elias e codifica aritmetica

Definizione. Per una sorgente con parole a‾i∈Dx\underline a_i\in\mathcal D_x di probabilità pip_i, il codice di Shannon ha lunghezze li=⌈log⁡1/Mypi⌉=⌈log⁡My1pi⌉,per My=2: li=⌈−log⁡2pi⌉=⌈i(a‾i)⌉.l_i=\left\lceil\log_{1/M_y}p_i\right\rceil=\left\lceil\log_{M_y}\frac1{p_i}\right\rceil,\qquad\text{per }M_y=2:\ l_i=\left\lceil-\log_2p_i\right\rceil=\left\lceil i(\underline a_i)\right\rceil.

Definizione. Un codice di sorgente è ottimo se ha la lunghezza media minima tra i codici a prefisso per quella sorgente.

Teorema 1. In un codice a prefisso ottimo le parole di probabilità più bassa hanno lunghezza maggiore o uguale: se p(x1)<p(x2)p(x_1)<p(x_2) allora l(y1)≥l(y2)l(y_1)\ge l(y_2).

Teorema 2. Nel dizionario di un codice a prefisso ottimo ci sono almeno due parole di lunghezza massima b‾′\underline b' e b‾′′\underline b'' che differiscono solo nell'ultimo simbolo.