Salta al contenuto
Note per Studenti Conversione A-D e D-A - campionamento, anti-aliasing e interpolazione

Conversione A-D e D-A - campionamento, anti-aliasing e interpolazione

In questa pagina 6

Dallo schema generale al convertitore

Lo schema di una trasmissione digitale è

x(t) → [A/D] → bit → [modulatore] → canale → [demodulatore] → bit → [D/A] → y(t)

L'obiettivo di tutto il corso è: come ottengo un segnale y(t)y(t) il più simile possibile a x(t)x(t)? Il canale non è ideale (si comporta come un filtro passa-banda, introduce rumore e interferenze) e non si può trasmettere dove si vuole. La conversione A/D trasforma un segnale analogico in una sequenza di bit, la D/A fa il contrario. I due convertitori sono l'argomento di questo capitolo (capitolo 3 del corso); la parte centrale è il modulatore (Introduzione alla modulazione digitale e spazio dei segnaliLa modulazione digitale associa a ognuna delle $M=2^b$ parole di $b$ bit un segnale $s_m(t)$ di energia finita; il demodulatore deve capire quale segnale è stato trasmesso da $r(t)=s_m(t)+w(t)$. Per studiarlo i segnali si vedono come vettori: con il prodotto scalare $\langle x,y\rangle=\int xy^*dt$ e una base ortonormale ${\phi_i}$ ogni segnale è $\mathbf s_m=[\langle s_m,\phi_i\rangle]$ e l'insieme dei punti è la costellazione. La base si trova con il procedimento di Gram-Schmidt; distanze ed energie dei punti dicono le prestazioni.Introduzione alla modulazione digitale e spazio dei segnali →).

Lo schema del convertitore A/D

Dal segnale analogico xi(t)x_i(t) si arriva ai bit con quattro blocchi:

  1. Filtro anti-aliasing: un passa-basso che limita la banda del segnale (vedi sotto).
  2. Campionatore: preleva il valore del segnale a istanti multipli del periodo di campionamento Ts=1FsT_s=\frac1{F_s}: a(mTs)=x(mTs)a(mT_s)=x(mT_s).
  3. Quantizzatore: associa a ogni campione un valore tra un insieme finito di livelli Aq={Q0,Q1,…,QL−1}\mathcal A_q=\{Q_0,Q_1,\dots,Q_{L-1}\}, con L=2bL=2^b (Quantizzatore uniforme - livelli, mid-riser ed erroriUn quantizzatore mappa i campioni reali su $L=2^b$ livelli. Quello uniforme (PCM) sceglie un range dinamico $[-V_{sat},V_{sat}]$ e un passo $\Delta=\frac{2V_{sat}}L$; nel tipo mid-riser i livelli sono $\pm\frac\Delta2,\pm\frac{3\Delta}2,\dots$ e non c'è lo zero. L'errore $e_q=a_q-a$ ha una parte granulare (in $[-\frac\Delta2,\frac\Delta2]$, circa uniforme, potenza $\frac{\Delta^2}{12}$) e una di saturazione (fuori range). Per renderlo piccolo servono $P_{sat}$ piccola e $L$ grande.Quantizzatore uniforme - livelli, mid-riser ed errori →). Il campione quantizzato è aq(mTs)a_q(mT_s).
  4. Inverse bitmap (IBMAP) e serializzatore (P/S): ogni livello è mappato in una parola di bb bit, e le parole sono messe in fila in un unico flusso binario.

Il tempo di bit e il bit-rate sono legati a quelli di campionamento: Tb=Tsb,Rb=1Tb=b Fs.T_b=\frac{T_s}b,\qquad R_b=\frac1{T_b}=b\,F_s. Questo è il bit-rate nominale (senza codifica di sorgente, Codifica di sorgente - codici a prefisso e teorema di ShannonLa codifica di sorgente riduce il numero di bit mappando le parole della sorgente in parole di lunghezza variabile (più corte per le più probabili), senza perdere informazione. Il codice deve essere decodificabile; i codici a prefisso (nessuna parola è prefisso di un'altra) lo sono. Kraft-McMillan: se il codice è decodificabile $\sum M_y^{-L(b)}\le1$. Teorema di Shannon: $L_y\ge\frac{H(x)}{\log_2M_y}$ e esiste un codice a prefisso con $L_y\le\frac{H(x)}{\log_2M_y}+1$; l'efficienza è $\eta=\frac{H(x)}{L_y\log_2M_y}$.Codifica di sorgente - codici a prefisso e teorema di Shannon →).

Esempio. L=8L=8 livelli (b=3b=3): i livelli 0,…,70,\dots,7 sono codificati con 000,001,…,111000,001,\dots,111.

Al ricevitore si fa il percorso opposto: i bit sono riordinati in parole da bb (S/PS/P), mappati in livelli (BMAP), e un interpolatore ricostruisce il segnale continuo.

Telefonia. Voce limitata a B=3,4B=3{,}4 kHz: Fs=8F_s=8 kHz, b=8b=8 bit, Rb=8000⋅8=64R_b=8000\cdot8=64 kbit/s. CD audio: B=20B=20 kHz, Fs=44,1F_s=44{,}1 kHz, b=16b=16, due canali: Rb=2⋅44100⋅16≈1,41R_b=2\cdot44100\cdot16\approx1{,}41 Mbit/s.

Teorema del campionamento

Se x(t)x(t) è a banda limitata (X(f)=0X(f)=0 per ∣f∣>B\lvert f\rvert>B) e si campiona con Fs=1Ts≥2B,F_s=\frac1{T_s}\ge2B, allora x(t)x(t) si ricostruisce esattamente dai campioni con un filtro interpolatorefiltro che ricostruisce il segnale continuo a partire dai campioni di risposta in frequenza G(f)={Ts∣f∣<BqualsiasiB≤∣f∣≤Fs−B0∣f∣≥Fs−BG(f)=\begin{cases}T_s&\lvert f\rvert<B\\\text{qualsiasi}&B\le\lvert f\rvert\le F_s-B\\0&\lvert f\rvert\ge F_s-B\end{cases} La scelta più semplice è G(f)=Tsrect⁡(f2B)G(f)=T_s\operatorname{rect}\left(\frac f{2B}\right) (passa-basso ideale). Dimostrazione e dettagli: 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 → del corso di Segnali e Sistemi. La frequenza 2B2B è la frequenza di Nyquistil doppio della banda del segnale: frequenza di campionamento minima. Campionando a meno di 2B2B le copie dello spettro si sovrappongono: è l'aliasing.

Esempio di aliasing. Un tono a 66 kHz campionato a Fs=8F_s=8 kHz ha campioni cos⁡(2π68n)=cos⁡(2π28n)\cos\left(2\pi\frac6{8}n\right)=\cos\left(2\pi\frac28n\right): identici a quelli di un tono a 22 kHz. Il ricevitore ricostruirebbe 22 kHz: i due toni non si distinguono più. Per un segnale con banda B=3B=3 kHz, tra Fs=1F_s=1, 22 e 88 kHz l'unica scelta valida è Fs=8F_s=8 kHz (≥2B=6\ge2B=6 kHz).

Due problemi pratici e le soluzioni

  1. I segnali reali hanno durata finita, quindi banda infinita. Non esistono segnali limitati sia in tempo sia in banda. Si aggiunge allora un filtro anti-aliasing Δ(f)=rect⁡(f2B)\Delta(f)=\operatorname{rect}\left(\frac f{2B}\right) (un passa-basso) prima del campionatore: taglia lo spettro e si accetta di ricostruire solo il segnale tagliato. Si può calcolare l'errore commesso: con xix_i segnale originale e xx quello filtrato, e(t)=x(t)−xi(t)e(t)=x(t)-x_i(t) e in frequenza Ee(f)=∣Xi(f)∣2 ∣Δ(f)−1∣2={0∣f∣≤BExi(f)∣f∣>B⇒Me=2∫B∞Exi(f) df:\mathcal E_e(f)=\lvert X_i(f)\rvert^2\,\lvert\Delta(f)-1\rvert^2=\begin{cases}0&\lvert f\rvert\le B\\\mathcal E_{x_i}(f)&\lvert f\rvert>B\end{cases}\quad\Rightarrow\quad M_e=2\int_B^{\infty}\mathcal E_{x_i}(f)\,df: l'errore è l'energia dello spettro che viene tagliato. È la ragione per cui la banda va scelta con un criterio (Segnali deterministici - tempo, frequenza, banda pratica, energia e potenzaRipasso dei segnali per le comunicazioni. Un segnale ha un'energia $E=\int|s|^2dt$ e, se questa è infinita, una potenza media; il teorema di Parseval la riscrive in frequenza con la densità di energia $|S(f)|^2$. Un segnale a durata finita ha banda infinita, quindi si definisce una banda pratica (primo zero, ampiezza, energia). Un sistema LTI non distorce se nella banda del segnale ha $H(f)=A_0e^{-j2\pi ft_0}$. La modulazione moltiplica per una portante e trasla lo spettro.Segnali deterministici - tempo, frequenza, banda pratica, energia e potenza →).
  2. L'interpolatore ideale non è realizzabile. Il filtro Tsrect⁡(f2B)T_s\operatorname{rect}\left(\frac f{2B}\right) ha risposta impulsiva sinc: durata infinita e non nulla per t<0t<0 (non causale). Si usa il mantenitore di ordine zerofiltro che tiene costante il valore del campione per un periodo di campionamento (filtro holder): g(t)=rect⁡(t−Ts/2Ts),G(f)=Tssinc⁡(fFs)e−jπfTs.g(t)=\operatorname{rect}\left(\frac{t-T_s/2}{T_s}\right),\qquad G(f)=T_s\operatorname{sinc}\left(\frac f{F_s}\right)e^{-j\pi fT_s}. È causale e semplice (mantiene il valore del campione per TsT_s). Ma in frequenza il sinc⁡\operatorname{sinc} è arrotondato (non piatto) e distorce le frequenze vicine a Fs/2F_s/2: si compensa allargando il sinc, cioè campionando a FsF_s nettamente maggiore di 2B2B (sovracampionamentocampionare a una frequenza molto maggiore del minimo necessario), così che nella banda [0,B][0,B] il filtro sia quasi piatto.

Una distorsione "gratuita": la quantizzazione

Il passo del quantizzatore è l'unico che distrugge irreversibilmente informazione: si perdono le differenze tra valori che finiscono nello stesso livello. Il trucco è renderne l'errore molto piccolo, con tanti livelli, scelti bene (SNR di quantizzazione e progetto del quantizzatoreL'SNR di quantizzazione è $\Lambda_q=\frac{M_a}{M_e}$. Con errore granulare uniforme e saturazione trascurabile vale $\Lambda_q=\frac{\sigma^2}{\Delta^2/12}=3\frac{\sigma^2}{V_{sat}^2},2^{2b}$, cioè $[\Lambda_q]{dB}=6{,}02,b+4{,}77+20\log{10}\frac\sigma{V_{sat}}$: ogni bit in più dà $+6$ dB. Per progettare: $V_{sat}$ dalla probabilità di saturazione ($V_{sat}=\sigma,Q^{-1}\left(\frac{P_{sat}}2\right)$ per un gaussiano), poi $b$ dall'SNR richiesto, arrotondando per eccesso.SNR di quantizzazione e progetto del quantizzatore →). Il campionamento, invece, non introduce errore se vale il teorema di Nyquist. Si può anche ridurre il bit-rate senza perdite con la codifica di sorgente (Informazione ed entropiaL'informazione di un evento di probabilità $p$ è $\log_2\frac1p$ bit; l'entropia $H(x)=\sum p\log_2\frac1p$ è l'informazione media e misura l'incertezza della sorgente: $0\le H\le\log_2M$, con il massimo quando i simboli sono equiprobabili. Per più simboli: $H(x,y)\le H(x)+H(y)$ (uguaglianza se indipendenti), $H(x|y)=H(x,y)-H(y)$. Per una sorgente con $F_s$ simboli al secondo il rate di informazione è $F_sH_s$, il rate nominale $F_s\log_2M$ e l'efficienza $\eta=\frac{H_s}{\log_2M}$.Informazione ed entropia →), oppure con perdite (mp3, jpeg), che il corso non tratta.

Errori comuni

  • Credere che campionare a Fs=2BF_s=2B esatto basti sempre: richiede il filtro ideale. In pratica si campiona un po' sopra.
  • Confondere TbT_b (tempo di bit) con TsT_s (tempo di campione): Ts=b TbT_s=b\,T_b.
  • Dimenticare il filtro anti-aliasingsovrapposizione delle copie dello spettro quando si campiona troppo lentamente: senza di esso componenti fuori banda "si ripiegano" dentro la banda e non si possono più togliere.
  • Calcolare il bit-rate con LL al posto di b=log⁡2Lb=\log_2L.

Versione ripasso

Esercizi su questo argomento

Teoria collegata