Salta al contenuto
Note per Studenti Esercizio - Campionamento, quantizzazione e PSNR (domande ed esercizi del corso)

Esercizio - Campionamento, quantizzazione e PSNR (domande ed esercizi del corso)

In questa pagina 5

Teoria: Digitalizzazione dei segnali multimediali - campionamento, quantizzazione e binarizzazioneLa conversione analogico-digitale (ADC) ha tre passi: campionamento $s_c(n)=s(nT_c)$, quantizzazione su $L=2^m$ livelli, binarizzazione dell'indice in $m$ bit; il bit-rate vale $R=F_c\log_2L$. Per il teorema di Shannon un segnale a banda limitata $f_M$ si ricostruisce senza errore se $F_c\ge2f_M$ (criterio di Nyquist), altrimenti c'è aliasing; per questo prima del campionatore c'è un filtro passa-basso. La quantizzazione uniforme di passo $\Delta=\frac{2A}{L}$ è irreversibile, con errore massimo $\frac\Delta2$ e $\mathrm{MSE}=\frac{\Delta^2}{12}$; la qualità si misura con MSE e $\mathrm{PSNR}=10\log_{10}\frac{(2^b-1)^2}{\mathrm{MSE}}$. In ricezione il bit mapper ricostruisce i valori e l'interpolazione con un nucleo $h$ (sample and hold, lineare, cubica, sinc troncato) riporta il segnale al tempo continuo.Digitalizzazione dei segnali multimediali - campionamento, quantizzazione e binarizzazione → (criterio di Nyquist, aliasing, quantizzazione uniforme, MSE=Δ2/12\mathrm{MSE}=\Delta^2/12, PSNR, interpolazione). Fonte: domande a risposta multipla e slide del corso di Reti di Calcolatori, Ing. Informatica UniPD 2025-26, più esercizi costruiti sul modello di quelli del corso (indicati). I conti sono verificati in Python.

1. Criterio di Nyquist e filtro anti-aliasing

Domanda 1. Un segnale vocale è digitalizzato con un filtro anti-aliasing a frequenza di taglio f0f_0 e con un campionatore a 10 kHz. Quale condizione su f0f_0 assicura l'assenza di aliasing? (a) f0<4f_0<4 kHz, (b) f0<10f_0<10 kHz, (c) f0<20f_0<20 kHz, (d) f0>20f_0>20 kHz.

Il criterio è Fc≥2f0F_c\ge2f_0, cioè f0≤Fc2=5f_0\le\frac{F_c}2=5 kHz. Un'opzione è giusta se la sua condizione implica f0≤5f_0\le5 kHz: (a) sì (se f0<4f_0<4 allora f0≤5f_0\le5). (b) no: per f0=7f_0=7 kHz, che verifica f0<10f_0<10, c'è aliasing (7 kHz si ripiega a ∣7−10∣=3|7-10|=3 kHz). (c) e (d) sono ancora più lasche (e (d) chiede addirittura un filtro che lascia passare tutto, cioè nessun filtro).

Domanda 2. Un segnale ha banda limitata a 8 kHz e viene campionato. Frequenza minima di campionamento per evitare aliasing? (a) 16 kHz, (b) 8 kHz, (c) 4 kHz, (d) 32 kHz.

Fc≥2fmax⁡=2⋅8=16F_c\ge2f_{\max}=2\cdot8=16 kHz: (a). (b) e (c) violano Nyquist (si campionerebbero a meno di due campioni per periodo della componente più veloce); (d) rispetta Nyquist ma non è il minimo.

Domanda 3. La minima frequenza di campionamento per un segnale con banda 10 kHz è: (a) 20 kHz, (b) 10 kHz, (c) 5 kHz. Direttamente da Nyquist: 2⋅10=202\cdot10=20 kHz: (a).

Esercizio (aliasing, costruito sul modello del corso). Campionando a Fc=8F_c=8 kHz senza filtro, a quale frequenza appaiono i toni a 3, 5, 6, 7, 9, 13 kHz? Formula: fapp=∣f−Fc⋅round(f/Fc)∣f_{\text{app}}=|f-F_c\cdot\mathrm{round}(f/F_c)|.

ff (kHz) f/Fcf/F_c multiplo di FcF_c più vicino fappf_{\text{app}}
3 0,375 0 3 (nessun aliasing, 3<Fc/2=43<F_c/2=4)
5 0,625 8 3
6 0,75 8 2
7 0,875 8 1
9 1,125 8 1
13 1,625 16 3

Si vede che 3, 5 e 13 kHz diventano indistinguibili (tutti a 3 kHz): una volta campionato, un alias non si può eliminare; per questo il filtro va prima del campionatore. Con il filtro a Fc/2=4F_c/2=4 kHz i toni a 5, 6, 7, 9, 13 kHz sono eliminati (attenuati) prima di essere campionati.

2. Quantizzazione uniforme

Esercizio (campioni delle slide). Il segnale ha ampiezza in [0,1][0,1] e si usa un quantizzatore con livelli multipli di Δ=17≈0,143\Delta=\frac17\approx0{,}143 (livelli Δ,2Δ,…,7Δ\Delta,2\Delta,\dots,7\Delta). I campioni sono 0,546, 0,876, 1, 0,832, 0,454, 0,162, 0,092, 0,2600{,}546,\ 0{,}876,\ 1,\ 0{,}832,\ 0{,}454,\ 0{,}162,\ 0{,}092,\ 0{,}260.

Indici round(x/Δ)=round(7x)\mathrm{round}(x/\Delta)=\mathrm{round}(7x): 3,82→43{,}82\to4; 6,13→66{,}13\to6; 7→77\to7; 5,82→65{,}82\to6; 3,18→33{,}18\to3; 1,13→11{,}13\to1; 0,64→10{,}64\to1; 1,82→21{,}82\to2. Livelli quantizzati: 4Δ,6Δ,7Δ,6Δ,3Δ,Δ,Δ,2Δ4\Delta,6\Delta,7\Delta,6\Delta,3\Delta,\Delta,\Delta,2\Delta (come nella slide), cioè 0,571; 0,857; 1; 0,857; 0,429; 0,143; 0,143; 0,2860{,}571;\,0{,}857;\,1;\,0{,}857;\,0{,}429;\,0{,}143;\,0{,}143;\,0{,}286. Errori Q(x)−xQ(x)-x: +0,025; −0,019; 0; +0,025; −0,025; −0,019; +0,051; +0,026+0{,}025;\,-0{,}019;\,0;\,+0{,}025;\,-0{,}025;\,-0{,}019;\,+0{,}051;\,+0{,}026: tutti sotto Δ2=0,0714\frac\Delta2=0{,}0714 in modulo. MSE=1N∑en2≈7,4⋅10−4\mathrm{MSE}=\frac1N\sum e_n^2\approx7{,}4\cdot10^{-4}, più piccolo della previsione Δ212=1,7⋅10−3\frac{\Delta^2}{12}=1{,}7\cdot10^{-3}: con soli 8 campioni l'errore non è ancora distribuito in modo uniforme (la previsione è una media su molti campioni). Se ogni indice è scritto su 3 bit (L≤8L\le8 livelli), il flusso binario è 100 110 111 110 011 001 001 010100\,110\,111\,110\,011\,001\,001\,010 (24 bit per 8 campioni).

Esercizio (mid-tread contro mid-rise, costruito). Segnale in (−1,1)(-1,1), Δ=0,5\Delta=0{,}5 (L=4L=4). Si quantizza x=0,3x=0{,}3.

  • Mid-tread: Q=Δ round(x/Δ)=0,5 round(0,6)=0,5Q=\Delta\,\mathrm{round}(x/\Delta)=0{,}5\,\mathrm{round}(0{,}6)=0{,}5; errore +0,2+0{,}2 (minore di Δ/2=0,25\Delta/2=0{,}25).
  • Mid-rise: Q=Δ(⌊x/Δ⌋+12)=0,5 (⌊0,6⌋+0,5)=0,25Q=\Delta(\lfloor x/\Delta\rfloor+\frac12)=0{,}5\,(\lfloor0{,}6\rfloor+0{,}5)=0{,}25; errore −0,05-0{,}05. Per il mid-rise, 0 non è un livello: i livelli sono ±0,25,±0,75\pm0{,}25,\pm0{,}75. Il mid-tread con L=4L=4 su (−1,1)(-1,1) avrebbe livelli −1,−0,5,0,0,5-1,-0{,}5,0,0{,}5 (asimmetrici: serve un livello in più dal lato positivo) oppure tre livelli simmetrici −0,5,0,0,5-0{,}5,0,0{,}5.

Esercizio (SQNR, costruito). (a) Quanti bit servono per avere SQNR≥90\mathrm{SQNR}\ge90 dB con segnale uniforme? 6,02 b≥90⇒b≥14,956{,}02\,b\ge90\Rightarrow b\ge14{,}95, quindi 15 bit (SQNR =90,3=90{,}3 dB). (b) Se si passa da 8 a 12 bit per campione di un segnale uniforme, di quanto migliora il rapporto segnale-rumore? 4⋅6,02=24,14\cdot6{,}02=24{,}1 dB; la potenza del rumore diventa 144=1256\frac1{4^4}=\frac1{256} della precedente (perché Δ\Delta si divide per 16 e MSE∝Δ2\mathrm{MSE}\propto\Delta^2). (c) Un convertitore a 10 bit con ingresso uniforme su (−1,1)(-1,1): Δ=21024=0,00195\Delta=\frac2{1024}=0{,}00195, MSE=Δ212=3,2⋅10−7\mathrm{MSE}=\frac{\Delta^2}{12}=3{,}2\cdot10^{-7}, SQNR=60,2\mathrm{SQNR}=60{,}2 dB.

3. MSE e PSNR

Esercizio (PSNR dopo requantizzazione, costruito sul modello della slide). Un'immagine in scala di grigi a 8 bit viene requantizzata a 5 bit (32 livelli). Stima del PSNR assumendo errore uniforme.

  • Passo: Δ=25632=8\Delta=\frac{256}{32}=8 livelli di grigio.
  • MSE=Δ212=6412=5,33\mathrm{MSE}=\frac{\Delta^2}{12}=\frac{64}{12}=5{,}33.
  • PSNR=10log⁡1025525,33=10log⁡1012 192=40,86\mathrm{PSNR}=10\log_{10}\frac{255^2}{5{,}33}=10\log_{10}12\,192=40{,}86 dB. Con la regola 48,13−10log⁡105,33=48,13−7,27=40,8648{,}13-10\log_{10}5{,}33=48{,}13-7{,}27=40{,}86 dB.
  • Giudizio: "molto buona" (40-45 dB). A 4 bit (da 8): Δ=16\Delta=16, MSE =21,3=21{,}3, PSNR =34,8=34{,}8 dB ("buona"); a 2 bit: 22,822{,}8 dB ("scadente"). Ogni bit tolto riduce il PSNR di circa 6 dB (da 5 a 4 bit: 40,9→34,840{,}9\to34{,}8 dB).

Esercizio (da MSE a PSNR). Due versioni di una stessa immagine hanno MSE 10 e MSE 100. PSNR1=48,13−10=38,1\mathrm{PSNR}_1=48{,}13-10=38{,}1 dB, PSNR2=48,13−20=28,1\mathrm{PSNR}_2=48{,}13-20=28{,}1 dB: un fattore 10 sull'MSE vale 10 dB. La prima è "buona", la seconda "scadente".

4. Binarizzazione e interpolazione

Esercizio (bit mapper, dalla slide). I livelli −1,−0,5,0,0,5,1-1,-0{,}5,0,0{,}5,1 hanno i codici 000,001,010,011,100000,001,010,011,100. Il ricevitore riceve 010 001 000 001 010010\,001\,000\,001\,010: legge a blocchi di 3 bit →0,−0,5,−1,−0,5,0\to0,-0{,}5,-1,-0{,}5,0. Si trasmette l'indice binarizzato, non il valore (per esempio con Δ=1\Delta=1 e Q(3,1)=3Q(3{,}1)=3 si trasmette il codice di 3, non il numero 3).

Esercizio (interpolazione, costruito). Campioni s(0)=0s(0)=0, s(Tc)=2s(T_c)=2, s(2Tc)=4s(2T_c)=4. Valore ricostruito a t=1,5Tct=1{,}5T_c:

  • sample and hold: s~=s(Tc)=2\tilde s=s(T_c)=2 (il rettangolo rect(t−12)\mathrm{rect}(t-\frac12) dura da TcT_c a 2Tc2T_c);
  • lineare: s~=2+42=3\tilde s=\frac{2+4}2=3 (media dei due campioni vicini: il triangolo vale 12\frac12 a distanza 12\frac12);
  • a campione t=Tct=T_c entrambi i nuclei danno 2: l'interpolazione conserva i campioni perché h(0)=1h(0)=1 e h(n)=0h(n)=0 per n≠0n\ne0. Per un segnale che è davvero una retta (qui s=2t/Tcs=2t/T_c) l'interpolazione lineare è esatta (vale 3 a 1,5Tc1{,}5T_c) e il sample and hold sbaglia di 1.

Errori tipici

  • Scrivere Fc≥fMF_c\ge f_M invece di Fc≥2fMF_c\ge2f_M; scambiare "minimo" con "sufficiente".
  • Pensare che il throughput della rete cambi l'aliasing: dipende solo da FcF_c e dal filtro.
  • Usare Δ=AL\Delta=\frac AL per (−A,A)(-A,A) (è 2AL\frac{2A}L).
  • Dimenticare che il PSNR cresce di circa 6 dB per bit e che l'MSE è in unità del segnale al quadrato.
  • Confondere livelli (valori) e indici (bit): al ricevitore serve il bit mapper.

Versione ripasso

Nyquist. Fc≥2f0F_c\ge2f_0, quindi con Fc=10F_c=10 kHz il filtro deve avere f0≤5f_0\le5 kHz: vale la (a) f0<4f_0<4 kHz (implica f0≤5f_0\le5), non la (b) f0<10f_0<10 (con 7 kHz c'è aliasing, 7 kHz →3\to3 kHz). Banda 8 kHz ⇒Fc≥16\Rightarrow F_c\ge16 kHz (32 è sufficiente ma non minimo); banda 10 kHz ⇒20\Rightarrow20 kHz.

Aliasing. fapp=∣f−Fc round(f/Fc)∣f_{\text{app}}=|f-F_c\,\mathrm{round}(f/F_c)|; con Fc=8F_c=8 kHz: 3→33\to3, 5→35\to3, 6→26\to2, 7→17\to1, 9→19\to1, 13→313\to3. Toni diversi diventano indistinguibili: filtrare prima di campionare (Fc/2=4F_c/2=4 kHz).

Quantizzazione. Slide: Δ=17\Delta=\frac17, indici round(7x)\mathrm{round}(7x): 4,6,7,6,3,1,1,24,6,7,6,3,1,1,2 per 0,546,0,876,1,0,832,0,454,0,162,0,092,0,2600{,}546,0{,}876,1,0{,}832,0{,}454,0{,}162,0{,}092,0{,}260; errori ≤Δ2=0,0714\le\frac\Delta2=0{,}0714; MSE≈7,4⋅10−4<Δ212=1,7⋅10−3\mathrm{MSE}\approx7{,}4\cdot10^{-4}<\frac{\Delta^2}{12}=1{,}7\cdot10^{-3} (pochi campioni). Mid-tread Q=Δ round(x/Δ)Q=\Delta\,\mathrm{round}(x/\Delta) contro mid-rise Δ(⌊x/Δ⌋+12)\Delta(\lfloor x/\Delta\rfloor+\frac12): x=0,3x=0{,}3, Δ=0,5\Delta=0{,}5: 0,50{,}5 (errore 0,20{,}2) contro 0,250{,}25 (errore −0,05-0{,}05).

SQNR. 6,02 b6{,}02\,b dB per un segnale uniforme: ≥90\ge90 dB ⇒b=15\Rightarrow b=15 (90,3 dB); da 8 a 12 bit +24,1+24{,}1 dB (rumore diviso per 256); 10 bit su (−1,1)(-1,1): Δ=21024\Delta=\frac2{1024}, MSE=3,2⋅10−7\mathrm{MSE}=3{,}2\cdot10^{-7}, 60,260{,}2 dB.

PSNR. 8 →\to 5 bit: Δ=8\Delta=8, MSE=6412=5,33\mathrm{MSE}=\frac{64}{12}=5{,}33, PSNR=10log⁡1025525,33=40,86\mathrm{PSNR}=10\log_{10}\frac{255^2}{5{,}33}=40{,}86 dB ("molto buona"). Da 8 a 4 bit: 34,834{,}8 dB; a 2 bit: 22,822{,}8 dB; −6-6 dB per bit. MSE 10 →38,1\to38{,}1 dB, MSE 100 →28,1\to28{,}1 dB (fattore 10 sull'MSE =10=10 dB).

Bit mapper. Codici 000,001,010,011,100↔−1,−0,5,0,0,5,1000,001,010,011,100\leftrightarrow-1,-0{,}5,0,0{,}5,1: 010 001 000 001 010→0,−0,5,−1,−0,5,0010\,001\,000\,001\,010\to0,-0{,}5,-1,-0{,}5,0. Si trasmette l'indice, non il valore.

Interpolazione. Campioni 0,2,40,2,4 a TcT_c: a 1,5Tc1{,}5T_c sample and hold dà 2, lineare dà 3 (esatto per una retta); entrambi conservano i campioni (h(0)=1h(0)=1, h(n)=0h(n)=0).

Errori tipici: Fc≥fMF_c\ge f_M invece di 2fM2f_M; minimo contro sufficiente; throughput e aliasing; Δ=A/L\Delta=A/L; livelli contro indici.

Teoria: Digitalizzazione dei segnali multimediali - campionamento, quantizzazione e binarizzazioneLa conversione analogico-digitale (ADC) ha tre passi: campionamento $s_c(n)=s(nT_c)$, quantizzazione su $L=2^m$ livelli, binarizzazione dell'indice in $m$ bit; il bit-rate vale $R=F_c\log_2L$. Per il teorema di Shannon un segnale a banda limitata $f_M$ si ricostruisce senza errore se $F_c\ge2f_M$ (criterio di Nyquist), altrimenti c'è aliasing; per questo prima del campionatore c'è un filtro passa-basso. La quantizzazione uniforme di passo $\Delta=\frac{2A}{L}$ è irreversibile, con errore massimo $\frac\Delta2$ e $\mathrm{MSE}=\frac{\Delta^2}{12}$; la qualità si misura con MSE e $\mathrm{PSNR}=10\log_{10}\frac{(2^b-1)^2}{\mathrm{MSE}}$. In ricezione il bit mapper ricostruisce i valori e l'interpolazione con un nucleo $h$ (sample and hold, lineare, cubica, sinc troncato) riporta il segnale al tempo continuo.Digitalizzazione dei segnali multimediali - campionamento, quantizzazione e binarizzazione →.

Teoria collegata