Esercizio - interpolatori in cascata e interpolazione parabolica a tratti
Questa pagina non ha ancora la versione ripasso: qui sotto c'è il testo completo.
In questa pagina 3
Testo (dispense del corso, Esercizi 13.3A e 13.3B).
- 13.3A. Verificare che la cascata costituita da un filtro interpolatore con risposta impulsiva seguito da un filtro ordinario su con risposta impulsiva è equivalente a un filtro interpolatore con risposta impulsiva
- 13.3B. Studiare lo schema di interpolazione composto da un interpolatore con risposta impulsiva seguito da un filtro con risposta impulsiva , dove Verificare che la corrispondente funzione interpolatrice è data dalla (13.22) delle dispense:
Teoria usata: 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 →, ConvoluzioneLa convoluzione $x*y(t)=\int x(u),y(t-u),du$ combina due segnali ribaltando e traslando il secondo, moltiplicando e integrando. È commutativa, associativa, lineare; l'area del risultato è il prodotto delle aree; l'estensione è la somma delle estensioni (estremo con estremo); l'impulso $\delta$ è l'elemento neutro; la convoluzione con il gradino integra. Per due segnali periodici di uguale periodo si usa la convoluzione ciclica (integrale su un periodo). È l'operazione del filtraggio: l'uscita di un filtro è la convoluzione dell'ingresso con la risposta impulsiva.Convoluzione →, Risposta in frequenza e filtriLa risposta in frequenza G(f) = F[g] di un filtro LTI dà Y = G·X. Gli esponenziali complessi sono autofunzioni (autovalore G(f)), quindi un ingresso sinusoidale esce sinusoidale con ampiezza moltiplicata per |G(f0)| e fase aumentata di arg G(f0). Il filtro è reale se G è hermitiana, invertibile se G non si annulla. I filtri ideali sono rect in frequenza; non distorsione secondo Heaviside: |G| costante e fase lineare.Risposta in frequenza e filtri →, 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 →, Segnali notevoli - gradino, rect, tri, sinc ed esponenzialiI segnali di uso più frequente sono la costante, la sinusoide $A_0\cos(2\pi f_0t+\varphi_0)$ e l'esponenziale complesso $Ae^{i2\pi f_0t}$ (periodici, a potenza finita), il gradino $\mathbf 1(t)$ e il segno, e gli impulsi a energia finita: $\operatorname{rect}$ (area $D$), $\operatorname{tri}$, $\operatorname{sinc}$ (area $1$), la gaussiana $e^{-\pi t^2}$ e gli esponenziali smorzati. Per ciascuno si sanno a memoria forma, area ed energia; gli altri segnali si ottengono da questi con traslazioni, scalature, somme e differenze.Segnali notevoli - gradino, rect, tri, sinc ed esponenziali →.
Convenzioni delle dispense: un interpolatore con risposta impulsiva opera così e in frequenza con periodica e no. Qui per , per .
(1) Cascata di interpolatore e filtro (Es. 13.3A)
Nel tempo. L'ingresso è . Il primo blocco (interpolatore con ) dà Il secondo blocco è un filtro ordinario su : , cioè . Per la linearità del filtro si può portare la convoluzione dentro la somma (lo scalare esce dall'operazione): Per l'invarianza temporale, convolvere con una funzione ritardata di dà la convoluzione ritardata di : (la convoluzione è commutativa, ConvoluzioneLa convoluzione $x*y(t)=\int x(u),y(t-u),du$ combina due segnali ribaltando e traslando il secondo, moltiplicando e integrando. È commutativa, associativa, lineare; l'area del risultato è il prodotto delle aree; l'estensione è la somma delle estensioni (estremo con estremo); l'impulso $\delta$ è l'elemento neutro; la convoluzione con il gradino integra. Per due segnali periodici di uguale periodo si usa la convoluzione ciclica (integrale su un periodo). È l'operazione del filtraggio: l'uscita di un filtro è la convoluzione dell'ingresso con la risposta impulsiva.Convoluzione →). Quindi che è proprio la relazione ingresso-uscita di un interpolatore con risposta impulsiva .
In frequenza (controllo): il primo blocco dà con periodica; il filtro dà . La risposta in frequenza della cascata è il prodotto , che è la trasformata di ✓. In termini di funzione interpolatrice: .
(2) Il caso triangolo + rettangolo (Es. 13.3B)
Ampiezze. Il triangolo con vale in e si annulla per (area ). Il rettangolo vale per (area ). Si pone .
Convoluzione. . Il rettangolo è per : la convoluzione calcola l'area del triangolo che cade dentro questa "finestra" di lunghezza . Il triangolo ha supporto , quindi ha supporto ed è pari (convoluzione di due funzioni pari). Si calcola per .
- Caso . La finestra parte da e comprende la fine del triangolo: l'area è quella totale meno la parte a sinistra di . Su il triangolo vale , quindi perché e . Perciò
- Caso . Ora : la finestra taglia via tutta la parte sinistra del triangolo e parte da . Su il triangolo vale , e quindi
- Caso : la finestra non tocca più il triangolo, .
Funzione interpolatrice. vale in : . Poiché la funzione interpolatrice deve valere nell'origine (condizione di corretta interpolazione, ) si deve avere che con il quanto della dispensa dà , il dato del testo. (Per un quanto qualsiasi la condizione dimensionale è : ha le dimensioni di , è adimensionale.) Con questo , i fattori e cioè esattamente la (13.22).
Controlli sulla ottenuta.
- Continuità in : dal primo ramo ; dal secondo ✓.
- Continuità della derivata: in il primo ramo ha pendenza e il secondo ✓; in il secondo ramo ha pendenza (raccordo con lo zero) ✓. In la pendenza è per simmetria. È la proprietà dei "tre archi di parabola ottenuti imponendo la continuità della derivata".
- Corretta interpolazione: e , per ✓ (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 →): l'uscita passa per i campioni.
- Somma delle traslate: per contribuiscono e . Per : ✓ (per si ha ). Quindi per ogni : l'interpolatore riproduce i segnali costanti.
- Risposta in frequenza: , , quindi con Vale (area di uguale a ) e il fattore si annulla in , , con : cancella il centro delle repliche dello spettro periodico , e il fattore le attenua ulteriormente (zeri doppi in ).
Grafico interattivo: Le due risposte impulsive per T = 1: g1(t) = 2·tri(2t) (triangolo di base T, altezza 2, A1 = 2) e g2(t) = rect(t) (rettangolo di durata T, altezza 1, A2 = 1), con A1·A2 = 2
Grafico interattivo: Funzione interpolatrice (13.22) per T = 1, ottenuta come T·(g1∗g2): 1 − 2t² per |t| ≤ 1/2, 2(1 − |t|)² per 1/2 < |t| ≤ 1; vale 1 in 0 e 0 in ±1
Grafico interattivo: Somma delle traslate g0(t), g0(t−1), g0(t+1) (T = 1): sempre 1, perché le tre parabole si compensano; in t = 0 e t = ±1 passano per i campioni
(3) Verifica numerica
Si discretizza il tempo con passo (con ), si prende una sequenza casuale di 9 campioni, si fa passare nel primo interpolatore (), poi si convolve con , e si confronta con l'interpolatore diretto con la della (13.22):
import numpy as np
T, dt = 1.0, 0.0005
t = np.arange(-4, 13, dt)
g1 = lambda x: 2 * np.maximum(0, 1 - np.abs(x) / (T / 2)) # A1 = 2, D1 = T/2
k = np.arange(-T / 2, T / 2 + dt / 2, dt) # asse dei tempi di g2
g2 = np.where(np.abs(k) < T / 2, 1.0, 0.0) # A2 = 1, D2 = T (A1*A2 = 2)
def g0(x): # funzione interpolatrice (13.22)
a = np.abs(x) / T
return np.where(a <= .5, 1 - 2 * a**2, np.where(a <= 1, 2 * (1 - a)**2, 0.0))
rng = np.random.default_rng(1)
s = rng.normal(size=9) # 9 campioni casuali
x0 = sum(T * g1(t - n * T) * s[n] for n in range(9)) # uscita del primo interpolatore
y = np.convolve(x0, g2, mode="same") * dt # poi il filtro g2: convoluzione
y_dir = sum(s[n] * g0(t - n * T) for n in range(9)) # interpolatore diretto con g0
print(np.abs(y - y_dir).max(), np.abs(y_dir).max()) # 0.0007 1.303La moltiplicazione per dt serve a trasformare la somma discreta nell'integrale di convoluzione. L'errore massimo è su un'ampiezza di (è l'errore di discretizzazione dei bordi del rettangolo, proporzionale a ). Sempre numericamente, la convoluzione vale in : , contro la (13.22) ✓. Con e un quanto diverso da (provati e ) il confronto fallisce (scarto e ), mentre con ( e ) riesce a : conferma che il dato del testo è scritto per .
Errori tipici.
- Dimenticare che : la risposta impulsiva ha area e valore nell'origine, non .
- Calcolare male i casi della convoluzione: la finestra del rettangolo ha larghezza e centro in ; i due rami si scambiano in perché il triangolo ha semi-base .
- Credere che l'interpolatore di (13.22) sia quello "parabolico" della (13.20), : quella ha un solo arco di parabola e in arriva a zero con pendenza (spigolo), mentre la (13.22) si raccorda con derivata continua.
Vedi anche: Esercizio - area ed energia di un segnale campionato e, per la materia gemella, 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 →.