Esercizio - cascata interpolatore, filtro triangolare e campionatore (prova scritta del 6 febbraio 2026)
Questa pagina non ha ancora la versione ripasso: qui sotto c'è il testo completo.
In questa pagina 4
Testo (prova scritta del corso Teoria dei Segnali, UniPD, 6 febbraio 2026, problema 1). Data la cascata di trasformazioni lineari
con (il primo blocco è un interpolatore , il secondo un filtro continuo, l'ultimo un campionatore ):
- per s e ingresso se , se , altrimenti, dare una rappresentazione grafica accurata di e calcolarne l'energia;
- identificare la trasformazione equivalente alla cascata, scrivendo la sua risposta impulsiva e la sua risposta in frequenza. Si tratta di una trasformazione invertibile?
- scrivere una procedura Matlab che calcoli per via numerica e rappresenti graficamente la trasformata di Fourier dell'uscita corrispondente al segnale , .
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 →, 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 →, ConvoluzioneLa convoluzione $xy(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 →, Trasformata di FourierLa trasformata di Fourier $S(f)=\int s(t)e^{-i2\pi ft}dt$ associa a un segnale continuo (anche aperiodico) la sua rappresentazione in frequenza; l'antitrasformata $s(t)=\int S(f)e^{i2\pi ft}df$ lo ricostruisce, perché gli esponenziali $e^{i2\pi ft}$ sono ortogonali su tutto $\mathbb R$ ($\int e^{i2\pi ft}dt=\delta(f)$). Per un segnale reale $S(-f)=S^(f)$. Si calcola per i segnali notevoli (rect $\leftrightarrow$ sinc, $e^{-\alpha t}\mathbf 1(t)\leftrightarrow\frac1{\alpha+i2\pi f}$, gaussiana, $\delta\leftrightarrow1$, $1\leftrightarrow\delta$, gradino) e per i segnali periodici, la cui trasformata è un treno di impulsi di area $S_n$ in $nF$.Trasformata di Fourier →, 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 →, Trasformazioni e sistemi - proprietàUna trasformazione manda un segnale d'ingresso su I in un segnale d'uscita su U, y = φ[x]. Si classifica per invertibilità, memoria, causalità, stabilità BIBO, linearità, tempo-invarianza e realtà. Una trasformazione lineare ha un nucleo h(t,u) = risposta all'impulso applicato in u; la finestra y = w·x è lineare ma NON tempo-invariante. Le tf LTI (filtri) sono il caso con h(t,u) = g(t-u).Trasformazioni e sistemi - proprietà →, Sistemi lineari tempo-invarianti e risposta impulsivaUna tf lineare e tempo-invariante (LTI, filtro) ha nucleo h(t,u) = g(t-u): l'uscita è la convoluzione y = gx con la risposta impulsiva g (uscita all'impulso ideale nell'origine). Causale se e solo se g è causale; stabile BIBO se e solo se g è assolutamente integrabile (sommabile); reale se e solo se g è reale. Cascata: g = g2g1; parallelo: g1+g2; retroazione: Ge = G/(1+HG) in frequenza.Sistemi lineari tempo-invarianti e risposta impulsiva →, 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 →, Energia, potenza e valor medio dei segnaliSu un segnale continuo si calcolano quattro numeri riassuntivi: l'area $\int s,dt$, il valor medio (componente continua) $\lim\frac1{2T}\int_{-T}^Ts,dt$, l'energia $\int|s|^2dt$ e la potenza media $\lim\frac1{2T}\int_{-T}^T|s|^2dt$. Un segnale ad energia finita ha potenza nulla e uno a potenza finita non nulla ha energia infinita. Per un segnale periodico di periodo $T_p$ area ed energia si calcolano su un periodo; un segnale periodico è la ripetizione periodica $\sum_ku(t-kT_p)$ di un suo periodo. Valgono per traslazione l'invarianza, per scala $s(at)$ la divisione per $|a|$.Energia, potenza e valor medio dei segnali →.
(1) Il segnale e la sua energia
Regola dell'interpolatore. Un interpolatore con risposta impulsiva somma sul reticolo con il peso dell'integrale di Haar: (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 →). La funzione è la funzione interpolatrice: un triangolo di altezza e base .
Perché compare il fattore . Sul reticolo l'impulso ideale vale in (area ). Se all'ingresso c'è , cioè , l'uscita deve essere stessa: . Senza il fattore questa proprietà (la risposta all'impulso è la risposta impulsiva) non varrebbe.
Calcolo. I soli campioni non nulli sono , , quindi Ogni triangolo ha il vertice nell'istante del suo campione e si annulla nei due istanti vicini : l'interpolatore triangolare è quindi la interpolazione lineare tra i valori (con s i valori sono e in unità di ). Nei punti di campionamento : , , ; in e in il segnale vale (il campione intermedio e quelli oltre i vertici sono nulli).
Grafico interattivo: y(t) diviso per T (t in µs): spezzata che unisce i punti (-2, 1), (0, -1), (2, 1) con zeri in ±1, ±3: interpolazione lineare dei campioni, con y(nT) = T·x(nT)
Energia. (Energia, potenza e valor medio dei segnaliSu un segnale continuo si calcolano quattro numeri riassuntivi: l'area $\int s,dt$, il valor medio (componente continua) $\lim\frac1{2T}\int_{-T}^Ts,dt$, l'energia $\int|s|^2dt$ e la potenza media $\lim\frac1{2T}\int_{-T}^T|s|^2dt$. Un segnale ad energia finita ha potenza nulla e uno a potenza finita non nulla ha energia infinita. Per un segnale periodico di periodo $T_p$ area ed energia si calcolano su un periodo; un segnale periodico è la ripetizione periodica $\sum_ku(t-kT_p)$ di un suo periodo. Valgono per traslazione l'invarianza, per scala $s(at)$ la divisione per $|a|$.Energia, potenza e valor medio dei segnali →). I tre triangoli hanno supporti , , : si toccano solo nei punti dove si annullano, quindi il quadrato della somma è la somma dei quadrati (i prodotti incrociati sono nulli, perché in ogni istante al più un triangolo è diverso da zero). Per un triangolo: Perciò (in unità di per s). Verifica numerica: integrando su una griglia con punti per si ottiene .
Perché è comodo questo ingresso. Tra due campioni non nulli c'è sempre almeno un campione nullo, per cui i triangoli non si sovrappongono. Se due campioni non nulli fossero adiacenti, comparirebbe il termine incrociato .
(2) La trasformazione equivalente
Passo 1: i tre blocchi. Il filtro è LTI, quindi la convoluzione (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 →) con è lineare e commuta con le traslazioni: filtrare la somma equivale a filtrare ogni triangolo traslato e a sommare i risultati, Ogni triangolo diventa così .
Passo 2: campionamento. Il campionatore tiene i valori in : È una convoluzione sul reticolo (somma con peso ): la trasformazione equivalente è un filtro LTI con risposta impulsiva
Passo 3: i valori della convoluzione. Servono i soli campioni . Il supporto di è (somma dei due supporti ), quindi e per . Restano:
- : , come nel punto (1);
- : (le due code si sovrappongono solo su ; per simmetria vale lo stesso in ).
(Come controllo: in forma chiusa con la B-spline cubica, , .) Dunque, scrivendo gli impulsi ideali su (valore in ): cioè , . In termini di ingresso/uscita: un filtro FIR simmetrico, non causale (usa ).
Passo 4: risposta in frequenza. Trasformata discreta di , con la somma pesata da (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 →): periodica di periodo . Si ritrova lo stesso risultato per un'altra strada, la ripetizione periodica dei prodotti delle risposte in frequenza continue, dove (Trasformata di FourierLa trasformata di Fourier $S(f)=\int s(t)e^{-i2\pi ft}dt$ associa a un segnale continuo (anche aperiodico) la sua rappresentazione in frequenza; l'antitrasformata $s(t)=\int S(f)e^{i2\pi ft}df$ lo ricostruisce, perché gli esponenziali $e^{i2\pi ft}$ sono ortogonali su tutto $\mathbb R$ ($\int e^{i2\pi ft}dt=\delta(f)$). Per un segnale reale $S(-f)=S^(f)$. Si calcola per i segnali notevoli (rect $\leftrightarrow$ sinc, $e^{-\alpha t}\mathbf 1(t)\leftrightarrow\frac1{\alpha+i2\pi f}$, gaussiana, $\delta\leftrightarrow1$, $1\leftrightarrow\delta$, gradino) e per i segnali periodici, la cui trasformata è un treno di impulsi di area $S_n$ in $nF$.Trasformata di Fourier →): l'interpolatore moltiplica per , il filtro per e il campionatore ripete con periodo senza fattore : Controlli: in solo contribuisce e , che coincide con ; in i termini della serie sono e valgono con (ciascuno due volte), da cui , e la formula dà . ✓
Grafico interattivo: Risposta in frequenza G(f)/T² = (2 + cos 2πfT)/3 con x = fT (periodica di periodo 1): oscilla tra 1 in x = 0 e 1/3 in x = ±1/2, e non si annulla mai
Passo 5: invertibilità. Un filtro LTI è invertibile se la sua risposta in frequenza non si annulla (Sistemi lineari tempo-invarianti e risposta impulsivaUna tf lineare e tempo-invariante (LTI, filtro) ha nucleo h(t,u) = g(t-u): l'uscita è la convoluzione y = gx con la risposta impulsiva g (uscita all'impulso ideale nell'origine). Causale se e solo se g è causale; stabile BIBO se e solo se g è assolutamente integrabile (sommabile); reale se e solo se g è reale. Cascata: g = g2g1; parallelo: g1+g2; retroazione: Ge = G/(1+HG) in frequenza.Sistemi lineari tempo-invarianti e risposta impulsiva →). Qui quindi : sì, la trasformazione è invertibile, con inversa LTI di risposta in frequenza . L'inversa è un filtro a risposta impulsiva infinita; sviluppando in serie di Fourier si trova che decade geometricamente (fattore ): è un filtro stabile. (Coefficienti verificati numericamente: , , , ) Il risultato è che la cascata, pur passando per un segnale continuo e un campionamento, non perde informazione: da si risale a .
Applicazione ai dati del punto (1). Dalla formula del filtro, con (il valore in ): e nullo altrove. Confermato campionando numericamente .
(3) Procedura per (Python, equivalente del Matlab)
Il segnale entra direttamente in (il blocco interpolatore è già stato attraversato). Quindi , e
Il calcolo numerico ripete questi passaggi: griglia fine per il tempo continuo, convoluzione, campionamento, trasformata discreta.
import numpy as np
import matplotlib.pyplot as plt
T = 1e-6 # periodo (s)
L = 200 # campioni della griglia "continua" per ogni T
dt = T / L # passo della griglia fine
tri = lambda u: np.maximum(0, 1 - np.abs(u))
ty = np.arange(0, 40*T, dt) # y(t) = 2 e^{-t/T} 1(t); oltre 40T e^{-40} e' trascurabile
y = 2*np.exp(-ty/T)
y[0] = 1.0 # 1(0) = 1/2: meta' del salto da 0 a 2
tg = np.arange(-T, T + dt/2, dt) # g2 = triang(t/T) campionata con lo stesso dt, su [-T, T]
g2 = tri(tg/T)
z = np.convolve(y, g2) * dt # integrale di convoluzione = somma * dt (Matlab: conv(y,g2)*dt)
tz = ty[0] + tg[0] + np.arange(len(z))*dt # l'asse di z inizia alla somma degli inizi
n = np.arange(-1, 40) # istanti nT in cui z puo' essere non nullo
zc = z[np.round((n*T - tz[0]) / dt).astype(int)] # campionamento: z(nT)
f = np.linspace(-1.5/T, 1.5/T, 1201) # asse delle frequenze (Hz): 3 periodi 1/T
Zc = T * np.exp(-2j*np.pi*np.outer(f, n*T)) @ zc # Zc(f) = sum_n T zc(nT) e^{-i 2 pi f nT}
fig, ax = plt.subplots(2, 1, sharex=True)
ax[0].plot(f/1e6, np.abs(Zc)); ax[0].set_ylabel("|Zc(f)|")
ax[1].plot(f/1e6, np.angle(Zc)); ax[1].set_ylabel("fase (rad)"); ax[1].set_xlabel("f (MHz)")
plt.show()Spiegazione delle scelte (con il comando Matlab corrispondente):
- Griglia fine . Il segnale è continuo: lo si rappresenta con molti campioni per , in modo che la somma approssimi bene l'integrale.
- . Il gradino continuo vale nell'origine () e il salto viene così contato per metà, come fa l'integrale.
- Fattore nella convoluzione:
np.convolve(in Matlabconv) calcola solo la somma ; l'integrale di convoluzione richiede . - Asse dei tempi di . La convoluzione di due segnali che iniziano in e in inizia in (somma degli estremi inferiori). Da questo si ricava l'indice di ogni istante .
- Campionamento. Si prelevano gli indici corrispondenti agli istanti (in Matlab
zc = z(1:L:end)quando l'inizio coincide con un multiplo di ). - Trasformata. Si usa la definizione discreta con il peso : . È una moltiplicazione matrice-vettore (in Matlab
T*exp(-1i*2*pi*f(:)*(n*T))*zc(:)); con una griglia arbitraria evita lo zero padding e lefftshift. Con la FFT servirebbero zero padding, il fattore efftshiftper centrare l'asse. - Intervallo di frequenza : si vedono tre periodi, perché è periodica di periodo MHz.
Controllo. Si confronta con la serie delle repliche : lo scarto massimo relativo è e (perché per , quindi ). Un modo più semplice di scrivere il risultato è con parte reale e immaginaria mostrate qui sotto (serie troncata a , con espressa in MHz perché s).
Grafico interattivo: Zc(f)/(2T²): parte reale (picco 1 in f = 0) e parte immaginaria, periodiche di periodo 1 MHz (T = 1 µs, serie delle repliche troncata a |k| ≤ 3)
Errori tipici
- Dimenticare il peso dell'interpolatore e della convoluzione sul reticolo: l'energia verrebbe invece di e perderebbe un fattore .
- Prendere la risposta impulsiva equivalente continua invece dei suoi campioni in : la trasformazione equivalente è su , non su .
- Dire che il campionatore rende la cascata non invertibile: lo sarebbe da solo; qui il filtro equivalente ha e si inverte.
Vedi anche: Esercizio - cascata di filtri discreti con decimazione (prova scritta del 17 settembre 2025), Esercizio - segnale discreto esponenziale, finestra triangolare e campionamento (prova scritta del 3 settembre 2025).
Esercizi su questo argomento
- Esercizio - cascata di filtri discreti con decimazione (prova scritta del 17 settembre 2025)
- Esercizio - processo gaussiano campionato, interpolato ed elevato al quadrato (prova scritta del 6 febbraio 2026)
- Esercizio - segnale discreto esponenziale, finestra triangolare e campionamento (prova scritta del 3 settembre 2025)
- Esercizio - sinc modulato, estensione spettrale e campionamento a massima efficienza (prova scritta del 3 settembre 2025)
Teoria collegata
- Interpolazione LTI e teorema del campionamento
- Campionamento e ricostruzione
- Convoluzione
- Trasformata di Fourier
- Trasformata di Fourier a tempo discreto
- Trasformazioni e sistemi - proprietà
- Sistemi lineari tempo-invarianti e risposta impulsiva
- Risposta in frequenza e filtri
- Energia, potenza e valor medio dei segnali