Salta al contenuto
Note per Studenti Campionamento e interpolazione - mantenimento, lineare e ideale

Campionamento e interpolazione - mantenimento, lineare e ideale

In questa pagina 6

Un segnale analogico ha infiniti valori, uno per ogni istante: non si può memorizzare né trasmettere con un numero finito di bit. Il primo passo per renderlo digitale è guardarlo solo a istanti regolari, il campionamento; per tornare al segnale continuo serve l'operazione inversa, l'interpolazione. Qui si vede come funzionano e quando la ricostruzione è perfetta. La teoria completa, con le trasformate di Fourier, è in Teorema del campionamento, interpolazione e aliasingTeorema di Shannon: un segnale a banda limitata $\omega_M$ si ricostruisce esattamente dai campioni se $T_c<\pi/\omega_M$ (frequenza di campionamento maggiore di quella di Nyquist $2f_{\max}$), con la formula di interpolazione ideale $x(t)=\sum_nx(nT_c)\operatorname{sinc}\left(\frac{t-nT_c}{T_c}\right)$. Sotto Nyquist c'è aliasing: le frequenze alte si confondono con quelle basse e l'informazione è persa.Teorema del campionamento, interpolazione e aliasing → e Campionamento e formula di PoissonCampionare un segnale continuo $x(t)$ con passo $T_c$ dà la sequenza $x(nT_c)$. La formula di Poisson lega gli spettri: $\hat W(\omega)=\frac1{T_c}\sum_kX\left(\frac{\omega+2\pi k}{T_c}\right)$, cioè lo spettro del segnale campionato è la ripetizione periodica (di periodo $2\pi/T_c$ in pulsazione analogica) dello spettro originale, riscalata. Se le repliche si sovrappongono si ha aliasing.Campionamento e formula di Poisson → (Segnali e Sistemi), Campionamento e ricostruzioneIl campionamento $s_c(nT)=s(nT)$ trasforma un segnale continuo in uno discreto e, in frequenza, ripete lo spettro con periodo $F_c=1/T$: $S_c(f)=\sum_kS(f-kF_c)$. Se le repliche si sovrappongono si ha aliasing e il segnale non è recuperabile. Un interpolatore $\mathbb Z(T)\to\mathbb R$ con risposta impulsiva $g$ produce $\tilde s(t)=\sum_nT g(t-nT)s(nT)$ e $\tilde S=G,S_c$. Teorema del campionamento: se $s$ ha banda $B$ e $F_c\ge2B$, l'interpolatore ideale $G=\operatorname{rect}(f/F_c)$ ricostruisce esattamente $s(t)=\sum s(nT)\operatorname{sinc}(F_c(t-nT))$. Se le ipotesi non valgono c'è un errore, in banda e fuori banda, riducibile con un prefiltro anti-aliasing.Campionamento e ricostruzione → e Interpolazione LTI e teorema del campionamentoIl campionatore R→Z(T) ripete lo spettro con periodo Fc = 1/T (Sc(f) = Σ S(f - kFc), senza fattore 1/T). Il filtro interpolatore Z(T)→R ha y(t) = Σ x(nT) g0(t-nT) con g0 = T g e in frequenza Y = G·X. Se S è nulla fuori da (-B,B) e Fc ≥ 2B, con g0(t) = sinc(Fc t) si ricostruisce esattamente s(t) dai campioni. Altrimenti c'è un errore (in banda per l'aliasing, fuori banda per la parte tagliata), ridotto da un prefiltro anti-aliasing.Interpolazione LTI e teorema del campionamento → (Teoria dei Segnali). Versioni per le altre lauree: Conversione A-D e D-A - campionamento, anti-aliasing e interpolazionePer trasmettere un segnale analogico in forma digitale lo si campiona (a frequenza $F_s\ge2B$, dopo un filtro anti-aliasing), lo si quantizza su $L=2^b$ livelli e si trasforma ogni livello in $b$ bit. Il bit-rate nominale è $R_b=F_s,b$. Al ricevitore si fa il percorso inverso e si interpola (con un filtro con risposta $T_s,\mathrm{rect}\frac f{2B}$ in teoria, con un mantenitore di ordine zero in pratica). La quantizzazione è l'unica operazione che introduce un errore irreversibile.Conversione A-D e D-A - campionamento, anti-aliasing e interpolazione → (Ing. Elettronica) e 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 → (Ing. delle Telecomunicazioni). I segnali a tempo continuo si descrivono con gli strumenti di Segnali a tempo continuo - sinusoidi, rect e trasformazioni dell'asse dei tempiUn segnale è una funzione del tempo; è analogico se tempo e valori sono continui, digitale se entrambi sono discreti. La sinusoide A cos(2πf₀t + φ₀) ha periodo T = 1/f₀. Con rect(t) (1 per |t| ≤ 1/2) e triang(t) = 1 − |t| (|t| ≤ 1) si costruiscono impulsi; rect((t − T/2)/T) è 1 su [0,T]. Traslazione s(t − t₀) sposta a destra di t₀, scalamento s(t/A) dilata di A; in s((t − t₀)/A) si scala prima e si trasla poi. Una trasmissione è una somma Σ a_m z(t − mT). Il canale AWGN è r(t) = A·s_Tx(t − t₀) + w(t).Segnali a tempo continuo - sinusoidi, rect e trasformazioni dell'asse dei tempi →.

Campionamento

Il campionamento produce un segnale a tempo discreto a partire da uno a tempo continuo: si legge s(t)s(t) ogni TT secondi, sc(mT)≜s(mT),m∈Z.s_c(mT)\triangleq s(mT),\qquad m\in\mathbb Z. TT è il periodo di campionamento e Fs=1TF_s=\frac1T la frequenza di campionamento. Il risultato sc(mT)s_c(mT) è un segnale a tempo discreto: esiste solo negli istanti mTmT, e non ha senso parlare di sc(mT+ε)s_c(mT+\varepsilon). Tutto quello che ss fa tra due campioni successivi viene scartato.

Esempio. s(t)=cos⁡(2πt8T)s(t)=\cos\big(\frac{2\pi t}{8T}\big) (una sinusoide con periodo 8T8T, cioè otto campioni per periodo) ha campioni sc(0)=1s_c(0)=1, sc(T)=0,7071s_c(T)=0{,}7071, sc(2T)=0s_c(2T)=0, sc(3T)=−0,7071s_c(3T)=-0{,}7071, sc(4T)=−1s_c(4T)=-1, e così via.

Interpolazione

L'interpolazione ricostruisce un segnale a tempo continuo da quello a tempo discreto: ogni campione fa da "peso" di una copia ritardata di un impulso base h(t)h(t): s(t)=∑m=−∞+∞sc(mT) h(t−mT).s(t)=\sum_{m=-\infty}^{+\infty}s_c(mT)\,h(t-mT). Il termine mm è l'impulso hh spostato nell'istante mTmT (grazie al ritardo mTmT) e moltiplicato per il campione sc(mT)s_c(mT). La funzione hh è la risposta impulsiva del filtro interpolatore, ed è l'unico ingrediente da scegliere. Tre scelte classiche, tutte descritte con le funzioni della nota sui segnali.

1. Interpolatore a mantenimento (holder, o zero-order hold). h(t)=rect⁡(t−T/2T)h(t)=\operatorname{rect}\Big(\dfrac{t-T/2}{T}\Big), un rettangolo di altezza 11 su [0,T][0,T]. Ogni campione viene mantenuto costante per un periodo: si ottiene una scala di gradini larghi TT, con il valore del campione che comincia in mTmT.

2. Interpolatore lineare. h(t)h(t) è un triangolo. Nella lezione parte da 00 in t=0t=0, sale a 11 in t=Tt=T e torna a 00 in t=2Tt=2T (cioè h(t)=triang⁡(t−TT)h(t)=\operatorname{triang}\big(\frac{t-T}{T}\big)): la ricostruzione è la spezzata che unisce i campioni successivi, ritardata di TT (perché il picco è in TT, non in 00). Con il triangolo centrato, h(t)=triang⁡(tT)h(t)=\operatorname{triang}\big(\frac tT\big), la spezzata non ha ritardo: nell'intervallo [mT,(m+1)T][mT,(m+1)T] vale (1−α)sc(mT)+α sc((m+1)T)(1-\alpha)s_c(mT)+\alpha\,s_c((m+1)T) con α=t−mTT\alpha=\frac{t-mT}{T}, e in t=mTt=mT riproduce esattamente il campione, perché lì gli altri triangoli valgono 00.

3. Interpolatore ideale. h(t)=sinc⁡(tT)h(t)=\operatorname{sinc}\big(\frac tT\big) con sinc⁡(x)=sin⁡(πx)πx\operatorname{sinc}(x)=\dfrac{\sin(\pi x)}{\pi x} (e sinc⁡(0)=1\operatorname{sinc}(0)=1). Questa funzione vale 11 in t=0t=0 e si annulla in tutti gli altri multipli interi di TT: nei punti di campionamento riproduce quindi il campione, e tra un campione e l'altro somma le "code" oscillanti degli impulsi vicini.

Grafico interattivo: Segnale s(t) = cos(2πt/8T) con T = 1, ricostruzione a mantenimento (gradini) e interpolazione lineare centrata (spezzata) a partire dai campioni s(mT)

Esempio numerico. Per s(t)=cos⁡(2πt8T)s(t)=\cos\big(\frac{2\pi t}{8T}\big) si valuta la ricostruzione in t=1,5 Tt=1{,}5\,T e t=2,5 Tt=2{,}5\,T (a metà tra due campioni):

t=1,5 Tt=1{,}5\,T t=2,5 Tt=2{,}5\,T
valore vero 0,38270{,}3827 −0,3827-0{,}3827
mantenimento (campione precedente) sc(T)=0,7071s_c(T)=0{,}7071 sc(2T)=0s_c(2T)=0
lineare (media dei due campioni vicini) 0,7071+02=0,3536\frac{0{,}7071+0}{2}=0{,}3536 0−0,70712=−0,3536\frac{0-0{,}7071}{2}=-0{,}3536
sinc (somma di molti campioni) 0,38270{,}3827 −0,3827-0{,}3827

L'errore del mantenimento è il più grande, quello lineare è piccolo e quello della sinc è praticamente nullo (il segnale ha banda 18T\frac1{8T}, ben sotto il limite 12T\frac1{2T} del teorema qui sotto). (Valori ricalcolati con Python, con la serie della sinc troncata a ±2000\pm2000 campioni.)

Teorema del campionamento

La sinc è l'interpolatore speciale, e il motivo è questo teorema.

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).

Il significato in frequenza: campionare ripete lo spettro del segnale attorno a tutti i multipli di FsF_s. Se Fs≥2BF_s\ge2B le copie non si sovrappongono e un filtro passa-basso ideale (la cui risposta impulsiva è la sinc) isola quella centrale; se Fs<2BF_s<2B le copie si sovrappongono (aliasing) e il segnale originale non è più recuperabile da nessun filtro. In sintesi, per ricostruire s(t)s(t) servono:

  • un periodo TT abbastanza piccolo (Fs≥2BF_s\ge2B);
  • un interpolatore di tipo sinc.

Gli altri interpolatori (mantenimento, lineare) non sono esatti neanche con TT piccolo, ma sono realizzabili: la sinc si estende da −∞-\infty a +∞+\infty e quindi non è un filtro causale. In pratica si sovracampiona e si accetta l'errore residuo.

Campionamento come codifica di sorgente

La coppia campionatore-interpolatore è un esempio di codifica di sorgente (il campionatore) e decodifica di sorgente (l'interpolatore): si rappresenta l'informazione del segnale in una forma più "economica", che si può memorizzare o trasmettere. La codifica è senza perdite se si rispetta il teorema del campionamento: da quei campioni si riottiene esattamente s(t)s(t). Il passo successivo è rappresentare ogni campione (un numero reale) con un numero finito di bit, la quantizzazione, che invece introduce un errore (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 →, Quantizzazione non uniforme, companding e conversione A-DIn un quantizzatore non uniforme gli intervalli I_i hanno larghezze diverse (stretti dove la densità è alta) e la potenza dell'errore è M_e = Σ M_{e_i} P(x ∈ I_i), con M_{e_i} = E[(x − a_qi)² | x ∈ I_i]. Si realizza con il companding (compressore μ(x), quantizzatore uniforme, espansore) o raggruppando gli intervalli di un quantizzatore uniforme fine. Nella conversione A-D con campionamento ogni T_s e b bit per campione, T_b = T_s/b e R_b = b/T_s bit/s. Esempio completo con densità esponenziale a due lati: v_sat, b, bit rate e periodo di simbolo della 16-QAM.Quantizzazione non uniforme, companding e conversione A-D →).

Esercizi svolti

Domande d'esame

  1. Definire campionamento e interpolazione e scrivere la formula di interpolazione. sc(mT)=s(mT)s_c(mT)=s(mT); s(t)=∑msc(mT)h(t−mT)s(t)=\sum_ms_c(mT)h(t-mT) con hh risposta impulsiva dell'interpolatore.
  2. Enunciare il teorema del campionamento. Segnale di banda BB, Fs=1T≥2BF_s=\frac1T\ge2B, interpolatore h(t)=sinc⁡(t/T)h(t)=\operatorname{sinc}(t/T): ricostruzione esatta.
  3. Differenza tra interpolatore a mantenimento, lineare e ideale? Rispettivamente rettangolo (gradini), triangolo (spezzata), sinc (ricostruzione esatta per segnali a banda limitata ma non causale).

Versione ripasso

Campionamento (Teorema del campionamento, interpolazione e aliasingTeorema di Shannon: un segnale a banda limitata $\omega_M$ si ricostruisce esattamente dai campioni se $T_c<\pi/\omega_M$ (frequenza di campionamento maggiore di quella di Nyquist $2f_{\max}$), con la formula di interpolazione ideale $x(t)=\sum_nx(nT_c)\operatorname{sinc}\left(\frac{t-nT_c}{T_c}\right)$. Sotto Nyquist c'è aliasing: le frequenze alte si confondono con quelle basse e l'informazione è persa.Teorema del campionamento, interpolazione e aliasing →)

  • sc(mT)=s(mT)s_c(mT)=s(mT): segnale a tempo discreto, esiste solo in mTmT; Fs=1TF_s=\frac1T. Esempio cos⁡(2πt8T)\cos\big(\frac{2\pi t}{8T}\big): 1; 0,7071; 0; −0,7071; −1;…1;\ 0{,}7071;\ 0;\ -0{,}7071;\ -1;\dots

Interpolazione

  • s(t)=∑msc(mT) h(t−mT)s(t)=\sum_ms_c(mT)\,h(t-mT), con h(t)h(t) risposta impulsiva dell'interpolatore.
  • Mantenimento: h=rect⁡(t−T/2T)h=\operatorname{rect}\big(\frac{t-T/2}T\big), gradini larghi TT. Lineare: hh triangolare (triang⁡(t−TT)\operatorname{triang}\big(\frac{t-T}T\big) ritardato di TT; triang⁡(tT)\operatorname{triang}\big(\frac tT\big) senza ritardo), spezzata tra i campioni. Ideale: h=sinc⁡(tT)=sin⁡(πt/T)πt/Th=\operatorname{sinc}\big(\frac tT\big)=\frac{\sin(\pi t/T)}{\pi t/T}, =1=1 in 00 e 00 nei multipli interi non nulli di TT.
  • In t=1,5 Tt=1{,}5\,T per cos⁡(2πt8T)\cos\big(\frac{2\pi t}{8T}\big): vero 0,38270{,}3827; mantenimento 0,70710{,}7071; lineare 0,35360{,}3536; sinc 0,38270{,}3827.

Teorema del campionamento (Campionamento e formula di PoissonCampionare un segnale continuo $x(t)$ con passo $T_c$ dà la sequenza $x(nT_c)$. La formula di Poisson lega gli spettri: $\hat W(\omega)=\frac1{T_c}\sum_kX\left(\frac{\omega+2\pi k}{T_c}\right)$, cioè lo spettro del segnale campionato è la ripetizione periodica (di periodo $2\pi/T_c$ in pulsazione analogica) dello spettro originale, riscalata. Se le repliche si sovrappongono si ha aliasing.Campionamento e formula di Poisson →)

  • Banda BB e Fs=1T≥2BF_s=\frac1T\ge2B (cioè T≤12BT\le\frac1{2B}): s(t)=∑ms(mT)sinc⁡(t−mTT)s(t)=\sum_ms(mT)\operatorname{sinc}\big(\frac{t-mT}T\big).
  • Campionare ripete lo spettro attorno ai multipli di FsF_s: con Fs≥2BF_s\ge2B le copie sono separate (basta un passa-basso), con Fs<2BF_s<2B si ha aliasing.
  • La sinc non è causale: in pratica si usano mantenimento o lineare e si sovracampiona.

Codifica di sorgente

Perché la sinc e i confronti

  • Triangolo centrato: in [mT,(m+1)T][mT,(m+1)T] vale (1−α)sc(mT)+αsc((m+1)T)(1-\alpha)s_c(mT)+\alpha s_c((m+1)T) con α=t−mTT\alpha=\frac{t-mT}T; in t=mTt=mT ricostruisce il campione perché gli altri impulsi valgono 00.
  • In t=2,5 Tt=2{,}5\,T: vero −0,3827-0{,}3827; mantenimento 00; lineare −0,3536-0{,}3536; sinc −0,3827-0{,}3827.
  • Teorema: se S(f)=0S(f)=0 per ∣f∣>B|f|>B e Fs≥2BF_s\ge2B, il passa-basso ideale (risposta impulsiva sinc) ricostruisce esattamente; se Fs<2BF_s<2B le copie dello spettro si sovrappongono (aliasing).

Errori tipici

  • Scegliere Fs=BF_s=B invece di Fs≥2BF_s\ge2B.
  • Dimenticare il ritardo di TT del triangolo triang⁡(t−TT)\operatorname{triang}\big(\frac{t-T}T\big) della lezione.
  • Dire che l'interpolatore a mantenimento è esatto per TT piccolo (lo è solo al limite T→0T\to0).

Esercizi su questo argomento

Teoria collegata