Elaborazione multirate - decimazione e interpolazione
In questa pagina 6
Molte applicazioni (audio, immagini, video, telecomunicazioni) trattano segnali con frequenze di campionamento diverse: un CD ha kHz, un file professionale kHz, un video può essere a o fotogrammi al secondo. L'elaborazione numerica che cambia la frequenza di campionamento (sample rate conversion) si chiama multirate. I casi sono tre:
- interpolazione (interpolation): la frequenza di uscita è volte quella di ingresso, con intero positivo;
- decimazione (decimation): la frequenza di uscita è volte più piccola, , con intero positivo;
- conversione generica: con interi positivi coprimi (rapporto razionale).
Gli obiettivi sono due: conservare nell'uscita il più possibile l'informazione del segnale di ingresso (cioè ridurre le distorsioni) e farlo con un costo di calcolo basso. Le basi sono il campionamento e la ripetizione degli spettri (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 →, 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 →) e la DTFT (Trasformata di Fourier a tempo discretoLa trasformata di Fourier di un segnale discreto è $S(f)=\sum_nT,s(nT),e^{-i2\pi fnT}$: una funzione continua e periodica in $f$ di periodo $F_p=1/T$. L'antitrasformata è l'integrale su un periodo, $s(nT)=\int_0^{F_p}S(f)e^{i2\pi fnT}df$. Le regole sono quelle del caso continuo (traslazione, convoluzione $\leftrightarrow$ prodotto, Parseval $\sum T|s|^2=\int_0^{F_p}|S|^2$), con incremento e somma corrente al posto di derivata e integrale. Per segnali reali $S(f)=S^*(-f)$, quindi basta $[0,F_p/2]$. Esempi: $\delta\to1$, $1\to\delta_{F_p}$, rect $\to$ sinc periodico, $a^n\mathbf 1_0\to\frac T{1-ae^{-i2\pi fT}}$.Trasformata di Fourier a tempo discreto →).
Segnali su griglie diverse
Un sistema che cambia la frequenza di campionamento ha l'ingresso con e l'uscita con . Il sistema non è omogeneo: i domini temporali dell'ingresso e dell'uscita sono diversi, quindi bisogna dire sempre con quale griglia di tempo si lavora. Per esempio il fotogramma di un video a fps cade a s, quello di un video a fps a s.
In questa nota, per semplicità, si lavora con indici interi e frequenza normalizzata del segnale a cui ci si riferisce; per passare alle frequenze in Hz basta ricordare che , con la frequenza di campionamento di quel segnale. I tre numeri che compaiono in un sistema generale sono: la frequenza di ingresso , la frequenza di uscita e la frequenza intermedia , la più alta del sistema: in senso stretto (il minimo comune multiplo delle frequenze, cioè per i periodi).
Esempio. e (unità arbitrarie): , . Esempio (audio). Da kHz a kHz: (), quindi , e kHz.
Struttura della conversione generica
Un sistema di conversione è la cascata di tre blocchi (l'ordine conta: prima si interpola, poi si decima; l'inverso perderebbe informazione):
- un interpolatore per (espansore ), da a ;
- un sistema LTI con risposta impulsiva (filtro passabasso) che lavora a ;
- un decimatore per (), da a .
Il filtro lavora alla frequenza più alta , quindi sembra costoso: più sotto si vede come si evita.
Equazione ingresso-uscita
Si indica con la risposta impulsiva del filtro sulla griglia di . Il segnale dopo l'espansore è se divide , altrimenti; dopo il filtro e dopo il decimatore . Quindi
(Nelle slide, con i tempi: , dove è definita sui multipli di e il fattore viene dalla normalizzazione dell'integrale; nella versione discreta il guadagno del filtro assorbe quel fattore.)
Questa non è una convoluzione: i dominii dell'ingresso, dell'uscita e della risposta impulsiva sono diversi, e la somma non è commutativa. Il sistema è lineare ma non tempo-invariante in generale: se si trasla l'ingresso di un campione l'uscita non è semplicemente la traslata. È periodicamente tempo-invariante: traslando l'ingresso di campioni (cioè di secondi) l'uscita trasla di campioni; il periodo di invarianza è .
Esempio. Con , : . Per intervengono con , con , con ; per è con , con , con ...: ogni campione d'uscita usa una fase diversa di : la fase cambia con e si ripete ogni uscite.
Interpolazione
L'espansore (upsampler)
Definizione (espansore per ). Inserisce zeri fra due campioni consecutivi dell'ingresso: (Nelle slide e nelle dispense i campioni vengono anche moltiplicati per ; qui il guadagno è assegnato al filtro che segue, il risultato non cambia.)
È un sistema lineare e tempo-invariante con ingresso e uscita su griglie diverse, e non perde informazione: i campioni di sono tutti dentro . Esempio. e : .
Teorema (spettro dell'espansore). .
Dimostrazione. , perché sono diversi da zero solo i termini . Questa è calcolata in .
ha periodo in , quindi ha periodo : lo spettro del segnale d'ingresso si comprime di un fattore e si ripete volte nell'intervallo . Con l'asse in Hz questo è il fatto che l'uscita ha il periodo e un intervallo fondamentale che contiene lo spettro originale in più immagini (images).
Esempio. e : ha righe in , cioè in (il segnale originale, compresso), e (le due immagini).
Il filtro di interpolazione
Per tenere solo l'informazione dell'ingresso si fa seguire l'espansore da un passabasso ideale con taglio (in Hz ) e guadagno : elimina le immagini e ricostruisce lo spettro originale, ormai su una scala di frequenze volte più ampia.
Grafico interattivo: Interpolazione con L = 3: dopo l'espansione lo spettro (frequenza in unità di Fs, asse fino a L·Fs/2 = 1,5) contiene lo spettro originale e due immagini centrate in ±Fs; il filtro passabasso (tratteggio, taglio Fs/2) le elimina
Il filtro ideale ha (guadagno , taglio ), che vale in e si annulla in tutti gli altri multipli di . Di conseguenza l'uscita
coincide con l'ingresso nei punti (): è la proprietà di interpolazione corretta (correct interpolation property): i campioni originali non vengono modificati, quelli nuovi vengono dedotti. Il sinc ideale non è realizzabile (non causale e infinito), si approssima con un FIR (Progetto di filtri FIR con il metodo delle finestreUn filtro FIR a fase lineare di tipo I (ordine $N$ pari, $h[n]=h[N-n]$) ha risposta $H(e^{j\hat\omega})=e^{-j\hat\omega N/2}\bar H(\hat\omega)$ con ampiezza $\bar H(\hat\omega)=\sum_{n=0}^{N/2}p_n\cos(n\hat\omega)$. Per approssimare un'ampiezza desiderata $D(\hat\omega)$ (passa-basso: $1$ in banda passante, $0$ in banda oscura, con tolleranze $\delta_p,\delta_s$ e frequenze $\hat\omega_p,\hat\omega_s$) ci sono tre metodi. Finestre: si tronca la serie di Fourier di $D$, cioè $h[n]=h_d[n-N/2],w[n]$ con $h_d[n]=\frac{\hat\omega_0}{\pi}\operatorname{sinc}\frac{\hat\omega_0 n}{\pi}$; la rettangolare è ottima in errore quadratico ma dà il fenomeno di Gibbs (9%, $21$ dB), le finestre rastremate (Hann, Hamming, Blackman, Kaiser) abbassano i lobi laterali allargando la transizione ($\hat\omega_s-\hat\omega_p\simeq\alpha,2\pi/L$). Campionamento in frequenza: $h=\mathrm{IDFT}$ dei campioni di $D$, esatto solo sui campioni. Minimax (Parks-McClellan): errore pesato minimo nel caso peggiore, soluzione equiripple con almeno $r+2$ alternanze, ordine più basso a parità di specifiche.Progetto di filtri FIR con il metodo delle finestre →), per esempio con la finestra di Hamming: la finestra rettangolare darebbe Gibbs e un guadagno in continua sbagliato (vedi Esercizio - Laboratorio 4 - interpolazione e zoom di immagini). Il metodo delle finestre conserva gli zeri di nei multipli di , quindi mantiene la proprietà di interpolazione corretta.
Esempio. , : il passabasso (taglio ) elimina le righe in e e lascia , che nei multipli di vale .
Interpolazione lineare
Quando le risorse di calcolo sono poche si collegano i campioni con segmenti: interpolazione lineare. Il sistema è LTI. Per si trova la risposta impulsiva applicando un impulso: i campioni intermedi sono la media dei vicini, e si ottiene un triangolo. In generale con picco e lunghezza : Vale (zero nei multipli di diversi da zero), quindi anche qui i campioni originali restano. La risposta in frequenza è la somma di una progressione geometrica: (Il triangolo è la convoluzione di due rettangoli di lunghezza , divisa per , e il quadrato del nucleo di Dirichlet è la sua trasformata.) Il guadagno in continua è , proprio quello richiesto; nelle slide il guadagno è diviso fra espansore e filtro, che quindi vale in continua: .
Grafico interattivo: Risposta in frequenza |H|/L dell'interpolatore lineare (triangolo di picco 1 e lunghezza 2L-1) per L = 2, 3, 5: (1/L²)(sin(Lω/2)/sin(ω/2))². Il filtro ideale avrebbe guadagno 1 fino a ω = π/L e 0 oltre
Il filtro lineare è lontano dall'ideale (rettangolo fino a ): la transizione è lenta (per il guadagno normalizzato è in e in ) e oltre il guadagno massimo è ancora , cioè solo dB (con il sinc finestrato con Hamming si arriva a dB, Esercizio - Laboratorio 4 - interpolazione e zoom di immagini). Per questo l'interpolazione lineare dà buoni risultati solo se il segnale occupa frequenze molto più basse della massima; altrimenti restano immagini e distorsione.
Interpolazione in più stadi
Se conviene interpolare in stadi () invece che in uno solo: ogni filtro ha una banda di transizione più larga rispetto alla sua frequenza di lavoro e quindi meno coefficienti. Il costo minimo si ha con i fattori in ordine crescente, (il fattore più piccolo per primo), perché i primi filtri lavorano a frequenze basse.
Esempio numerico. Segnale a kHz con banda utile fino a Hz, interpolato di fino a kHz con dB di attenuazione (filtri di Kaiser, kaiserord; costo in moltiplicazioni al secondo con la struttura polifase):
| stadi | ordini dei filtri | moltiplicazioni/s |
|---|---|---|
| (uno) | ||
In tutti i casi della tabella lo schema a più stadi costa meno del singolo stadio (dal al in meno), e per ogni coppia l'ordine con il fattore piccolo prima costa meno ( contro e contro ). Non è invece detto che più stadi siano meglio di due (qui il minimo è ). Vedere anche Esercizio - Decimazione in più stadi, che è il caso speculare.
Decimazione
Il decimatore (downsampler)
Definizione (decimatore per ). Conserva un campione ogni : (la frequenza scende a ).
Esempio. e : .
È lineare ma, a differenza dell'espansore, non tempo-invariante e perde informazione in generale.
Teorema (spettro del decimatore). .
Dimostrazione. Si definisce con (pettine di impulsi: vale nei multipli di , altrove). Allora se divide e altrimenti, e . La DTFT del pettine è (periodica), e il prodotto in tempo è convoluzione in frequenza (Proprietà della trasformata di FourierCon le proprietà (linearità, simmetrie, ritardo $\leftrightarrow e^{-j\omega t_0}$, modulazione $\leftrightarrow$ traslazione in frequenza, scala, dualità, convoluzione $\leftrightarrow$ prodotto, Parseval $E=\frac1{2\pi}\int|X|^2$, derivata $\leftrightarrow j\omega$, moltiplicazione per $t\leftrightarrow j,d/d\omega$, integrazione) quasi tutte le trasformate si ottengono da poche coppie base senza integrare.Proprietà della trasformata di Fourier →): . Poi , perché i soli non nulli di sono multipli di . Quindi . (Verificato numericamente con una sequenza casuale.)
Quindi è la somma di versioni dello spettro di , dilatate di e traslate di , divise per . Nelle slide, con la normalizzazione in Hz: , cioè repliche dello spettro spaziate di .
Aliasing
Le repliche si sovrappongono se occupa più di : in quella zona non si può più ricostruire da (la somma di più termini non si "separa"): è l'aliasing della decimazione. Se è a banda limitata in (in Hz, ) non c'è sovrapposizione e tutta l'informazione si conserva.
Grafico interattivo: Decimazione con M = 2 senza filtro, segnale con banda 0,4·Fs > Fs/(2M) = 0,25·Fs: le due repliche (tratteggio) si sovrappongono nella banda ±0,5 della nuova frequenza (aliasing). Asse in unità di Fs' = Fs/2
Esempio. e : , perché . La frequenza riappare (falsamente) a .
Il filtro anti-aliasing
Per limitare l'aliasing si fa precedere il decimatore da un passabasso con taglio (in Hz ) e guadagno . Il filtro ideale minimizza la distorsione: all'uscita coincide con nella banda e la parte di oltre quel limite è persa, ma non viene riportata dentro la banda. In pratica un FIR progettato con le finestre o il minimax (Progetto di filtri FIR con il metodo delle finestreUn filtro FIR a fase lineare di tipo I (ordine $N$ pari, $h[n]=h[N-n]$) ha risposta $H(e^{j\hat\omega})=e^{-j\hat\omega N/2}\bar H(\hat\omega)$ con ampiezza $\bar H(\hat\omega)=\sum_{n=0}^{N/2}p_n\cos(n\hat\omega)$. Per approssimare un'ampiezza desiderata $D(\hat\omega)$ (passa-basso: $1$ in banda passante, $0$ in banda oscura, con tolleranze $\delta_p,\delta_s$ e frequenze $\hat\omega_p,\hat\omega_s$) ci sono tre metodi. Finestre: si tronca la serie di Fourier di $D$, cioè $h[n]=h_d[n-N/2],w[n]$ con $h_d[n]=\frac{\hat\omega_0}{\pi}\operatorname{sinc}\frac{\hat\omega_0 n}{\pi}$; la rettangolare è ottima in errore quadratico ma dà il fenomeno di Gibbs (9%, $21$ dB), le finestre rastremate (Hann, Hamming, Blackman, Kaiser) abbassano i lobi laterali allargando la transizione ($\hat\omega_s-\hat\omega_p\simeq\alpha,2\pi/L$). Campionamento in frequenza: $h=\mathrm{IDFT}$ dei campioni di $D$, esatto solo sui campioni. Minimax (Parks-McClellan): errore pesato minimo nel caso peggiore, soluzione equiripple con almeno $r+2$ alternanze, ordine più basso a parità di specifiche.Progetto di filtri FIR con il metodo delle finestre →).
Grafico interattivo: Stessa decimazione con M = 2 dopo un passabasso ideale di taglio Fs/(2M) = 0,25·Fs: le repliche si toccano solo ai bordi ±0,5 e la banda utile |f| < 0,5 Fs' è l'originale filtrato, senza sovrapposizioni
Esempio. Nel caso , , il prefiltro con taglio elimina la componente: l'uscita è praticamente zero, invece di una sinusoide falsa.
Decimazione in più stadi
Come per l'interpolazione, se conviene decimare in stadi. Il costo minimo si ha con i fattori in ordine decrescente (il fattore più grande per primo): i filtri più impegnativi lavorano a frequenza già ridotta. Esempio con kHz, (uscita kHz), banda utile Hz, dB: un solo filtro ha ordine e costa moltiplicazioni/s calcolando solo i campioni d'uscita; costa contro di ; costa contro di (tabella e calcoli in Esercizio - Decimazione in più stadi).
Conversione generica
Si interpola per e poi si decima per . I due filtri fra i blocchi, l'anti-immagine (taglio , serve a eliminare le immagini create dall'espansore) e l'anti-aliasing (taglio , serve a evitare l'aliasing del decimatore), lavorano alla stessa frequenza e sono in cascata, quindi si sostituiscono con un solo passabasso di guadagno e taglio
Il caso () è dominato dal taglio (si conserva tutta la banda dell'ingresso), il caso () da (la banda di uscita è più stretta e si perde parte dell'ingresso). L'equazione ingresso-uscita è la già vista .
Esempio. kHz: , . Il filtro lavora a kHz ed ha taglio , cioè kHz in Hz. Calcolarlo a MHz sarebbe proibitivo: si usa la struttura polifase (sotto) e si calcolano solo i campioni d'uscita, con una frazione di dei coefficienti per campione.
Realizzazioni efficienti
Il filtro di lunghezza fa moltiplicazioni inutili: dopo l'espansore campioni su sono zero, e il decimatore butta via uscite su . Nella struttura polifase si scompone in sottofiltri , (nell'interpolatore ognuno produce una delle uscite fra due campioni di ingresso, a frequenza ); per la decimazione la scomposizione è analoga. Con l'interpolazione per si fanno moltiplicazioni per campione d'uscita invece di ; con la decimazione per si calcolano solo le uscite necessarie, moltiplicazioni ogni campioni d'ingresso, non per campione. Entrambe le identità sono state verificate numericamente (errore ). I conteggi nelle tabelle sopra usano queste strutture.
Domande d'esame
- Descrivi un sistema di interpolazione e il ruolo del filtro dopo l'espansore. Traccia: espansore, (dimostrazione), compressione dello spettro e immagini; passabasso ideale con taglio e guadagno , risposta , interpolazione corretta; FIR con finestre; interpolazione lineare (triangolo, ) e suoi limiti.
- Descrivi la decimazione e spiega perché serve un filtro anti-aliasing. Traccia: , pettine di impulsi, , sovrapposizione delle repliche se la banda supera ; passabasso con taglio ; perdita di informazione fuori banda; più stadi con il fattore grande per primo.
- Descrivi la conversione di frequenza con rapporto razionale e commenta le proprietà del sistema. Traccia: cascata , filtro, (, coprimi), , filtro unico con taglio e guadagno ; equazione non è una convoluzione, sistema lineare periodicamente tempo-invariante, periodo ; esempio kHz con , ; ordine dei blocchi; realizzazione polifase.
Versione ripasso
- Interpolazione per . Espansore: nei multipli di , altrove; , spettro compresso e ripetuto volte (immagini). Passabasso di taglio e guadagno .
- Interpolazione corretta. Filtro ideale , . Realizzato con FIR a finestre (Hamming), che conserva gli zeri nei multipli di .
- Interpolazione lineare. per : dà , dà . , guadagno in continua. Per il guadagno normalizzato è in e in ; oltre è ancora , cioè dB.
- Interpolazione in più stadi. , fattori in ordine crescente: il fattore piccolo per primo. Esempio: con un solo stadio costa moltiplicazioni al secondo, costa , costa , costa .
- Decimazione per . ; , dimostrazione con il pettine di impulsi. repliche dilatate di e traslate di .
- Aliasing. Le repliche si sovrappongono se la banda supera . Esempio: con diventa .
- Filtro anti-aliasing. Passabasso di taglio prima del decimatore; il caso ideale non riporta dentro la banda la parte di oltre il limite.
- Decimazione in più stadi. Fattori in ordine decrescente, il più grande per primo. Esempio: con kHz; un solo filtro ha ordine , costa contro di , costa contro di .
- Conversione . Interpolazione per , poi decimazione per . Un solo passabasso di guadagno e taglio , a frequenza . Equazione: , lineare, periodicamente tempo-invariante con periodo .
- Esempio kHz. , , taglio (circa kHz), filtro a kHz: si usa la struttura polifase, che calcola solo i campioni d'uscita.
- Polifase. Sottofiltri , . Con l'interpolazione per si fanno moltiplicazioni per campione d'uscita invece di ; con la decimazione, moltiplicazioni ogni campioni d'ingresso.
- Tre casi. Interpolazione: . Decimazione: . Conversione generica: con coprimi. Gli scopi sono conservare l'informazione e ridurre il costo.
- Griglie diverse. Ingresso con , uscita con . Esempio: il fotogramma di un video a fps cade a s, a fps a s. La frequenza intermedia è .
- Esempi di frequenze. , : . Audio da kHz a kHz: , quindi , , kHz.
- Ordine dei blocchi. Prima l'interpolatore , poi il passabasso a , poi il decimatore . L'ordine inverso perderebbe informazione.
- Equazione ingresso-uscita. e , quindi . Non è una convoluzione: i domini sono diversi e la somma non è commutativa.
- Periodicamente tempo-invariante. Traslando l'ingresso di campioni, cioè di secondi, l'uscita trasla di campioni.
- Esempio con , . : ogni campione d'uscita usa una fase diversa di , e la fase si ripete ogni uscite.
- Espansore. Lineare e tempo-invariante, non perde informazione. Esempio: con dà . Dimostrazione: .
- Immagini. ha periodo e ha periodo . Esempio: , : righe a (originale compresso), e (immagini).
- Interpolazione corretta, filtro. Il sinc ideale è non causale e infinito: si approssima con FIR a finestre. La finestra rettangolare darebbe Gibbs e un guadagno in continua sbagliato. Esempio: con il passabasso di taglio elimina e e lascia , che nei multipli di vale .
- Interpolazione lineare, limiti. Buona solo se il segnale occupa frequenze molto più basse della massima; altrimenti restano immagini e distorsione.
- Decimatore. : esempio , dà . Lineare, non tempo-invariante, perde informazione in generale.
- Pettine di impulsi. ha DTFT ; il prodotto in tempo diventa convoluzione in frequenza.
- Decimazione in Hz. : repliche spaziate di .
- Prefiltro su un caso. Con e , il prefiltro di taglio elimina la componente: l'uscita è praticamente zero, invece di una sinusoide falsa.
- Conversione: caso dominante. Se domina il taglio , si conserva tutta la banda dell'ingresso; se domina , la banda di uscita è più stretta e si perde parte dell'ingresso.
- Polifase con il filtro di lunghezza . Dopo l'espansore campioni su sono zero e il decimatore butta via uscite su : le moltiplicazioni inutili si evitano con la polifase.
- Errore tipico. Invertire l'ordine dei blocchi (decimazione prima dell'interpolazione perde informazione) o pensare che il sistema sia LTI.