Salta al contenuto
Note per Studenti Esercizio - Kraft-McMillan, Huffman, due canali binari alternati e codice di Hamming (15,11) (compito del 13 febbraio 2026, es. 201)

Esercizio - Kraft-McMillan, Huffman, due canali binari alternati e codice di Hamming (15,11) (compito del 13 febbraio 2026, es. 201)

In questa pagina 7

Testo (compito del 13 febbraio 2026, esercizio 201). Un segnale aleatorio a(t)a(t) viene campionato con periodo di campionamento di 10−510^{-5} s e i campioni, considerati indipendenti, sono quantizzati con un quantizzatore uniforme a 88 livelli, ottenendo:

  • i valori quantizzati q3q_3 e q4q_4, ciascuno con probabilità 8/328/32;
  • i valori quantizzati q2q_2 e q5q_5, ciascuno con probabilità 4/324/32;
  • i valori quantizzati q1q_1 e q6q_6, ciascuno con probabilità 3/323/32;
  • i valori quantizzati q0q_0 e q7q_7, ciascuno con probabilità 1/321/32.
  1. Stabilire se è possibile trovare una codifica binaria a prefisso con lunghezze 2,3,3,3,4,4,5,52,3,3,3,4,4,5,5 per i valori quantizzati e in caso affermativo determinare la migliore assegnazione delle lunghezze ai simboli quantizzati e la lunghezza media delle parole di codice.
  2. Qual è il bit rate minimo del canale per trasmettere il flusso di informazione emesso dal convertitore analogico-digitale?
  3. Determinare la codifica binaria ottima per i simboli quantizzati e la corrispondente lunghezza media delle parole di codice.

I campioni in uscita dall'ADC vengono ora codificati con la codifica a lunghezza fissa a lunghezza minima. Per la trasmissione i bit di uscita dall'ADC vengono mandati alternativamente su due canali binari simmetrici senza memoria, con lo stesso periodo di bit, ma con probabilità d'errore sul bit 10−310^{-3} per uno e 10−210^{-2} per l'altro.

  1. Qual è il massimo periodo di bit sui canali per avere una probabilità d'errore residua piccola a piacere se si introduce una codifica di canale prima dei canali?
  2. Se prima del canale si utilizza un codice di Hamming (15,11)(15,11) quanto vale il bit-rate sul canale? Qual è la distanza minima e la probabilità che all'uscita del canale peggiore si abbia una sequenza con dmin⁡d_{\min} errori?
  3. Scrivere una matrice di controllo di parità del codice di Hamming (15,11)(15,11) in forma sistematica e determinare la parola di codice decodificata se la sequenza ricevuta è ξ=[0 0 0 0 0 0 0 0 0 0 0 1 1 1 1]T\xi=[0\ 0\ 0\ 0\ 0\ 0\ 0\ 0\ 0\ 0\ 0\ 1\ 1\ 1\ 1]^T.

Teoria usata: Codici a prefisso - Kraft-McMillan e limiti di Shannon sulla lunghezza mediaLa codifica di sorgente senza perdite associa a ogni parola emessa dalla sorgente una parola di codice binaria (o $M_y$-aria) di lunghezza variabile, in modo invertibile; la qualità si misura con la lunghezza media $L_y=\sum p_{\underline x}(\underline a),l(\underline a)$. In un codice a prefisso nessuna parola è l'inizio di un'altra, quindi la decodifica è istantanea. Kraft-McMillan: ogni codice decodificabile ha $\sum M_y^{-l_i}\le1$, e se interi $l_i$ la soddisfano esiste un codice a prefisso con quelle lunghezze. Shannon: $\frac{H(\underline x)}{\log_2M_y}\le L_y<\frac{H(\underline x)}{\log_2M_y}+1$ per il codice a prefisso ottimo, con $L_y=\frac{H}{\log_2M_y}$ solo se le probabilità sono potenze di $\frac1{M_y}$.Codici a prefisso - Kraft-McMillan e limiti di Shannon sulla lunghezza media → (punti 1-2), Codici di Shannon, Huffman ed Elias e codifica aritmeticaIl codice di Shannon(-Fano) assegna alla parola $i$ lunghezza $l_i=\lceil-\log_{M_y}p_i\rceil$, soddisfa Kraft-McMillan e ha $H\le L_y<H+1$; è ottimo solo se le probabilità sono potenze di $\frac1{M_y}$. Il codice ottimo (lunghezza media minima) dà parole più lunghe ai simboli meno probabili e ha almeno due parole di lunghezza massima che differiscono solo nell'ultimo simbolo: lo costruisce la procedura di Huffman, che unisce a ogni passo i due nodi meno probabili. Il codice di Elias prende le prime $l_i=\lceil-\log_2p_i\rceil+1$ cifre del punto medio dell'intervallo di ampiezza $p_i$ in $[0,1)$: è a prefisso ma subottimo ($H+1\le L_y<H+2$), e si adatta alla codifica aritmetica adattativa.Codici di Shannon, Huffman ed Elias e codifica aritmetica → (punto 3), Tasso d'informazione, capacità di canale e teorema di ShannonUna sorgente che emette un simbolo ogni $T$ secondi ha tasso d'informazione $R=\frac{H_s}T$ [bit/s] ($H_s$ entropia per simbolo); un canale ha tasso $R(g)=\frac{I_s(x;y)}T\le R(x)$. La capacità è il massimo del tasso del canale su tutte le statistiche d'ingresso, $C=\max_{p_x}\frac{I(x;y)}T$ per un canale senza memoria. Teorema di Shannon: se il tasso nominale della sorgente è $R\le C$ esiste un codice di canale con probabilità d'errore piccola a piacere, se $R>C$ no. Capacità: BSC $C=\frac1T[1-h(P_{bit})]$, canale a cancellazione $C=\frac{1-\alpha}T$, AWGN reale $C=\frac1{2T}\log_2\left(1+\frac{E_s}{\sigma^2}\right)$; canali in parallelo sommano le capacità.Tasso d'informazione, capacità di canale e teorema di Shannon → (punto 4), Codici di Hamming e bound di HammingIl bound di Hamming (sphere packing) lega tasso e capacità di correzione: $2^k\sum_{r=0}^t\binom nr\le2^n$, cioè $\frac kn\le1-\frac1n\log_2\sum_{r=0}^t\binom nr$, perché le $2^k$ sfere di raggio $t$ attorno alle parole sono disgiunte. Un codice di Hamming ha per colonne di $H$ tutte le sequenze non nulle di $n-k$ bit, ciascuna una volta, quindi $n=2^{n-k}-1$ (parametri $(2^m-1,,2^m-1-m)$: $(7,4)$, $(15,11)$, $(63,57)$, $(255,247)$). Non ha colonne nulle né ripetute e tre colonne sommano a zero: $d_{min}=3$, corregge $1$ errore e ne rivela $2$. Rispetta il bound di Hamming con l'uguaglianza ($t=1$): è un codice perfetto, per cui la probabilità d'errore di parola sul BSC è esattamente $P(\text{almeno 2 errori})$.Codici di Hamming e bound di Hamming → e 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 → (punti 5-6). Per il quantizzatore: Quantizzazione uniforme - saturazione, errore granulare e SNR di quantizzazioneUn quantizzatore uniforme a L = 2^b livelli e range [−v_sat, v_sat] ha passo Δ = 2v_sat/L. L'errore e = x − x^(q) è di saturazione fuori range (illimitato, da rendere raro con P_sat piccola) e granulare dentro (|e| ≤ Δ/2, uniforme con potenza Δ²/12). L'SNR di quantizzazione Λ_q = E[x²]/E[e²] vale in decibel 20log₁₀(σ_x/v_sat) + 4,77 + 6,02·b: ogni bit in più dà 6 dB. Per b minimo che garantisce una specifica: ⌈(specifica − c)/6,02⌉ con c = 20log₁₀(σ_x/v_sat) + 4,77.Quantizzazione uniforme - saturazione, errore granulare e SNR di quantizzazione →.

Le probabilità sommano a 2⋅8+4+3+132=12\cdot\frac{8+4+3+1}{32}=1 ✓. Per comodità si indica P(qk)P(q_k) in trentaduesimi: q0:1, q1:3, q2:4, q3:8, q4:8, q5:4, q6:3, q7:1q_0:1,\ q_1:3,\ q_2:4,\ q_3:8,\ q_4:8,\ q_5:4,\ q_6:3,\ q_7:1.

(1) Esiste un codice a prefisso con le lunghezze 2,3,3,3,4,4,5,52,3,3,3,4,4,5,5?

Per Kraft-McMillan (Codici a prefisso - Kraft-McMillan e limiti di Shannon sulla lunghezza mediaLa codifica di sorgente senza perdite associa a ogni parola emessa dalla sorgente una parola di codice binaria (o $M_y$-aria) di lunghezza variabile, in modo invertibile; la qualità si misura con la lunghezza media $L_y=\sum p_{\underline x}(\underline a),l(\underline a)$. In un codice a prefisso nessuna parola è l'inizio di un'altra, quindi la decodifica è istantanea. Kraft-McMillan: ogni codice decodificabile ha $\sum M_y^{-l_i}\le1$, e se interi $l_i$ la soddisfano esiste un codice a prefisso con quelle lunghezze. Shannon: $\frac{H(\underline x)}{\log_2M_y}\le L_y<\frac{H(\underline x)}{\log_2M_y}+1$ per il codice a prefisso ottimo, con $L_y=\frac{H}{\log_2M_y}$ solo se le probabilità sono potenze di $\frac1{M_y}$.Codici a prefisso - Kraft-McMillan e limiti di Shannon sulla lunghezza media →) esiste un codice a prefisso binario con quelle lunghezze se e solo se ∑i2−li≤1\sum_i2^{-l_i}\le1: 14+3⋅18+2⋅116+2⋅132=8+12+4+232=2632=0,8125<1.\frac14+3\cdot\frac18+2\cdot\frac1{16}+2\cdot\frac1{32}=\frac{8+12+4+2}{32}=\frac{26}{32}=0{,}8125<1. Sì, esiste. Migliore assegnazione: per minimizzare la lunghezza media si danno le parole più corte ai simboli più probabili (ordinando le probabilità in modo decrescente e le lunghezze in modo crescente, altrimenti un semplice scambio abbasserebbe LyL_y):

Probabilità (in 1/321/32) 8, 88,\ 8 4, 44,\ 4 3, 33,\ 3 1, 11,\ 1
Lunghezza 2, 32,\ 3 3, 33,\ 3 4, 44,\ 4 5, 55,\ 5

La coppia di probabilità uguali 8/32,8/328/32,8/32 riceve una lunghezza 22 e una 33; è indifferente quale. La lunghezza media è Ly=8⋅2+8⋅3+4⋅3+4⋅3+3⋅4+3⋅4+1⋅5+1⋅532=16+24+12+12+12+12+5+532=9832=3,0625 bit.L_y=\frac{8\cdot2+8\cdot3+4\cdot3+4\cdot3+3\cdot4+3\cdot4+1\cdot5+1\cdot5}{32}=\frac{16+24+12+12+12+12+5+5}{32}=\frac{98}{32}=3{,}0625\ \text{bit}.

(2) Bit rate minimo

Il flusso di informazione prodotto dal convertitore è l'entropia per campione moltiplicata per i campioni al secondo. Frequenza di campionamento Fs=110−5 s=100F_s=\frac1{10^{-5}\ \text{s}}=100 kHz. L'entropia dei valori quantizzati è H=2[832log⁡2328+432log⁡2324+332log⁡2323+132log⁡2321]=2[0,5+0,375+0,3202+0,15625]=2,7028 bit.H=2\left[\tfrac8{32}\log_2\tfrac{32}8+\tfrac4{32}\log_2\tfrac{32}4+\tfrac3{32}\log_2\tfrac{32}3+\tfrac1{32}\log_2\tfrac{32}1\right]=2\left[0{,}5+0{,}375+0{,}3202+0{,}15625\right]=2{,}7028\ \text{bit}. (Qui 832log⁡24=0,5\tfrac8{32}\log_24=0{,}5, 432log⁡28=0,375\tfrac4{32}\log_28=0{,}375, 332log⁡2323=332⋅3,4150=0,3202\tfrac3{32}\log_2\tfrac{32}3=\tfrac3{32}\cdot3{,}4150=0{,}3202, 132⋅5=0,15625\tfrac1{32}\cdot5=0{,}15625: la somma è 1,35141{,}3514 e raddoppiata dà 2,70282{,}7028.) Per il teorema di Shannon sulla codifica di sorgente nessun codice può usare in media meno di HH bit per campione, quindi il bit rate minimo è Rmin⁡=FsH=100 kHz⋅2,7028 bit=270,28 kbit/s.R_{\min}=F_sH=100\ \text{kHz}\cdot2{,}7028\ \text{bit}=270{,}28\ \text{kbit/s}. (Per confronto, la codifica a lunghezza fissa con log⁡28=3\log_28=3 bit darebbe 300300 kbit/s.)

(3) Codice ottimo: Huffman

Passo Nodi disponibili (in 1/321/32) Unione
1 8,8,4,4,3,3,1,18,8,4,4,3,3,1,1 q0+q7=2q_0+q_7=2 (nodo AA)
2 8,8,4,4,3,3,2 (A)8,8,4,4,3,3,2\,(A) A+q1=5A+q_1=5 (nodo BB; q1q_1 vale 33)
3 8,8,4,4,3 (q6),5 (B)8,8,4,4,3\,(q_6),5\,(B) q6+q2=7q_6+q_2=7 (nodo CC; q2q_2 vale 44)
4 8,8,4 (q5),5 (B),7 (C)8,8,4\,(q_5),5\,(B),7\,(C) q5+B=9q_5+B=9 (nodo DD)
5 8 (q3),8 (q4),7 (C),9 (D)8\,(q_3),8\,(q_4),7\,(C),9\,(D) C+q3=15C+q_3=15 (nodo EE)
6 8 (q4),9 (D),15 (E)8\,(q_4),9\,(D),15\,(E) q4+D=17q_4+D=17 (nodo FF)
7 15 (E),17 (F)15\,(E),17\,(F) radice =32=32

(I numeri sono in trentaduesimi. Al passo 2 i nodi minimi sono 2 (A)2\,(A) e un 33 (q1q_1 o q6q_6); si sceglie q1q_1, la scelta opposta dà lo stesso LyL_y.) Etichettando i rami 0/10/1 si ottiene, per esempio,

Valore P⋅32P\cdot32 Parola Lunghezza
q3q_3 88 0101 22
q4q_4 88 1010 22
q2q_2 44 001001 33
q5q_5 44 110110 33
q6q_6 33 000000 33
q1q_1 33 11111111 44
q0q_0 11 1110011100 55
q7q_7 11 1110111101 55

Ly=(8+8)⋅2+(4+4+3)⋅3+3⋅4+(1+1)⋅532=32+33+12+1032=8732=2,71875 bit.L_y=\frac{(8+8)\cdot2+(4+4+3)\cdot3+3\cdot4+(1+1)\cdot5}{32}=\frac{32+33+12+10}{32}=\frac{87}{32}=2{,}71875\ \text{bit}. Controllo con i nodi interni (in trentaduesimi): 2+5+7+9+15+17+32=872+5+7+9+15+17+32=87 ✓. Rispetto al punto 1 (3,06253{,}0625) si risparmia mezzo bit; il limite H=2,7028≤2,7188<3,7028H=2{,}7028\le2{,}7188<3{,}7028 ✓, efficienza η=0,994\eta=0{,}994.

(4) Massimo periodo di bit sui due canali

Con la codifica a lunghezza fissa minima i 88 livelli usano log⁡28=3\log_28=3 bit, quindi il flusso all'uscita dell'ADC è 3⋅1003\cdot100 kHz =300=300 kbit/s. I bit vengono mandati alternativamente su due canali: ciascun canale riceve metà dei bit, cioè Rb=300 kbit/s2=150 kbit/sR_b=\frac{300\ \text{kbit/s}}2=150\ \text{kbit/s} di informazione. Ogni canale è un BSC senza memoria (Tasso d'informazione, capacità di canale e teorema di ShannonUna sorgente che emette un simbolo ogni $T$ secondi ha tasso d'informazione $R=\frac{H_s}T$ [bit/s] ($H_s$ entropia per simbolo); un canale ha tasso $R(g)=\frac{I_s(x;y)}T\le R(x)$. La capacità è il massimo del tasso del canale su tutte le statistiche d'ingresso, $C=\max_{p_x}\frac{I(x;y)}T$ per un canale senza memoria. Teorema di Shannon: se il tasso nominale della sorgente è $R\le C$ esiste un codice di canale con probabilità d'errore piccola a piacere, se $R>C$ no. Capacità: BSC $C=\frac1T[1-h(P_{bit})]$, canale a cancellazione $C=\frac{1-\alpha}T$, AWGN reale $C=\frac1{2T}\log_2\left(1+\frac{E_s}{\sigma^2}\right)$; canali in parallelo sommano le capacità.Tasso d'informazione, capacità di canale e teorema di Shannon →) con capacità per uso 1−h(Pbit)1-h(P_{bit}): C1Tc=1−h(10−3)=1−0,01141=0,98859,C2Tc=1−h(10−2)=1−0,08079=0,91921.C_1T_c=1-h(10^{-3})=1-0{,}01141=0{,}98859,\qquad C_2T_c=1-h(10^{-2})=1-0{,}08079=0{,}91921. Se si introduce una codifica di canale di rate kn\frac kn prima di ciascun canale, e se TcT_c è il periodo di bit sul canale (cioè dopo il codificatore), le parole di nn bit portano kk bit di informazione: Rb=kn⋅1TcR_b=\frac kn\cdot\frac1{T_c}, cioè kn=RbTc\frac kn=R_bT_c. Per il teorema di Shannon una probabilità d'errore residua piccola a piacere è possibile se kn≤C Tc=1−h(Pbit)\frac kn\le C\,T_c=1-h(P_{bit}) per entrambi i canali, quindi RbTc≤min⁡{0,98859; 0,91921}=0,91921⇒Tc≤0,91921150 kbit/s=6,128 μs.R_bT_c\le\min\{0{,}98859;\ 0{,}91921\}=0{,}91921\quad\Rightarrow\quad T_c\le\frac{0{,}91921}{150\ \text{kbit/s}}=6{,}128\ \mu\text{s}. Il canale peggiore (quello con 10−210^{-2}) fissa il limite: Tc,max⁡=6,13 μT_{c,\max}=6{,}13\ \mus, cioè un bit ogni 6,13 μ6{,}13\ \mus per canale (163163 kbit/s per canale).

Differenza con la soluzione del corso. La soluzione del corso riporta Tc<4,0854⋅10−5T_c<4{,}0854\cdot10^{-5} s. Il valore corretto, con gli stessi dati (0,91920{,}9192 e 150150 kbit/s), è 0,9192150⋅103=6,128⋅10−6\frac{0{,}9192}{150\cdot10^3}=6{,}128\cdot10^{-6} s: il numero riportato è 6,6676{,}667 volte più grande ed è incompatibile con quei dati (con Tc=40,9 μT_c=40{,}9\ \mus il rate del codice sarebbe RbTc=6,13>1R_bT_c=6{,}13>1, impossibile). La soluzione del corso usa comunque la stessa formula, Rb<min⁡CiR_b<\min C_i.

(5) Hamming (15,11)(15,11): bit-rate, distanza minima e probabilità di dmin⁡d_{\min} errori

Un codice di Hamming con n=15=24−1n=15=2^4-1 ha n−k=4n-k=4 bit di parità e k=11k=11 bit di informazione (Codici di Hamming e bound di HammingIl bound di Hamming (sphere packing) lega tasso e capacità di correzione: $2^k\sum_{r=0}^t\binom nr\le2^n$, cioè $\frac kn\le1-\frac1n\log_2\sum_{r=0}^t\binom nr$, perché le $2^k$ sfere di raggio $t$ attorno alle parole sono disgiunte. Un codice di Hamming ha per colonne di $H$ tutte le sequenze non nulle di $n-k$ bit, ciascuna una volta, quindi $n=2^{n-k}-1$ (parametri $(2^m-1,,2^m-1-m)$: $(7,4)$, $(15,11)$, $(63,57)$, $(255,247)$). Non ha colonne nulle né ripetute e tre colonne sommano a zero: $d_{min}=3$, corregge $1$ errore e ne rivela $2$. Rispetta il bound di Hamming con l'uguaglianza ($t=1$): è un codice perfetto, per cui la probabilità d'errore di parola sul BSC è esattamente $P(\text{almeno 2 errori})$.Codici di Hamming e bound di Hamming →). Il rate è 1115\frac{11}{15}. I 300300 kbit/s di informazione (sul flusso complessivo) diventano 300 kbit/s⋅1511=409,09 kbit/s(circa 204,5 kbit/s per canale).300\ \text{kbit/s}\cdot\frac{15}{11}=409{,}09\ \text{kbit/s}\quad(\text{circa }204{,}5\text{ kbit/s per canale}). Tutti i codici di Hamming hanno distanza minima dmin⁡=3d_{\min}=3 (rilevano 22 errori e ne correggono 11). Sul canale peggiore (Pbit=10−2P_{bit}=10^{-2}) la probabilità di avere esattamente 33 errori in una sequenza di 1515 bit è P[3 errori]=(153)Pbit3(1−Pbit)12=455⋅10−6⋅0,9912=455⋅10−6⋅0,88638=4,033⋅10−4.P[3\ \text{errori}]=\binom{15}3P_{bit}^3(1-P_{bit})^{12}=455\cdot10^{-6}\cdot0{,}99^{12}=455\cdot10^{-6}\cdot0{,}88638=4{,}033\cdot10^{-4}. Qui (153)=15⋅14⋅136=455\binom{15}3=\frac{15\cdot14\cdot13}{6}=455.

(6) Matrice di controllo e decodifica

Le colonne della matrice di controllo di parità HH (4×154\times15) di un codice di Hamming sono tutte le 1515 sequenze binarie non nulle di lunghezza 44, ciascuna una sola volta. In forma sistematica H=[ A ∣ I4 ]H=[\,A\,|\,I_4\,] le ultime quattro colonne sono quelle di peso 11 (matrice identità) e le prime undici sono le sequenze di peso almeno 22. Una scelta valida è

H=[101111110001000110111001100100111010101010010111100010110001].H=\begin{bmatrix}1&0&1&1&1&1&1&1&0&0&0&1&0&0&0\\1&1&0&1&1&1&0&0&1&1&0&0&1&0&0\\1&1&1&0&1&0&1&0&1&0&1&0&0&1&0\\1&1&1&1&0&0&0&1&0&1&1&0&0&0&1\end{bmatrix}.

(Le colonne 11-1111 sono [1,1,1,1]T,[0,1,1,1]T,[1,0,1,1]T,[1,1,0,1]T,[1,1,1,0]T,[1,1,0,0]T,[1,0,1,0]T,[1,0,0,1]T,[0,1,1,0]T,[0,1,0,1]T,[0,0,1,1]T[1,1,1,1]^T,[0,1,1,1]^T,[1,0,1,1]^T,[1,1,0,1]^T,[1,1,1,0]^T,[1,1,0,0]^T,[1,0,1,0]^T,[1,0,0,1]^T,[0,1,1,0]^T,[0,1,0,1]^T,[0,0,1,1]^T e coprono tutti i pesi ≥2\ge2; le altre 44 sono I4I_4.)

Decodifica. La sindrome di ξ=[0 … 0 1 1 1 1]T\xi=[0\ \dots\ 0\ 1\ 1\ 1\ 1]^T (con bit pari a 11 solo nelle posizioni 12,13,14,1512,13,14,15) è la somma delle colonne 12,…,1512,\dots,15 di HH, che sono le colonne di I4I_4: s=Hξ=[1,0,0,0]T+[0,1,0,0]T+[0,0,1,0]T+[0,0,0,1]T=[1,1,1,1]T.s=H\xi=[1,0,0,0]^T+[0,1,0,0]^T+[0,0,1,0]^T+[0,0,0,1]^T=[1,1,1,1]^T. La sindrome non è nulla, quindi ξ\xi non è una parola di codice. Un codice di Hamming corregge un errore: la sindrome è uguale alla colonna di HH nella posizione dell'errore. [1,1,1,1]T[1,1,1,1]^T è la colonna 11 di HH, quindi l'errore più probabile (coset leader, 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 →) è e=[1 0 … 0]Te=[1\ 0\ \dots\ 0]^T e la parola decodificata è γ=ξ+e=[1 0 0 0 0 0 0 0 0 0 0 1 1 1 1]T.\gamma=\xi+e=[1\ 0\ 0\ 0\ 0\ 0\ 0\ 0\ 0\ 0\ 0\ 1\ 1\ 1\ 1]^T. Verifica: Hγ=H\gamma= colonna 11 + colonne 1212-1515 =[1,1,1,1]T+[1,1,1,1]T=0=[1,1,1,1]^T+[1,1,1,1]^T=\mathbf0 ✓: γ\gamma è una parola di codice (i primi 1111 bit, [1,0,…,0][1,0,\dots,0], sono l'informazione e gli ultimi 44, 11111111, la parità).

(Verificato con Python: Kraft =26/32=26/32, LyL_y del punto 1 =3,0625=3{,}0625, H=2,70282H=2{,}70282, Huffman Ly=2,71875L_y=2{,}71875, 1−h(10−3)=0,988591-h(10^{-3})=0{,}98859, 1−h(10−2)=0,919211-h(10^{-2})=0{,}91921, Tc,max⁡=6,128 μT_{c,\max}=6{,}128\ \mus, (153)(10−2)3(0,99)12=4,033⋅10−4\binom{15}3(10^{-2})^3(0{,}99)^{12}=4{,}033\cdot10^{-4}; la matrice HH ha come colonne tutte le 1515 sequenze non nulle e Hγ=0H\gamma=0.)

Errori comuni

  • Per Kraft, dire "<1<1 quindi il codice è ottimo": esprime solo l'esistenza di un codice a prefisso con quelle lunghezze, non la sua ottimalità.
  • Assegnare le lunghezze corte ai simboli meno probabili.
  • Usare log⁡28=3\log_28=3 bit (lunghezza fissa) per il bit rate minimo: il minimo è FsH=270,28F_sH=270{,}28 kbit/s.
  • Al punto 4 prendere la media dei due canali o il canale migliore: serve il peggiore.
  • Al punto 4 dimenticare che ciascun canale porta metà dei bit.
  • Per la distanza minima dire dmin⁡=2n−kd_{\min}=2^{n-k} o simili: per i codici di Hamming è sempre 33.
  • Non controllare che la sindrome [1,1,1,1]T[1,1,1,1]^T coincida con una colonna di HH (qui la prima).

Versione ripasso

Testo. Quantizzatore a 88 livelli, P(qk)=1,3,4,8,8,4,3,132P(q_k)=\frac{1,3,4,8,8,4,3,1}{32} per k=0,…,7k=0,\dots,7, campioni ogni 10 μ10\,\mus. Lunghezze 2,3,3,3,4,4,5,52,3,3,3,4,4,5,5: esiste il prefisso, assegnazione e LyL_y; bit rate minimo; Huffman; con lunghezza fissa e due BSC alternati (10−310^{-3}, 10−210^{-2}) massimo periodo di bit; Hamming (15,11)(15,11): bit-rate, dmin⁡d_{\min}, P[dmin⁡ errori]P[d_{\min}\ \text{errori}]; HH sistematica e decodifica di ξ=[0…0 1111]T\xi=[0\dots0\,1111]^T.

Teoria collegata