Salta al contenuto
Note per Studenti Esercizio - banda di un prodotto e convoluzione di sinc

Esercizio - banda di un prodotto e convoluzione di sinc

In questa pagina 3

Testo (dispense del corso Teoria dei Segnali, UniPD, Es. 3.4I, 3.4L).

  • Es. 3.4I. Provare che il prodotto s(t)=x(t) y(t)s(t)=x(t)\,y(t) di due segnali (reali) a banda rispettivamente BxB_x e ByB_y è un segnale a banda limitata con Bs=Bx+ByB_s=B_x+B_y, e quindi, in particolare, che la banda di x2(t)x^2(t) è 2Bx2B_x.
  • Es. 3.4L. Calcolare la convoluzione dei segnali x(t)=sinc⁡(tT1)x(t)=\operatorname{sinc}\left(\frac t{T_1}\right) e y(t)=sinc⁡(tT2)y(t)=\operatorname{sinc}\left(\frac t{T_2}\right).

Teoria usata: 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 →, 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 →, 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 →, 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 →, 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 →.

Convenzioni: S(f)=∫s(t)e−i2πftdtS(f)=\int s(t)e^{-i2\pi ft}dt. Un segnale reale ha banda BB (limitata) se la sua trasformata è nulla fuori da [−B,B][-B,B], cioè E[s]=[−B,B]E[s]=[-B,B] è l'estensione spettrale (il più piccolo intervallo simmetrico fuori dal quale S(f)=0S(f)=0).

Es. 3.4I - la banda di un prodotto

Idea. Il prodotto nel tempo è la convoluzione delle trasformate: s=xy ↔ S=X∗Ys=xy\ \leftrightarrow\ S=X*Y, S(f)=∫−∞+∞X(λ) Y(f−λ) dλ.S(f)=\int_{-\infty}^{+\infty}X(\lambda)\,Y(f-\lambda)\,d\lambda. Il problema diventa: dove è non nulla la convoluzione di due funzioni nulle fuori da [−Bx,Bx][-B_x,B_x] e [−By,By][-B_y,B_y]?

Dimostrazione. Fissiamo ff con ∣f∣>Bx+By|f|>B_x+B_y. Nell'integrale l'integrando X(λ)Y(f−λ)X(\lambda)Y(f-\lambda) è non nullo solo se contemporaneamente ∣λ∣≤Bx|\lambda|\le B_x (altrimenti X(λ)=0X(\lambda)=0) e ∣f−λ∣≤By|f-\lambda|\le B_y (altrimenti Y(f−λ)=0Y(f-\lambda)=0). Ma per la disuguaglianza triangolare ∣f∣=∣λ+(f−λ)∣≤∣λ∣+∣f−λ∣≤Bx+By,|f|=|\lambda+(f-\lambda)|\le|\lambda|+|f-\lambda|\le B_x+B_y, che contraddice ∣f∣>Bx+By|f|>B_x+B_y. Dunque per quei ff l'integrando è nullo per ogni λ\lambda e S(f)=0S(f)=0. Quindi ss è a banda limitata e Bs≤Bx+ByB_s\le B_x+B_y.

Uguaglianza. Vediamo perché non si può fare meglio. Supponiamo che BxB_x e ByB_y siano le bande vere, cioè gli spettri non siano nulli subito dentro i bordi (dentro (Bx−ε,Bx)(B_x-\varepsilon,B_x) e (By−ε,By)(B_y-\varepsilon,B_y) per ogni ε>0\varepsilon>0), e che in quei tratti XX e YY non cambino segno (come avviene per i segnali di uso pratico: rettangoli, triangoli, esponenziali...). Per f=Bx+By−ηf=B_x+B_y-\eta con η>0\eta>0 piccolo, l'integrando è non nullo solo per λ∈[Bx−η,Bx]\lambda\in[B_x-\eta,B_x], dove λ\lambda è a distanza al più η\eta dal bordo di XX e f−λ∈[By−η,By]f-\lambda\in[B_y-\eta,B_y] è a distanza al più η\eta dal bordo di YY: l'integrando non cambia segno e non è nullo, quindi S(f)≠0S(f)\ne0. Perciò SS è non nulla arbitrariamente vicino a Bx+ByB_x+B_y e Bs=Bx+By.\boxed{B_s=B_x+B_y.} (Per spettri molto particolari, con segni che cambiano in modo da cancellarsi, potrebbe valere solo ≤\le; la dispensa enuncia l'uguaglianza, vera nei casi normali.)

Caso particolare. Per y=xy=x si ottiene Bx2=2BxB_{x^2}=2B_x: quadrare un segnale raddoppia la banda. Si noti che x2x^2 è reale anche quando lo è xx. L'interpretazione è che l'elevamento al quadrato crea frequenze somma, come cos⁡2θ=1+cos⁡2θ2\cos^2\theta=\frac{1+\cos2\theta}2 ha frequenza doppia.

Interpretazione sul tempo (dualità). Con lo stesso ragionamento, la durata di una convoluzione nel tempo è la somma delle durate; qui è la banda di un prodotto a essere la somma delle bande.

Esempi.

  1. Due coseni. x=cos⁡2πf1tx=\cos2\pi f_1t ha banda f1f_1, y=cos⁡2πf2ty=\cos2\pi f_2t ha banda f2f_2 (con f1>f2f_1>f_2). Il prodotto è cos⁡(2πf1t)cos⁡(2πf2t)=12cos⁡2π(f1+f2)t+12cos⁡2π(f1−f2)t\cos(2\pi f_1t)\cos(2\pi f_2t)=\frac12\cos2\pi(f_1+f_2)t+\frac12\cos2\pi(f_1-f_2)t (formule di prostaferesi): la frequenza massima è f1+f2=Bx+Byf_1+f_2=B_x+B_y ✓. Per f1=3f_1=3, f2=2f_2=2 Hz: componenti a 55 e 11 Hz, banda 55 Hz.
  2. Il quadrato di un sinc. x=sinc⁡(t)x=\operatorname{sinc}(t) ha X=rect⁡(f)X=\operatorname{rect}(f), Bx=12B_x=\frac12. x2=sinc⁡2(t)x^2=\operatorname{sinc}^2(t) ha trasformata tri⁡(f)=rect⁡(f)∗rect⁡(f)\operatorname{tri}(f)=\operatorname{rect}(f)*\operatorname{rect}(f), nulla fuori da [−1,1][-1,1]: banda 1=2Bx1=2B_x ✓ (vedi Esercizio - dimensioni di una trasformata, modulazione e sinc quadro). Il rettangolo di larghezza 11 convoluto con sé stesso dà un triangolo di base 22.
  3. Rettangolo e triangolo. Se X=tri⁡(f)X=\operatorname{tri}(f) (Bx=1B_x=1) e Y=rect⁡(f)Y=\operatorname{rect}(f) (By=12B_y=\frac12), la convoluzione numerica ha supporto [−1,5; 1,5][-1{,}5;\,1{,}5]: Bs=1,5=Bx+ByB_s=1{,}5=B_x+B_y ✓.

Conseguenza per il campionamento. Per ricostruire xx dai suoi campioni occorre (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 →) una frequenza di campionamento Fc≥2BxF_c\ge2B_x. Per ricostruire x2x^2 servono Fc≥2⋅2Bx=4BxF_c\ge2\cdot2B_x=4B_x: operare un'elevazione al quadrato richiede di raddoppiare la frequenza di campionamento, altrimenti si ha aliasing.

Es. 3.4L - convoluzione di due sinc

Trasformate. Dalla coppia sinc⁡(tT)↔Trect⁡(fT)\operatorname{sinc}\left(\frac tT\right)\leftrightarrow T\operatorname{rect}(fT) (la trasformata di rect con la regola di simmetria e di scala; area TT): X(f)=T1rect⁡(fT1),Y(f)=T2rect⁡(fT2).X(f)=T_1\operatorname{rect}(fT_1),\qquad Y(f)=T_2\operatorname{rect}(fT_2). Si noti che il calcolo diretto dell'integrale di convoluzione ∫sinc⁡(uT1)sinc⁡(t−uT2)du\int\operatorname{sinc}\left(\frac u{T_1}\right)\operatorname{sinc}\left(\frac{t-u}{T_2}\right)du è difficile (primitive non elementari); in frequenza è un prodotto.

Prodotto in frequenza. Per la regola di convoluzione x∗y↔XYx*y\leftrightarrow XY: X(f)Y(f)=T1T2rect⁡(fT1)rect⁡(fT2).X(f)Y(f)=T_1T_2\operatorname{rect}(fT_1)\operatorname{rect}(fT_2). rect⁡(fT)\operatorname{rect}(fT) vale 11 per ∣f∣<12T|f|<\frac1{2T}. Il prodotto di due rect centrati in 00 vale 11 dove valgono 11 entrambi, cioè per ∣f∣<min⁡(12T1,12T2)=12max⁡(T1,T2)|f|<\min\left(\frac1{2T_1},\frac1{2T_2}\right)=\frac1{2\max(T_1,T_2)}, perché il più piccolo tra due inversi è l'inverso del più grande: rect⁡(fT1)rect⁡(fT2)=rect⁡(f Tmax⁡),Tmax⁡=max⁡(T1,T2).\operatorname{rect}(fT_1)\operatorname{rect}(fT_2)=\operatorname{rect}\big(f\,T_{\max}\big),\qquad T_{\max}=\max(T_1,T_2). (Il rect più stretto "vince": è quello di banda minore, cioè con TT maggiore.)

Antitrasformata. Dalla stessa coppia sinc⁡(tT)↔Trect⁡(fT)\operatorname{sinc}\left(\frac tT\right)\leftrightarrow T\operatorname{rect}(fT) con T=Tmax⁡T=T_{\max}, il segnale che ha trasformata rect⁡(fTmax⁡)\operatorname{rect}(fT_{\max}) è 1Tmax⁡sinc⁡(tTmax⁡)\frac1{T_{\max}}\operatorname{sinc}\left(\frac t{T_{\max}}\right). Quindi x∗y(t)=T1T2⋅1Tmax⁡sinc⁡(tTmax⁡)=Tmin⁡ sinc⁡(tTmax⁡),Tmin⁡=min⁡(T1,T2),x*y(t)=T_1T_2\cdot\frac1{T_{\max}}\operatorname{sinc}\left(\frac t{T_{\max}}\right)=\boxed{T_{\min}\,\operatorname{sinc}\left(\frac t{T_{\max}}\right)},\qquad T_{\min}=\min(T_1,T_2), perché T1T2Tmax⁡=Tmin⁡\frac{T_1T_2}{T_{\max}}=T_{\min} (il prodotto T1T2=Tmin⁡Tmax⁡T_1T_2=T_{\min}T_{\max}).

Controlli e interpretazione.

  • Area: l'area di sinc⁡(tT)\operatorname{sinc}\left(\frac tT\right) è TT (=Trect⁡(0)=T\operatorname{rect}(0)); l'area della convoluzione deve essere il prodotto delle aree: T1T2T_1T_2. Dal risultato: area =Tmin⁡⋅Tmax⁡=T1T2=T_{\min}\cdot T_{\max}=T_1T_2 ✓.
  • Caso T1=T2=TT_1=T_2=T: x∗x=Tsinc⁡(tT)=T xx*x=T\operatorname{sinc}\left(\frac tT\right)=T\,x. Il sinc è, a meno del fattore TT, "idempotente" rispetto alla convoluzione.
  • Lettura da filtro: x(t)=sinc⁡(tT1)x(t)=\operatorname{sinc}\left(\frac t{T_1}\right) è la risposta impulsiva di un filtro passa-basso ideale con guadagno T1T_1 e banda 12T1\frac1{2T_1}. Se yy ha banda minore (T2>T1T_2>T_1, banda 12T2<12T1\frac1{2T_2}<\frac1{2T_1}) passa intatto, moltiplicato per T1T_1: x∗y=T1 yx*y=T_1\,y ✓ (il risultato con Tmin⁡=T1T_{\min}=T_1 e Tmax⁡=T2T_{\max}=T_2). Se invece yy ha banda maggiore, il filtro la taglia a 12T1\frac1{2T_1} e il risultato è proporzionale a xx: T2xT_2x.
  • Valore in 00: x∗y(0)=Tmin⁡x*y(0)=T_{\min}. Per T1=2T_1=2, T2=3T_2=3: 22.

Grafico interattivo: T1 = 2, T2 = 3: x = sinc(t/2), y = sinc(t/3) e la loro convoluzione x*y = 2·sinc(t/3) = T_min·sinc(t/T_max): ha la forma del più largo dei due (banda minore) e altezza T_min

Controllo

python
import numpy as np
from scipy.integrate import quad

# 3.4I: X = tri(f), Y = rect(f); la convoluzione ha supporto [-1.5, 1.5] = Bx + By
df = 0.001
f = np.arange(-4, 4 + df/2, df)
X = np.maximum(0, 1 - abs(f))
Y = (abs(f) < 0.5).astype(float)
S = np.convolve(X, Y, mode="same") * df
print(f[abs(S) > 1e-9].min(), f[abs(S) > 1e-9].max())           # -1.498 1.499

# x = sinc(t): lo spettro di x^2 (FFT su una griglia fitta) è tri(f), nullo fuori da [-1, 1]
dt, N = 0.05, 2**18
t = (np.arange(N) - N//2) * dt
fr = np.fft.fftshift(np.fft.fftfreq(N, dt))
X2 = np.fft.fftshift(np.fft.fft(np.fft.ifftshift(np.sinc(t)**2))) * dt
m = abs(fr) < 3
print(np.max(abs(X2[m].real - np.maximum(0, 1 - abs(fr[m])))))   # 1.5e-05

# 3.4L: integrale di convoluzione calcolato direttamente (T1 = 2, T2 = 3), a confronto con T_min sinc(t/T_max)
T1, T2 = 2.0, 3.0
u = np.arange(-6000, 6000 + 0.005, 0.01)
for t0 in (0, 1, 1.5, 3, 4.5):
    num = np.trapezoid(np.sinc(u/T1) * np.sinc((t0 - u)/T2), u)
    print(t0, round(num, 5), round(min(T1, T2)*np.sinc(t0/max(T1, T2)), 5))

Risultati: il supporto del prodotto è [−1,498; 1,499][-1{,}498;\,1{,}499] (atteso ±1,5\pm1{,}5); lo spettro di sinc⁡2(t)\operatorname{sinc}^2(t) differisce da tri⁡(f)\operatorname{tri}(f) per meno di 2⋅10−52\cdot10^{-5} ed è nullo (entro 10−310^{-3}) per ∣f∣>1|f|>1; il prodotto di due coseni coincide con la somma di prostaferesi a 10−1410^{-14}. Per le convoluzioni (T1 = 2, T2 = 3) il confronto tra integrale numerico e formula dà 2,00000; 1,65399; 1,27324; 0,00000; −0,424412{,}00000;\ 1{,}65399;\ 1{,}27324;\ 0{,}00000;\ -0{,}42441 per t=0; 1; 1,5; 3; 4,5t=0;\,1;\,1{,}5;\,3;\,4{,}5, valori identici. Controllati anche i casi (T1,T2)=(1,2),(1,1),(0,5,3)(T_1,T_2)=(1,2),(1,1),(0{,}5,3).

Versione ripasso

Teoria collegata