Vai al contenuto
Elaborazione Numerica dei Segnali

Elaborazione multirate: decimazione, interpolazione e filtri polifase

Spettro del segnale sottocampionato con dimostrazione, decimatore, sovracampionamento e immagini, cambio di frequenza razionale, identità nobile dimostrata, struttura polifase, convertitori sigma-delta e radio software.

Molti sistemi lavorano con frequenze di campionamento diverse in punti diversi: un convertitore sovracampionato produce milioni di campioni al secondo che vanno ridotti, l’audio passa da 44,1 a 48 kHz, una radio digitale porta un canale stretto da una banda larga. L’elaborazione multirate cambia la frequenza di campionamento in modo numerico. In questa lezione dimostriamo cosa succede allo spettro sottocampionando e sovracampionando, vediamo i filtri che servono, il cambio di frequenza con un rapporto razionale, e la struttura polifase con le identità nobili che rendono tutto efficiente.

Il sottocampionamento

Sottocampionare di un fattore intero M significa tenere un campione ogni M: y[n] = x[Mn].

Teorema. Lo spettro del segnale sottocampionato è

    \[ Y(e^{j\omega}) = \frac{1}{M}\sum_{k=0}^{M-1}X\!\left(e^{j(\omega - 2\pi k)/M}\right) \]

Dimostrazione. Si introduce il segnale intermedio x_p[n] = x[n]\,p[n], dove p[n] vale 1 quando n è multiplo di M e 0 altrimenti. Questo pettine si scrive come media di esponenziali, p[n] = \frac{1}{M}\sum_{k=0}^{M-1}e^{j2\pi kn/M} (la somma vale M se n è multiplo di M e 0 altrimenti, per la serie geometrica). Moltiplicare per e^{j2\pi kn/M} sposta lo spettro di 2\pi k/M, quindi X_p(e^{j\omega}) = \frac{1}{M}\sum_k X(e^{j(\omega - 2\pi k/M)}). Infine y[n] = x_p[Mn] toglie solo zeri, e la sua trasformata è Y(e^{j\omega}) = \sum_n x_p[Mn]e^{-j\omega n} = X_p(e^{j\omega/M}). Sostituendo si ottiene la formula. ∎

Lo spettro viene allargato di M volte e se ne sommano M copie spostate. Se il segnale originale aveva componenti oltre \pi/M, le copie si sovrappongono: è aliasing, e non si può più togliere.

Spettro di un segnale prima e dopo il sottocampionamento per 2 senza filtro
In alto lo spettro originale, con banda fino a 0,6 pi greco. In basso, dopo aver tenuto un campione ogni due, lo spettro è allargato e dimezzato in ampiezza, e le copie adiacenti si sovrappongono attorno a più e meno pi greco: le frequenze alte si ripiegano su quelle basse.

Per questo prima di sottocampionare si filtra con un passa-basso a \pi/M: l’insieme filtro più sottocampionamento si chiama decimatore.

Il sovracampionamento

Sovracampionare di un fattore L significa inserire L - 1 zeri tra un campione e l’altro: y[n] = x[n/L] se n è multiplo di L, 0 altrimenti. Lo spettro è Y(e^{j\omega}) = X(e^{j\omega L}), perché nella somma della trasformata restano solo i termini n = Lm, con e^{-j\omega Lm}. Lo spettro viene compresso di L volte, e nell’intervallo [-\pi, \pi] compaiono L copie: le immagini. Un passa-basso a \pi/L con guadagno L le toglie e riempie gli zeri con i valori interpolati: è l’interpolatore.

Il cambio di frequenza razionale

Per moltiplicare la frequenza di campionamento per L/M si sovracampiona di L, si filtra con un unico passa-basso con taglio \min(\pi/L, \pi/M), che toglie le immagini e previene l’aliasing insieme, e si sottocampiona di M. Il passaggio dall’audio dei CD (44,1 kHz) a quello professionale (48 kHz) ha rapporto 48\,000/44\,100 = 160/147: un sovracampionamento per 160 seguito da un sottocampionamento per 147. Fatto alla lettera sarebbe un calcolo enorme, a 7 MHz intermedi; le strutture polifase lo rendono pratico.

Le identità nobili e la struttura polifase

Il difetto evidente del decimatore è che il filtro lavora alla frequenza alta e poi si buttano M - 1 campioni su M: la maggior parte delle moltiplicazioni è sprecata.

Teorema (identità nobile). Filtrare con G(z^M) e poi sottocampionare di M equivale a sottocampionare di M e poi filtrare con G(z).

Dimostrazione. G(z^M) ha risposta all’impulso non nulla solo nei multipli di M: g_M[Mk] = g[k]. L’uscita del filtro nell’istante Mn è \sum_k g[k]\,x[Mn - Mk] = \sum_k g[k]\,x[M(n - k)], che è proprio la convoluzione di g con il segnale sottocampionato x[Mm]. ∎

Ogni filtro FIR H(z) si può scomporre in M componenti polifase, raccogliendo i coefficienti di indice k, k + M, k + 2M, \dots:

    \[ H(z) = \sum_{k=0}^{M-1}z^{-k}E_k(z^M) \]

Applicando l’identità nobile a ciascun ramo, il sottocampionamento passa prima dei filtri E_k, che lavorano alla frequenza bassa. Il numero di moltiplicazioni per campione d’uscita resta quello del filtro, ma il numero per unità di tempo cala di M volte. Lo stesso vale, in modo duale, per l’interpolatore. Per il cambio 160/147 si calcolano solo i campioni d’uscita che servono, usando ogni volta il sottoinsieme giusto di coefficienti.

Le applicazioni

  • Convertitori sovracampionati. Un convertitore sigma-delta campiona a molti megahertz con pochi bit e spinge il rumore di quantizzazione alle frequenze alte; un decimatore numerico lo filtra e riduce la frequenza, guadagnando bit (lezione sui convertitori di Elettronica applicata). I primi stadi usano spesso filtri CIC, cascate di integratori e differenziatori che non richiedono moltiplicazioni.
  • Radio definita dal software. Si campiona una banda larga, si porta il canale voluto in banda base con un oscillatore numerico e si decima fino alla larghezza del canale.
  • Banchi di filtri. Un segnale si divide in sottobande, ciascuna sottocampionata e codificata con il numero di bit adatto: è la base della compressione audio (MP3, AAC) e dei banchi polifase dell’OFDM.
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
0
Would love your thoughts, please comment.x
()
x