Esercizio - cascata filtro con due impulsi, campionatore e finestra (prova scritta dell'11 luglio 2025)
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, 11 luglio 2025, problema 1). Data la cascata filtro / campionatore / finestra
in cui , , e la finestra è , :
- determinare il nucleo della trasformazione equivalente;
- calcolare l'espressione di quando , , e darne una rappresentazione grafica accurata per ms, ms, Vs;
- scrivere una procedura Matlab per il calcolo numerico e la rappresentazione grafica di , la trasformata del segnale di uscita , quando , con ms, ms, mV.
Teoria usata: 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 →, 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 →, 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 →, Proprietà della trasformata di FourierLe regole della trasformata di Fourier trasformano operazioni sui segnali in operazioni sulle trasformate: linearità, ribaltamento, coniugio, traslazione nel tempo ($\times e^{-i2\pi ft_0}$) e in frequenza, convoluzione $\leftrightarrow$ prodotto, cambio di scala $s(at)\to\frac1{|a|}S(f/a)$, derivazione ($\times i2\pi f$), integrazione, regola di simmetria ($S(t)\to s(-f)$). Area $S(0)=\int s$, teorema di Parseval $\int|s|^2=\int|S|^2$. Durata e banda sono inversamente legati e un segnale non può avere durata e banda entrambe limitate; la banda del prodotto è la somma delle bande. Con queste regole si ricavano quasi tutte le trasformate senza integrare.Proprietà della trasformata di Fourier →.
(1) Il nucleo della trasformazione equivalente
Una trasformazione lineare da a si scrive con un nucleo , con istante di uscita e istante di ingresso: Si segue il segnale blocco per blocco.
- Filtro. È una convoluzione con due impulsi di Dirac, e ogni impulso trasla (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 →):
- Campionatore : tiene i valori sul reticolo, per . Non cambia l'espressione, ne restringe solo il dominio:
- Finestra su : moltiplica campione per campione,
Per mettere il risultato nella forma si usa la proprietà di campionamento della delta, :
Il nucleo dipende da e da non solo tramite , per il fattore : la cascata non è tempo-invariante, anche se filtro e campionatore sì (è il prodotto per una finestra a rendere la tf tempo-variante). Resta lineare. Non è causale: il filtro usa , un valore futuro dell'ingresso.
(2) La trasformata
Filtro. Il filtro è LTI e la sua risposta in frequenza è la trasformata di . Per la proprietà di traslazione, (Proprietà della trasformata di FourierLe regole della trasformata di Fourier trasformano operazioni sui segnali in operazioni sulle trasformate: linearità, ribaltamento, coniugio, traslazione nel tempo ($\times e^{-i2\pi ft_0}$) e in frequenza, convoluzione $\leftrightarrow$ prodotto, cambio di scala $s(at)\to\frac1{|a|}S(f/a)$, derivazione ($\times i2\pi f$), integrazione, regola di simmetria ($S(t)\to s(-f)$). Area $S(0)=\int s$, teorema di Parseval $\int|s|^2=\int|S|^2$. Durata e banda sono inversamente legati e un segnale non può avere durata e banda entrambe limitate; la banda del prodotto è la somma delle bande. Con queste regole si ricavano quasi tutte le trasformate senza integrare.Proprietà della trasformata di Fourier →): occupa , e il coseno lo modula dentro questa banda.
Campionatore. Dà la ripetizione periodica senza fattore con periodo (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 →): Il supporto di è , largo esattamente un periodo: le repliche si toccano nei punti e non si sovrappongono. Non c'è aliasing, e in ogni intervallo resta una sola replica. In pratica è il tratto di in ripetuto con periodo .
Numeri. Con ms: periodo Hz, semi-periodo Hz. Con ms :
| (in Vs) | ||
|---|---|---|
| (e , , ...) | ||
| Hz | ||
| Hz |
In Hz la replica centrale vale e quella successiva (che lì ha ) vale ancora : il coseno è pari, quindi il raccordo tra repliche è continuo e non ci sono salti. Il coseno non si annulla mai nella banda ( richiederebbe Hz, fuori da ).
Grafico interattivo: Y_c(f) in Vs, con f in Hz: il tratto 2A·cos(2πf·t0) della banda |f| ≤ 125 Hz ripetuto ogni 250 Hz; massimo 2 nei multipli di 250 Hz, minimo √2 ≈ 1,41 a ±125 Hz, ±375 Hz, ... (le repliche si toccano senza salti)
Verifica numerica: si prende (la cui trasformata è ), si calcola e si confronta con : per i due valori coincidono (per esempio V da entrambe le parti).
(3) Procedura per con
Il segnale in forma chiusa. Con e i punti non cadono mai in (dove il gradino vale ), quindi il gradino vale 0 o 1:
- : entrambi i punti sono positivi, ;
- : e , quindi ;
- : , quindi .
Con la finestra: I primi valori: mV, mV, mV: la successione decade come , e basta troncare la somma a pochi termini.
Trasformata. (con il peso della trasformata discreta, 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 Hz. Si calcola per somma diretta, che è esatta fino al troncamento e non pone problemi di griglia in frequenza:
import numpy as np
import matplotlib.pyplot as plt
T, t0, C = 4e-3, 1e-3, 3e-3
N = 60 # e^{-n}/(1+n^2) < 1e-26 per n > 60: troncamento innocuo
n = np.arange(-N, N + 1)
t = n * T # asse dei tempi su Z(T)
x = lambda s: C * np.exp(-s / T) * (s > 0) # gradino: in nT +- t0 non si valuta mai in 0
y = x(t - t0) + x(t + t0) # uscita del filtro g = delta(t-t0) + delta(t+t0)
w = 1 / (1 + (t / T) ** 2) # finestra
z = w * y # campionamento (sul reticolo t) e finestra
f = np.linspace(-1 / T, 1 / T, 2001) # due periodi di Z(f)
Z = T * (z @ np.exp(-2j * np.pi * np.outer(t, f))) # Z(f) = sum_n T z(nT) e^{-i 2 pi f nT}
fig, ax = plt.subplots(2, 1, sharex=True)
ax[0].plot(f, np.abs(Z)); ax[0].set_ylabel("|Z(f)|")
ax[1].plot(f, np.angle(Z)); ax[1].set_ylabel("fase (rad)"); ax[1].set_xlabel("f (Hz)")
plt.show()Perché è scritto così (Matlab: Z = T*z*exp(-1i*2*pi*t.'*f);, con t e z vettori riga e f vettore riga):
- si usa la somma diretta (prodotto riga per matrice) invece della FFT, perché si vuole su un asse scelto liberamente (due periodi, ... Hz), non sulla griglia della FFT;
- il fattore davanti è il peso dell'integrale di Haar su : senza di esso sarebbe sbagliata di un fattore ;
- la finestra e il filtro si applicano ai campioni
t = n*T: la cascata è calcolata in ordine (filtro, campionamento, finestra), non il contrario.
Valori di controllo (calcolati con questo codice, modulo in V·s): con fase (è l'area di , positiva e reale); con fase rad; con fase (a metà periodo , la somma è reale); per la periodicità. Poiché è reale, è pari e la fase dispari.
Errori tipici
- Scrivere il nucleo come o dire che la tf è LTI: la finestra dipende da in modo assoluto, quindi il nucleo non è funzione di e la tf non è tempo-invariante.
- Mettere il fattore nella ripetizione periodica del campionatore (in questo corso non c'è) o dimenticare il peso nella trasformata discreta di .
- Disegnare con repliche che cambiano segno o con salti: il coseno è pari, quindi le repliche si raccordano senza discontinuità.
Vedi anche: 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 →, Esercizio - processo a campioni indipendenti attraverso una finestra (prova scritta dell'11 luglio 2025).