Esercizio - interpolatore ideale, campionatore e quadrato (prova scritta del 30 maggio 2025)
Questa pagina non ha ancora la versione ripasso: qui sotto c'è il testo completo.
In questa pagina 5
Testo (prova scritta del corso Teoria dei Segnali, UniPD, 30 maggio 2025, problema 1; è anche l'Esercitazione 6). All'ingresso della cascata
in cui l'interpolatore LTI ha risposta impulsiva , , è applicato il segnale .
- Scrivere l'espressione della trasformata di Fourier di e rappresentarla graficamente.
- Calcolare l'area del segnale in uscita, per V, ms.
- Scrivere un brano di codice MATLAB per rappresentare accuratamente il grafico della trasformata di Fourier del segnale , , per V, ms.
Teoria usata: 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 →, 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 →, 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 →, 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 →, 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 →.
Lo spettro di
Il segnale è formato dai campioni del segnale continuo Dalla coppia con : La trasformata discreta di è la ripetizione periodica, con periodo e senza fattori (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 : le repliche si toccano in , dove vale 0, e non si sovrappongono. Quindi
(1) La trasformata di
Interpolatore. Ha risposta in frequenza (da ): è l'interpolatore ideale, che passa e taglia le repliche (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 →). Quindi Si ricostruisce esattamente il segnale continuo , perché ha banda e i campioni sono presi a passo (teorema del campionamento). Controllo numerico: la somma coincide con in , , , (per esempio e per in e ).
Campionatore. Ripete con periodo , . Le repliche non si sovrappongono, quindi e infatti : un'interpolazione ideale seguita dallo stesso campionamento riporta al segnale di partenza. È un controllo dei conti, e porta con sé il risultato: .
Per V, ms: altezza Vs (4 mVs), periodo Hz; i triangoli hanno base Hz (da a ), si toccano in Hz, Hz, ... e hanno il massimo mVs nei multipli di Hz.
Grafico interattivo: Y_c(f) in mVs, f in Hz: triangoli di altezza 2AT = 4 mVs e base 1000 Hz centrati nei multipli di 1/T = 1000 Hz; le repliche si toccano a ±500, ±1500 Hz senza sovrapporsi
(2) L'area di
Poiché , l'uscita è il quadrato campione per campione: L'area su è la somma pesata con (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 →), cioè . Si può calcolare in due modi.
Dai campioni. vale in , è per pari non nullo () ed è per dispari, quindi per dispari. Con , la somma su tutti i dispari (positivi e negativi) è : Area: .
Dalla frequenza (controllo): è reale e pari, quindi (Parseval, 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 →); su un periodo c'è un solo triangolo: perché . Stesso risultato: La somma numerica di termini dà .
(3) La trasformata di
Il segnale. Con il denominatore non si annulla mai, e La trasformazione è non lineare, quindi non si può usare : si calcola direttamente dai campioni. Valori: ; per pari non nullo; per dispari () , che decade come .
Grafico interattivo: s(nT) = sinc²(n/2)/(1+sinc²(n/2)): vale 1/2 in n = 0, zero per n pari, 4/(π²n²+4) per n dispari (0,29 in n = ±1, 0,043 in n = ±3)
Il codice. Il segnale decade come (lentamente): serve un numero di campioni abbastanza grande, perché l'errore di troncamento sullo spettro scala come (qui dà un errore sotto su valori dell'ordine di ).
import numpy as np
import matplotlib.pyplot as plt
A, T = 2.0, 1e-3
N = 2000 # la coda decade come 1/n^2: errore ~ 4/(pi^2 N)
n = np.arange(-N, N + 1)
x = A * np.sinc(n / 2) ** 2 # np.sinc e' sin(pi x)/(pi x), come nel corso
s = x / (A + x) # trasformazione non lineare, campione per campione
f = np.linspace(-1.5 / T, 1.5 / T, 3001) # tre periodi (periodo 1/T = 1000 Hz)
S = T * (s @ np.exp(-2j * np.pi * np.outer(n * T, f))) # TF discreta con peso T
plt.plot(f, S.real); plt.xlabel("f (Hz)"); plt.ylabel("S(f)")
plt.show()Perché è scritto così (Matlab: n=-N:N; x=A*sinc(n/2).^2; s=x./(A+x); S=T*s*exp(-1i*2*pi*(n.'*T)*f);, con sinc normalizzata della Signal Processing Toolbox):
np.sincè la sinc normalizzata , la stessa del corso (e di Matlab); non serve usaresin(x)/x, che vale 0/0 in .- Il fattore è il peso dell'integrale su ; senza di esso è sbagliata di un fattore .
- Il dominio in frequenza è periodico di periodo Hz, quindi basta un periodo, ma se ne disegnano tre per mostrare la periodicità. è reale e pari, quindi è reale e pari (la parte immaginaria calcolata è sotto ).
- La somma diretta invece della FFT dà su un asse a scelta; con la FFT servirebbe lo zero-padding per avere punti abbastanza fitti.
Forma chiusa (controllo). Con la serie nota (), presa per e separando i dispari dai pari (sottraendo la versione alternata, ), si trova, con : ripetuta con periodo . Valori: Vs; Vs (a il seno iperbolico si annulla); Vs. Il confronto numerico con la somma dà una differenza massima di Vs. È un andamento con spigoli in e (conseguenza della coda dei campioni) e valori negativi vicino ai bordi di ogni periodo.
Grafico interattivo: S(f)/T in funzione di fT: 1/2 + sinh(1 - 4|fT|)/cosh(1) per |fT| ≤ 1/2, periodica; massimo 1,26 in fT = 0, valore 1/2 in fT = ±1/4, minimo -0,26 in fT = ±1/2
Errori tipici
- Dimenticare di sommare le repliche (periodicità ) nella trasformata di un segnale su , oppure inserire un fattore che in queste convenzioni non c'è.
- Per , applicare la trasformata a (come se la tf fosse lineare): ; serve la trasformata dei campioni.
- Nel punto (2) sommare senza il peso : l'area è .
Vedi anche: Esercizio - decimazione, interpolazione esponenziale e convoluzione di segnali discreti (prova scritta del 19 giugno 2025), 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 →.