Salta al contenuto
Note per Studenti Esercizio - cascata filtro con due impulsi, campionatore e finestra (prova scritta dell'11 luglio 2025)

Esercizio - cascata filtro con due impulsi, campionatore e finestra (prova scritta dell'11 luglio 2025)

Esame

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

x(t), t∈R → g(⋅)  y(t), t∈R → ↓  yc(t), t∈Z(T) → w(⋅)  z(t), t∈Z(T)x(t),\ t\in\mathbb R\ \xrightarrow{\ g(\cdot)\ }\ y(t),\ t\in\mathbb R\ \xrightarrow{\ \downarrow\ }\ y_c(t),\ t\in\mathbb Z(T)\ \xrightarrow{\ w(\cdot)\ }\ z(t),\ t\in\mathbb Z(T)

in cui g(t)=δ(t−t0)+δ(t+t0)g(t)=\delta(t-t_0)+\delta(t+t_0), t∈Rt\in\mathbb R, e la finestra è w(t)=11+t2/T2w(t)=\dfrac{1}{1+t^2/T^2}, t∈Z(T)t\in\mathbb Z(T):

  1. determinare il nucleo della trasformazione equivalente;
  2. calcolare l'espressione di Yc(f)Y_c(f) quando X(f)=Arect⁡(Tf)X(f)=A\operatorname{rect}(Tf), f∈Rf\in\mathbb R, e darne una rappresentazione grafica accurata per T=4T=4 ms, t0=1t_0=1 ms, A=1A=1 Vs;
  3. scrivere una procedura Matlab per il calcolo numerico e la rappresentazione grafica di Z(f)Z(f), la trasformata del segnale di uscita z(t)z(t), quando x(t)=Ce−t/T 1(t)x(t)=Ce^{-t/T}\,1(t), con T=4T=4 ms, t0=1t_0=1 ms, C=3C=3 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 R\mathbb R a Z(T)\mathbb Z(T) si scrive con un nucleo h(t,s)h(t,s), con tt istante di uscita e ss istante di ingresso: z(t)=∫−∞+∞h(t,s) x(s) ds,t∈Z(T).z(t)=\int_{-\infty}^{+\infty}h(t,s)\,x(s)\,ds,\qquad t\in\mathbb Z(T). Si segue il segnale blocco per blocco.

Per mettere il risultato nella forma ∫h(t,s)x(s) ds\int h(t,s)x(s)\,ds si usa la proprietà di campionamento della delta, x(t−t0)=∫δ(s−(t−t0)) x(s) dsx(t-t_0)=\int\delta(s-(t-t_0))\,x(s)\,ds: h(t,s)=w(t) [δ(s−t+t0)+δ(s−t−t0)]=w(t) g(t−s),t∈Z(T), s∈R.\boxed{h(t,s)=w(t)\,\big[\delta(s-t+t_0)+\delta(s-t-t_0)\big]=w(t)\,g(t-s),\qquad t\in\mathbb Z(T),\ s\in\mathbb R.}

Il nucleo dipende da tt e da ss non solo tramite t−st-s, per il fattore w(t)w(t): 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 x(t+t0)x(t+t_0), un valore futuro dell'ingresso.

(2) La trasformata Yc(f)Y_c(f)

Filtro. Il filtro è LTI e la sua risposta in frequenza è la trasformata di gg. Per la proprietà di traslazione, δ(t−t0)↔e−i2πft0\delta(t-t_0)\leftrightarrow e^{-i2\pi ft_0} (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 →): G(f)=e−i2πft0+ei2πft0=2cos⁡(2πft0),Y(f)=G(f)X(f)=2Acos⁡(2πft0)rect⁡(Tf).G(f)=e^{-i2\pi ft_0}+e^{i2\pi ft_0}=2\cos(2\pi ft_0),\qquad Y(f)=G(f)X(f)=2A\cos(2\pi ft_0)\operatorname{rect}(Tf). X(f)=Arect⁡(Tf)X(f)=A\operatorname{rect}(Tf) occupa ∣f∣<12T|f|<\frac1{2T}, e il coseno lo modula dentro questa banda.

Campionatore. Dà la ripetizione periodica senza fattore 1T\frac1T con periodo 1T\frac1T (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 →): Yc(f)=∑k=−∞+∞Y ⁣(f−kT)=2A∑kcos⁡ ⁣(2π(f−kT)t0)rect⁡ ⁣(Tf−k).Y_c(f)=\sum_{k=-\infty}^{+\infty}Y\!\left(f-\frac kT\right)=2A\sum_k\cos\!\Big(2\pi\Big(f-\frac kT\Big)t_0\Big)\operatorname{rect}\!\big(Tf-k\big). Il supporto di YY è ∣f∣<12T|f|<\frac1{2T}, largo esattamente un periodo: le repliche si toccano nei punti f=±12Tf=\pm\frac1{2T} e non si sovrappongono. Non c'è aliasing, e in ogni intervallo (kT−12T,kT+12T)\left(\frac{k}{T}-\frac1{2T},\frac kT+\frac1{2T}\right) resta una sola replica. In pratica YcY_c è il tratto di 2Acos⁡(2πft0)2A\cos(2\pi ft_0) in ∣f∣≤12T|f|\le\frac1{2T} ripetuto con periodo 1T\frac1T.

Numeri. Con T=4T=4 ms: periodo 1T=250\frac1T=250 Hz, semi-periodo 12T=125\frac1{2T}=125 Hz. Con t0=1t_0=1 ms =T4=\frac T4:

ff 2πft02\pi ft_0 Yc(f)Y_c(f) (in Vs)
00 (e ±250\pm250, ±500\pm500, ...) 00 2A=22A=2
±62,5\pm62{,}5 Hz π8\frac\pi8 2cos⁡π8=1,8482\cos\frac\pi8=1{,}848
±125\pm125 Hz π4\frac\pi4 2cos⁡π4=2=1,4142\cos\frac\pi4=\sqrt2=1{,}414

In f=125f=125 Hz la replica centrale vale 2\sqrt2 e quella successiva (che lì ha u=f−250=−125u=f-250=-125) vale ancora 2cos⁡(−π4)=22\cos\left(-\frac\pi4\right)=\sqrt2: il coseno è pari, quindi il raccordo tra repliche è continuo e non ci sono salti. Il coseno non si annulla mai nella banda (2πft0=π22\pi ft_0=\frac\pi2 richiederebbe f=250f=250 Hz, fuori da ∣f∣≤125|f|\le125).

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 x(t)=ATsinc⁡(t/T)x(t)=\frac AT\operatorname{sinc}(t/T) (la cui trasformata è Arect⁡(Tf)A\operatorname{rect}(Tf)), si calcola yc(nT)=x(nT−t0)+x(nT+t0)y_c(nT)=x(nT-t_0)+x(nT+t_0) e si confronta con ∫−125125Yc(f) ei2πfnT df\int_{-125}^{125}Y_c(f)\,e^{i2\pi fnT}\,df: per n=0,±1,±2,±3n=0,\pm1,\pm2,\pm3 i due valori coincidono (per esempio yc(0)=450,158y_c(0)=450{,}158 V da entrambe le parti).

(3) Procedura per Z(f)Z(f) con x(t)=C e−t/T 1(t)x(t)=C\,e^{-t/T}\,1(t)

Il segnale z(nT)z(nT) in forma chiusa. Con x(t)=Ce−t/T1(t)x(t)=Ce^{-t/T}1(t) e t0=T4t_0=\frac T4 i punti nT±t0nT\pm t_0 non cadono mai in t=0t=0 (dove il gradino vale 12\frac12), quindi il gradino vale 0 o 1:

  • n≥1n\ge1: entrambi i punti sono positivi, yc(nT)=Ce−n(e1/4+e−1/4)=2Ccosh⁡14 e−ny_c(nT)=Ce^{-n}\big(e^{1/4}+e^{-1/4}\big)=2C\cosh\frac14\,e^{-n};
  • n=0n=0: x(−t0)=0x(-t_0)=0 e x(t0)=Ce−1/4x(t_0)=Ce^{-1/4}, quindi yc(0)=Ce−1/4y_c(0)=Ce^{-1/4};
  • n≤−1n\le-1: nT+t0<0nT+t_0<0, quindi yc(nT)=0y_c(nT)=0.

Con la finestra: z(0)=C e−1/4=2,336 mV,z(nT)=2Ccosh⁡14 e−n1+n2 (n≥1),z(nT)=0 (n<0).z(0)=C\,e^{-1/4}=2{,}336\ \text{mV},\qquad z(nT)=\frac{2C\cosh\frac14\,e^{-n}}{1+n^2}\ (n\ge1),\qquad z(nT)=0\ (n<0). I primi valori: z(T)=1,138z(T)=1{,}138 mV, z(2T)=0,168z(2T)=0{,}168 mV, z(3T)=0,031z(3T)=0{,}031 mV: la successione decade come e−ne^{-n}, e basta troncare la somma a pochi termini.

Trasformata. Z(f)=∑nT z(nT) e−i2πfnTZ(f)=\sum_nT\,z(nT)\,e^{-i2\pi fnT} (con il peso TT 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 1T=250\frac1T=250 Hz. Si calcola per somma diretta, che è esatta fino al troncamento e non pone problemi di griglia in frequenza:

python
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 ZZ su un asse ff scelto liberamente (due periodi, −250-250...+250+250 Hz), non sulla griglia 1NT\frac1{NT} della FFT;
  • il fattore TT davanti è il peso dell'integrale di Haar su Z(T)\mathbb Z(T): senza di esso Z(f)Z(f) sarebbe sbagliata di un fattore 1T=250\frac1T=250;
  • 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): ∣Z(0)∣=1,473⋅10−5\lvert Z(0)\rvert=1{,}473\cdot10^{-5} con fase 00 (è l'area di zz, positiva e reale); ∣Z(50 Hz)∣=1,113⋅10−5\lvert Z(50\ \text{Hz})\rvert=1{,}113\cdot10^{-5} con fase −0,429-0{,}429 rad; ∣Z(125 Hz)∣=5,36⋅10−6\lvert Z(125\ \text{Hz})\rvert=5{,}36\cdot10^{-6} con fase 00 (a metà periodo e−i2πfnT=(−1)ne^{-i2\pi fnT}=(-1)^n, la somma è reale); Z(250 Hz)=Z(0)Z(250\ \text{Hz})=Z(0) per la periodicità. Poiché zz è reale, ∣Z∣\lvert Z\rvert è pari e la fase dispari.

Errori tipici

  • Scrivere il nucleo come w(t−s) g(t−s)w(t-s)\,g(t-s) o dire che la tf è LTI: la finestra dipende da tt in modo assoluto, quindi il nucleo non è funzione di t−st-s e la tf non è tempo-invariante.
  • Mettere il fattore 1T\frac1T nella ripetizione periodica del campionatore (in questo corso non c'è) o dimenticare il peso TT nella trasformata discreta di zz.
  • Disegnare YcY_c 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).

Esercizi su questo argomento

Teoria collegata