Salta al contenuto
Note per Studenti Esercizio - Canale binario simmetrico e codici di canale (domande ed esercizi del corso)

Esercizio - Canale binario simmetrico e codici di canale (domande ed esercizi del corso)

In questa pagina 4

Teoria: Metriche e prestazioni di rete per i servizi multimedialiUna rete è una pila di livelli: ogni livello offre un servizio al superiore tramite un'interfaccia e dialoga con il livello pari con un protocollo; il pacchetto di un livello è il payload del livello inferiore ($\mathrm{PDU}n=\mathrm{PCI}n+\mathrm{SDU}n$), con efficienza $\eta=\frac{|\mathrm{SDU}n|}{|\mathrm{PDU}n|}$. Metriche: bit-rate $R_0$ (livello fisico) $\ge$ throughput $S$ $\ge$ goodput (throughput a lungo termine a livello applicazione). Ritardo nodale $d=d{proc}+d{queue}+d{trans}+d{prop}$ con $d{trans}=\frac LR$ e $d_{prop}=\frac xc$; ritardo end-to-end = somma dei nodali; jitter = variabilità del ritardo; BDP $=S\cdot\mathrm{RTT}$ (con il bit-rate minimo del percorso). Affidabilità: nel canale binario simmetrico $\mathrm{PER}=1-(1-\varepsilon)^L$ e $P(\ell)=\binom L\ell\varepsilon^\ell(1-\varepsilon)^{L-\ell}$; codici di canale $R=\frac kn$, parità, Hamming, interleaving per i burst; perdite per errori o congestione, $\mathrm{PDR}=1-P_{\text{LOSS}}$.Metriche e prestazioni di rete per i servizi multimediali → (BSC, PER, codici a blocchi, parità, Hamming, interleaving). Fonte: domande a risposta multipla ed esempi di preparazione, esercizio delle slide del corso di Reti di Calcolatori, Ing. Informatica UniPD 2025-26. Conti verificati in Python. Si richiamano: PER=1−(1−ε)L\mathrm{PER}=1-(1-\varepsilon)^L; probabilità di ℓ\ell errori su L′L' bit P(ℓ)=(L′ℓ)εℓ(1−ε)L′−ℓP(\ell)=\binom{L'}\ell\varepsilon^\ell(1-\varepsilon)^{L'-\ell}; messaggio di NN pacchetti corretto con probabilità (1−PER)N(1-\mathrm{PER})^N; tempo di trasmissione di NN pacchetti da LL bit a R0R_0: NLR0\frac{NL}{R_0}.

1. BSC senza codice

Domanda 1 (A). Una sorgente produce pacchetti di L=1000L=1000 bit (header inclusi) e li invia su un BSC con ε=10−6\varepsilon=10^{-6} e bit-rate R0=5R_0=5 Mbit/s. Quale affermazione è vera? (a) il ritardo di trasmissione di un messaggio di 750 pacchetti è 150 ms, (b) il PER è all'incirca l'1%, (c) la probabilità che il messaggio sia ricevuto con zero errori è superiore al 50%.

  • (a) 750⋅10005⋅106=0,15\frac{750\cdot1000}{5\cdot10^6}=0{,}15 s =150=150 ms: vera.
  • (b) PER=1−(1−10−6)1000≈9,995⋅10−4≈0,1%\mathrm{PER}=1-(1-10^{-6})^{1000}\approx9{,}995\cdot10^{-4}\approx0{,}1\%: falsa (un fattore 10 sotto l'1%). Approssimazione: Lε=10−3L\varepsilon=10^{-3}.
  • (c) (1−PER)750=(0,9990005)750≈0,472=47,2%(1-\mathrm{PER})^{750}=(0{,}9990005)^{750}\approx0{,}472=47{,}2\%: falsa, è sotto il 50%. (Controllo: e−LεN=e−0,75=0,472e^{-L\varepsilon N}=e^{-0{,}75}=0{,}472.)

Domanda 2 (preparazione). Un pacchetto di 2000 bit e ε=10−5\varepsilon=10^{-5}: PER? (a) ≈2%\approx2\%, (b) 0,2%0{,}2\%, (c) 20%20\%, (d) 0,02%0{,}02\%. PER=1−(1−10−5)2000=0,0198≈2%\mathrm{PER}=1-(1-10^{-5})^{2000}=0{,}0198\approx2\%: (a). Con Lε=0,02L\varepsilon=0{,}02 le altre sono errori di una o due potenze di 10.

Esercizio 3 (slide, parte senza codice). L=500L=500 bit, ε=2⋅10−6\varepsilon=2\cdot10^{-6}, R0=10R_0=10 Mbit/s, messaggio di N=1000N=1000 pacchetti.

  • Q1, tempo: T=1000⋅500107=50T=\frac{1000\cdot500}{10^7}=50 ms.
  • Q2, PER: 1−(1−2⋅10−6)500=9,995⋅10−4≈0,100%1-(1-2\cdot10^{-6})^{500}=9{,}995\cdot10^{-4}\approx0{,}100\%.
  • Q3, messaggio corretto: (1−PER)1000=0,3679=36,8%(1-\mathrm{PER})^{1000}=0{,}3679=36{,}8\% (infatti LεN=1L\varepsilon N=1 e e−1=0,368e^{-1}=0{,}368).

2. BSC con un codice che corregge un errore

Domanda 4 (A). Come nella domanda 1 ma si usa un codice di correzione degli errori con R=500511R=\frac{500}{511} (rapporto k/nk/n); il codice può correggere un bit errato e rilevarne due; probabilità che ℓ\ell bit su L′L' siano errati P(ℓ)=(L′ℓ)εℓ(1−ε)L′−ℓP(\ell)=\binom{L'}\ell\varepsilon^\ell(1-\varepsilon)^{L'-\ell}. Quale affermazione è falsa? (a) il ritardo di trasmissione di un messaggio di 750 pacchetti è 150 ms, (b) il PER (probabilità che un pacchetto ricevuto non sia decodificabile) è ≈5,2⋅10−7\approx5{,}2\cdot10^{-7}, (c) la probabilità che il messaggio sia ricevuto correttamente è ≈99,9609%\approx99{,}9609\%.

  • Dimensione del pacchetto codificato: L′=1000⋅511500=1022L'=1000\cdot\frac{511}{500}=1022 bit (si aggiungono 22 bit di protezione).
  • (a) 750⋅10225⋅106=0,1533\frac{750\cdot1022}{5\cdot10^6}=0{,}1533 s =153,3=153{,}3 ms: falsa (150 ms è il tempo senza codice; il codice allunga la trasmissione perché ogni pacchetto è più lungo). È l'opzione cercata.
  • (b) Un pacchetto è decodificato correttamente con 0 o 1 errore: PER=1−P(0)−P(1)=5,2138⋅10−7\mathrm{PER}=1-P(0)-P(1)=5{,}2138\cdot10^{-7}: vera. Approssimazione: con tre o più errori trascurabili, PER≈P(2)=(10222)ε2=521 731⋅10−12=5,21⋅10−7\mathrm{PER}\approx P(2)=\binom{1022}2\varepsilon^2=521\,731\cdot10^{-12}=5{,}21\cdot10^{-7}.
  • (c) (1−PER)750=(1−5,2138⋅10−7)750=0,999609=99,9609%(1-\mathrm{PER})^{750}=(1-5{,}2138\cdot10^{-7})^{750}=0{,}999609=99{,}9609\%: vera.

Esercizio 5 (slide, parte con il codice). L=500L=500 bit, ε=2⋅10−6\varepsilon=2\cdot10^{-6}, R=500511R=\frac{500}{511}, N=1000N=1000, 10 Mbit/s. Il codice corregge 1 bit e rileva 2.

  • Q4, tempo: T=1000⋅511107=51,1T=\frac{1000\cdot511}{10^7}=51{,}1 ms (il 2,2% in più).
  • Q5, PER: la probabilità di ricevere correttamente è P(0)+P(1)P(0)+P(1) con L′=511L'=511: P(0)=0,9989785P(0)=0{,}9989785, P(1)=1,020958⋅10−3P(1)=1{,}020958\cdot10^{-3}, quindi PER=1−P(0)−P(1)=5,2087⋅10−7\mathrm{PER}=1-P(0)-P(1)=5{,}2087\cdot10^{-7} (la slide: 5,20866⋅10−75{,}20866\cdot10^{-7}). Con l'approssimazione P(2)=(5112)ε2=5,2069⋅10−7P(2)=\binom{511}{2}\varepsilon^2=5{,}2069\cdot10^{-7}: molto vicina.
  • Q6, messaggio corretto: (1−5,2087⋅10−7)1000=0,999479=99,9479%(1-5{,}2087\cdot10^{-7})^{1000}=0{,}999479=99{,}9479\%.
  • Conclusione: con un overhead di 11511≈2,2%\frac{11}{511}\approx2{,}2\% il PER scende da 10−310^{-3} a 5,2⋅10−75{,}2\cdot10^{-7} e la probabilità di ricevere il messaggio senza errori sale da 36,8%36{,}8\% a 99,95%99{,}95\%. (La slide dice "scende da 10−410^{-4}", ma il PER senza codice calcolato in Q2 è 0,100%=10−30{,}100\%=10^{-3}: è un refuso.) Inoltre senza codice un errore su bit non verrebbe rilevato; con il codice sì. La probabilità di avere più di 2 errori vale 1−∑ℓ=02P(ℓ)=1,77⋅10−101-\sum_{\ell=0}^2P(\ell)=1{,}77\cdot10^{-10}: i pacchetti con tre o più errori, che sfuggirebbero alla rilevazione, sono meno di 2 ogni dieci miliardi.

3. Parità e codice di Hamming

Domanda 6 (A, teoria). (1) I codici a controllo di parità: (a) permettono di rilevare ed eventualmente correggere errori, (b) permettono solo di correggere. (2) Il bit-rate R=knR=\frac kn in un codice di canale: (a) controlla il compromesso tra overhead e capacità di rilevamento e correzione, (b) controlla il compromesso tra complessità ed efficacia, (c) permette di far fronte ai burst se scelto adeguatamente. (3) I burst di errori si controllano efficacemente (seppur introducendo ritardo): (a) con l'interleaving, (b) con codici convoluzionali, (c) con codici a bit-rate molto alto.

Risposte e perché: (1) (a) un codice di parità (un singolo bit) rileva, e con strutture più ricche (Hamming) corregge; (b) è falsa perché la sola parità non corregge. (2) (a): R=knR=\frac kn misura il rapporto dati/totale: più è vicino a 1, meno overhead ma meno protezione; (b) la complessità non dipende da RR; (c) non è il valore di RR che combatte i burst. (3) (a): l'interleaving distribuisce un burst su più blocchi (introduce ritardo); (b) i convoluzionali non servono contro i burst e (c) un rapporto RR vicino a 1 significa meno protezione.

Esercizio 7 (parità, costruito). Blocco 10110011011001 (k=7k=7): numero di 1 =4=4, quindi b8=0b_8=0 (somma modulo 2 =0=0): blocco trasmesso 1011001010110010. Se si riceve 1011011010110110 (un errore) la somma è 11: errore rilevato. Se si ricevono due errori, per esempio 1000001010000010 (bit 3 e bit 4 cambiati: la somma resta 0), non si rileva nulla: un numero pari di errori sfugge. R=78=0,875R=\frac78=0{,}875, overhead 18=12,5%\frac18=12{,}5\%.

Esercizio 8 (Hamming, costruito). Con le regole b5=b1⊕b2⊕b4b_5=b_1\oplus b_2\oplus b_4, b6=b1⊕b3⊕b4b_6=b_1\oplus b_3\oplus b_4, b7=b2⊕b3⊕b4b_7=b_2\oplus b_3\oplus b_4 si codifica x=1011x=1011: b5=1⊕0⊕1=0b_5=1\oplus0\oplus1=0, b6=1⊕1⊕1=1b_6=1\oplus1\oplus1=1, b7=0⊕1⊕1=0b_7=0\oplus1\oplus1=0, quindi y=1011 010y=1011\,010. Si riceve y^=1001 010\hat y=1001\,010 (cambiato il bit 3). Controlli: {1,2,4,5}\{1,2,4,5\}: 1+0+1+0=01+0+1+0=0 OK; {1,3,4,6}\{1,3,4,6\}: 1+0+1+1=11+0+1+1=1 non OK; {2,3,4,7}\{2,3,4,7\}: 0+0+1+0=10+0+1+0=1 non OK. Il bit errato sta nell'intersezione dei controlli che falliscono, {1,3,4,6}∩{2,3,4,7}={3,4}\{1,3,4,6\}\cap\{2,3,4,7\}=\{3,4\}; il 4 appartiene anche al controllo {1,2,4,5}\{1,2,4,5\} che è OK, quindi è il bit 3: si corregge 1001→10111001\to1011. Dati recuperati: 10111011 ✓.

Esercizio 9 (interleaving, costruito). I 21 bit 1,…,211,\dots,21 sono scritti per righe in una matrice 3×73\times7 (righe 1..71..7, 8..148..14, 15..2115..21) e trasmessi per colonne: ordine di trasmissione 1,8,15,2,9,16,3,10,17,…1,8,15,2,9,16,3,10,17,\dots. Ogni riga è un blocco del codice (7,4) (corregge un errore).

  • Burst di 3 bit consecutivi sul canale (per esempio i primi tre, 1,8,151,8,15): dopo il de-interleaving un solo errore per riga: tutti correggibili.
  • Burst di 4 bit consecutivi (1,8,15,21,8,15,2): i bit 11 e 22 cadono nella stessa riga (due errori nello stesso blocco): il codice (7,4) non li corregge. Quindi con 33 righe l'interleaving corregge burst fino a lunghezza 3: la profondità deve essere almeno la lunghezza massima del burst (a prezzo di ritardo: bisogna riempire la matrice prima di trasmettere).

Errori tipici

  • Valutare il PER come 1−εL1-\varepsilon^L (è 1−(1−ε)L1-(1-\varepsilon)^L) o come ε\varepsilon (probabilità di un solo bit).
  • Dimenticare di allungare il pacchetto con la ridondanza (L′=L/RL'=L/R): il tempo di trasmissione cresce del 1R\frac1R.
  • Usare LL al posto di L′L' nelle probabilità P(ℓ)P(\ell) quando c'è un codice.
  • Considerare corretto il pacchetto solo con 0 errori in presenza di un codice che ne corregge 1: si sommano P(0)P(0) e P(1)P(1).
  • Pensare che il codice di parità rilevi anche gli errori in numero pari.

Versione ripasso

Formule. PER=1−(1−ε)L≈Lε\mathrm{PER}=1-(1-\varepsilon)^L\approx L\varepsilon; P(ℓ)=(L′ℓ)εℓ(1−ε)L′−ℓP(\ell)=\binom{L'}\ell\varepsilon^\ell(1-\varepsilon)^{L'-\ell}; messaggio corretto =(1−PER)N≈e−NLε=(1-\mathrm{PER})^N\approx e^{-NL\varepsilon}; L′=LRL'=\frac LR; tempo =NL′R0=\frac{NL'}{R_0}; con codice che corregge 1 errore: PER=1−P(0)−P(1)≈P(2)\mathrm{PER}=1-P(0)-P(1)\approx P(2).

Senza codice.

  • L=1000L=1000, ε=10−6\varepsilon=10^{-6}, 5 Mbit/s, 750 pacchetti: 150 ms (vera); PER≈0,1%\mathrm{PER}\approx0{,}1\% (non 1%); P(messaggio ok)=47,2%P(\text{messaggio ok})=47{,}2\% (non >50%>50\%).
  • 20002000 bit, ε=10−5\varepsilon=10^{-5}: PER≈2%\mathrm{PER}\approx2\%.
  • Slide: L=500L=500, ε=2⋅10−6\varepsilon=2\cdot10^{-6}, 10 Mbit/s, N=1000N=1000: T=50T=50 ms; PER=0,100%\mathrm{PER}=0{,}100\%; messaggio corretto 36,8%36{,}8\%.

Con codice R=500511R=\frac{500}{511} (corregge 1, rileva 2).

  • A: L′=1022L'=1022, tempo 750⋅10225⋅106=153,3\frac{750\cdot1022}{5\cdot10^6}=153{,}3 ms (l'affermazione "150 ms" è falsa); PER=5,2138⋅10−7\mathrm{PER}=5{,}2138\cdot10^{-7} (vera); messaggio 99,9609%99{,}9609\% (vera).
  • Slide: T=51,1T=51{,}1 ms; P(0)=0,9989785P(0)=0{,}9989785, P(1)=1,020958⋅10−3P(1)=1{,}020958\cdot10^{-3}; PER=5,2087⋅10−7≈P(2)=5,2069⋅10−7\mathrm{PER}=5{,}2087\cdot10^{-7}\approx P(2)=5{,}2069\cdot10^{-7}; messaggio 99,9479%99{,}9479\%; overhead 11511≈2,2%\frac{11}{511}\approx2{,}2\%: PER da 10−310^{-3} (la slide scrive 10−410^{-4}) a 5,2⋅10−75{,}2\cdot10^{-7}; P(≥3)=1,77⋅10−10P(\ge3)=1{,}77\cdot10^{-10}.

Teoria. Parità: rileva e (con strutture più ricche) corregge; R=knR=\frac kn regola overhead contro protezione; burst ⇒\Rightarrow interleaving (introduce ritardo).

Parità. 10110011011001: quattro 1, b8=0b_8=0, trasmesso 1011001010110010; un errore rilevato, due (pari) no; R=78R=\frac78, overhead 12,5%12{,}5\%.

Hamming. x=1011→y=1011 010x=1011\to y=1011\,010 (b5=0b_5=0, b6=1b_6=1, b7=0b_7=0). Ricevuto 1001 0101001\,010: controlli {1,2,4,5}\{1,2,4,5\} OK; {1,3,4,6}\{1,3,4,6\} e {2,3,4,7}\{2,3,4,7\} falliscono; intersezione {3,4}\{3,4\}; il 4 è nel controllo OK ⇒\Rightarrow bit 3.

Interleaving 3×73\times7. Trasmissione 1,8,15,2,9,16,…1,8,15,2,9,16,\dots: burst di 3 ⇒\Rightarrow un errore per riga, corretto; burst di 4 ⇒\Rightarrow due errori nella stessa riga, non corretto. Profondità ≥\ge lunghezza del burst, a prezzo di ritardo.

Errori tipici: PER=1−εL\mathrm{PER}=1-\varepsilon^L o ε\varepsilon; non allungare il pacchetto con la ridondanza; usare LL invece di L′L'; contare solo P(0)P(0) come successo con un codice che corregge 1; credere che la parità rilevi gli errori pari.

Teoria: Metriche e prestazioni di rete per i servizi multimedialiUna rete è una pila di livelli: ogni livello offre un servizio al superiore tramite un'interfaccia e dialoga con il livello pari con un protocollo; il pacchetto di un livello è il payload del livello inferiore ($\mathrm{PDU}n=\mathrm{PCI}n+\mathrm{SDU}n$), con efficienza $\eta=\frac{|\mathrm{SDU}n|}{|\mathrm{PDU}n|}$. Metriche: bit-rate $R_0$ (livello fisico) $\ge$ throughput $S$ $\ge$ goodput (throughput a lungo termine a livello applicazione). Ritardo nodale $d=d{proc}+d{queue}+d{trans}+d{prop}$ con $d{trans}=\frac LR$ e $d_{prop}=\frac xc$; ritardo end-to-end = somma dei nodali; jitter = variabilità del ritardo; BDP $=S\cdot\mathrm{RTT}$ (con il bit-rate minimo del percorso). Affidabilità: nel canale binario simmetrico $\mathrm{PER}=1-(1-\varepsilon)^L$ e $P(\ell)=\binom L\ell\varepsilon^\ell(1-\varepsilon)^{L-\ell}$; codici di canale $R=\frac kn$, parità, Hamming, interleaving per i burst; perdite per errori o congestione, $\mathrm{PDR}=1-P_{\text{LOSS}}$.Metriche e prestazioni di rete per i servizi multimediali →.

Teoria collegata