Salta al contenuto
Note per Studenti Esercizio - convoluzione di gradino ed esponenziali causali

Esercizio - convoluzione di gradino ed esponenziali causali

In questa pagina 4

Testo (dispense del corso Teoria dei Segnali, UniPD, Es. 2.8J e 2.8K).

  • 2.8J. Calcolare la convoluzione del gradino 1(t)\mathbf 1(t) con se stesso.
  • 2.8K. Calcolare la convoluzione dei due segnali esponenziali reali x(t)=1(t)e−σ1tx(t)=\mathbf 1(t)e^{-\sigma_1t} e y(t)=1(t)e−σ2ty(t)=\mathbf 1(t)e^{-\sigma_2t}. Considerare anche il caso in cui σ1=σ2\sigma_1=\sigma_2.

Teoria usata: 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 →, 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 →, Integrazione per sostituzioneSe nell'integranda c'è g(f(x))·f'(x), la sostituzione y = f(x), dy = f'(x)dx trasforma l'integrale in ∫g(y)dy = G(y) + k, poi si torna a x: G(f(x)) + k. Negli integrali definiti cambiano anche gli estremi (da c, d a f(c), f(d)). Si può usare anche al contrario, con x = f⁻¹(y). È il primo metodo a cui pensare; dà la tabella degli integrali "immediati per sostituzione".Integrazione per sostituzione →.

Come si calcola una convoluzione di segnali causali

La definizione è x∗y(t)=∫−∞+∞x(u) y(t−u) dux*y(t)=\int_{-\infty}^{+\infty}x(u)\,y(t-u)\,du. Per segnali causali (nulli per tempi negativi) l'integrando x(u) y(t−u)x(u)\,y(t-u) è diverso da zero solo se entrambi i fattori lo sono:

  • x(u)≠0x(u)\neq0 richiede u>0u>0;
  • y(t−u)≠0y(t-u)\neq0 richiede t−u>0t-u>0, cioè u<tu<t.

Quindi l'integrale si riduce all'intervallo 0<u<t0<u<t, che esiste solo se t>0t>0: x∗y(t)={0t<0∫0tx(u) y(t−u) dut>0x*y(t)=\begin{cases}0 & t<0\\[2pt] \displaystyle\int_0^{t}x(u)\,y(t-u)\,du & t>0\end{cases} È coerente con la regola delle estensioni: e[x]=e[y]=[0,+∞)e[x]=e[y]=[0,+\infty) e l'estensione della convoluzione è la somma [0+0,∞+∞)=[0,+∞)[0+0,\infty+\infty)=[0,+\infty), cioè anche il risultato è causale.

(Es. 2.8J) Il gradino con se stesso è la rampa

Per t<0t<0: nessun uu soddisfa u>0u>0 e u<tu<t insieme, il prodotto è sempre 00 e 1∗1(t)=0\mathbf 1*\mathbf 1(t)=0.

Per t>0t>0: per 0<u<t0<u<t entrambi i gradini valgono 11 (si ricordi 1(t−u)=1\mathbf 1(t-u)=1 se t−u>0t-u>0), fuori da questo intervallo uno dei due vale 00 (negli estremi u=0u=0 e u=tu=t vale 12\frac12, ma un solo punto non cambia un integrale). Quindi 1∗1(t)=∫0t1⋅1 du=t.\mathbf 1*\mathbf 1(t)=\int_0^{t}1\cdot1\,du=t . Riassumendo: 1∗1(t)=t 1(t)\boxed{\mathbf 1*\mathbf 1(t)=t\,\mathbf 1(t)} cioè la rampa: zero per t<0t<0, retta di pendenza 11 per t>0t>0 (continua in 00, dove vale 00).

Cosa significa. Convolvere un segnale con il gradino significa integrarlo: x∗1(t)=∫−∞tx(u) dux*\mathbf 1(t)=\int_{-\infty}^{t}x(u)\,du (perché 1(t−u)=1\mathbf 1(t-u)=1 solo per u<tu<t). Qui x=1x=\mathbf 1, e l'integrale del gradino da −∞-\infty a tt è la rampa. Coerente anche con la derivata (Esercizio - proprietà della convoluzione, 2.8B): (1∗1)′=1∗δ=1(\mathbf 1*\mathbf 1)'=\mathbf 1*\delta=\mathbf 1, e infatti la derivata della rampa è il gradino. Ripetendo: 1∗1∗1(t)=t221(t)\mathbf 1*\mathbf 1*\mathbf 1(t)=\frac{t^2}{2}\mathbf 1(t).

Perché non si può usare la regola delle aree. La regola area(x∗y)=area(x)⋅area(y)\text{area}(x*y)=\text{area}(x)\cdot\text{area}(y) qui non dà informazioni: il gradino ha area infinita, e infatti la rampa ha area infinita.

Numeri. t=0,5→0,5t=0{,}5\to0{,}5; t=2→2t=2\to2; t=3,7→3,7t=3{,}7\to3{,}7; t=−1→0t=-1\to0 (l'integrale numerico di 1(u)1(t−u)\mathbf 1(u)\mathbf 1(t-u) dà esattamente questi valori).

Grafico interattivo: Es. 2.8J: il gradino convoluto con se stesso è la rampa t·1(t)

(Es. 2.8K) Due esponenziali causali

Caso σ1≠σ2\sigma_1\neq\sigma_2

Con x(u)=e−σ1ux(u)=e^{-\sigma_1u} e y(t−u)=e−σ2(t−u)y(t-u)=e^{-\sigma_2(t-u)} sull'intervallo 0<u<t0<u<t (t>0t>0): x∗y(t)=∫0te−σ1u e−σ2(t−u) du.x*y(t)=\int_0^{t}e^{-\sigma_1u}\,e^{-\sigma_2(t-u)}\,du . Passo 1: si raccolgono i fattori. e−σ2(t−u)=e−σ2teσ2ue^{-\sigma_2(t-u)}=e^{-\sigma_2t}e^{\sigma_2u}, quindi l'integrando è e−σ2t e(σ2−σ1)ue^{-\sigma_2t}\,e^{(\sigma_2-\sigma_1)u}. Il fattore e−σ2te^{-\sigma_2t} non dipende da uu e esce dall'integrale: x∗y(t)=e−σ2t∫0te(σ2−σ1)u du.x*y(t)=e^{-\sigma_2t}\int_0^{t}e^{(\sigma_2-\sigma_1)u}\,du . Passo 2: si integra. Se σ2−σ1≠0\sigma_2-\sigma_1\neq0 la primitiva di ecue^{cu} è ecuc\frac{e^{cu}}{c} (con c=σ2−σ1c=\sigma_2-\sigma_1; Integrali immediatiTabella degli integrali immediati, ottenuti leggendo al contrario le derivate delle funzioni elementari: potenze, 1/x, esponenziali, seno e coseno, tangente, arcoseno, arcotangente, funzioni iperboliche e loro inverse. Per gli integrali non ci sono regole come per le derivate, solo metodi: linearità, sostituzione, per parti.Integrali immediati →): ∫0tecudu=ect−1c⇒x∗y(t)=e−σ2t e(σ2−σ1)t−1σ2−σ1=e−σ1t−e−σ2tσ2−σ1\int_0^{t}e^{cu}du=\frac{e^{ct}-1}{c}\quad\Rightarrow\quad x*y(t)=e^{-\sigma_2t}\,\frac{e^{(\sigma_2-\sigma_1)t}-1}{\sigma_2-\sigma_1}=\frac{e^{-\sigma_1t}-e^{-\sigma_2t}}{\sigma_2-\sigma_1} (si è usato e−σ2te(σ2−σ1)t=e−σ1te^{-\sigma_2t}e^{(\sigma_2-\sigma_1)t}=e^{-\sigma_1t}). Per t<0t<0 il risultato è 00: x∗y(t)=e−σ1t−e−σ2tσ2−σ1 1(t)(σ1≠σ2).\boxed{x*y(t)=\frac{e^{-\sigma_1t}-e^{-\sigma_2t}}{\sigma_2-\sigma_1}\,\mathbf 1(t)}\qquad(\sigma_1\neq\sigma_2). È simmetrico nello scambio σ1↔σ2\sigma_1\leftrightarrow\sigma_2 (numeratore e denominatore cambiano entrambi segno), come richiede la commutatività.

Controlli.

  • Valore in 00: 1−1σ2−σ1=0\frac{1-1}{\sigma_2-\sigma_1}=0, quindi il risultato è continuo (l'integrale su un intervallo di lunghezza 00 è nullo).
  • Area (per σ1,σ2>0\sigma_1,\sigma_2>0): l'area di e−σt1(t)e^{-\sigma t}\mathbf 1(t) è 1σ\frac1\sigma, quindi per la regola delle aree l'area della convoluzione deve valere 1σ1σ2\frac{1}{\sigma_1\sigma_2}. Infatti ∫0∞e−σ1t−e−σ2tσ2−σ1dt=1σ1−1σ2σ2−σ1=σ2−σ1σ1σ2(σ2−σ1)=1σ1σ2\int_0^\infty\frac{e^{-\sigma_1t}-e^{-\sigma_2t}}{\sigma_2-\sigma_1}dt=\frac{\frac1{\sigma_1}-\frac1{\sigma_2}}{\sigma_2-\sigma_1}=\frac{\sigma_2-\sigma_1}{\sigma_1\sigma_2(\sigma_2-\sigma_1)}=\frac1{\sigma_1\sigma_2} ✓.
  • Forma: parte da 00, sale fino a un massimo e poi decade con la velocità dell'esponenziale più lento. Il massimo è dove la derivata si annulla: −σ1e−σ1t+σ2e−σ2t=0  ⟺  t∗=ln⁡(σ2/σ1)σ2−σ1-\sigma_1e^{-\sigma_1t}+\sigma_2e^{-\sigma_2t}=0\iff t^*=\dfrac{\ln(\sigma_2/\sigma_1)}{\sigma_2-\sigma_1}.

Numeri, σ1=1\sigma_1=1 e σ2=3\sigma_2=3. x∗y(t)=12(e−t−e−3t)x*y(t)=\frac12\big(e^{-t}-e^{-3t}\big). In t=1t=1: 12(0,36788−0,04979)=0,15905\frac12(0{,}36788-0{,}04979)=0{,}15905. Massimo in t∗=ln⁡32=0,5493t^*=\frac{\ln3}{2}=0{,}5493 con valore 12(3−1/2−3−3/2)=0,19245\frac12(3^{-1/2}-3^{-3/2})=0{,}19245. Area: 11⋅3=13\frac{1}{1\cdot3}=\frac13. Scambiando i due esponenziali (σ1=3\sigma_1=3, σ2=1\sigma_2=1) l'integrale numerico dà gli stessi valori.

Grafico interattivo: Es. 2.8K con σ1 = 1 e σ2 = 3: x(t) = e^{−t}1(t), y(t) = e^{−3t}1(t) e la loro convoluzione (e^{−t} − e^{−3t})/2, che parte da 0, ha il massimo 0,192 in t = 0,549 e decade come e^{−t}

Caso σ1=σ2=σ\sigma_1=\sigma_2=\sigma

Ora l'esponente nel Passo 1 è e(σ2−σ1)u=e0=1e^{(\sigma_2-\sigma_1)u}=e^{0}=1: l'integrando non dipende più da uu. Infatti e−σu e−σ(t−u)=e−σu−σt+σu=e−σt(gli esponenti in u si cancellano).e^{-\sigma u}\,e^{-\sigma(t-u)}=e^{-\sigma u-\sigma t+\sigma u}=e^{-\sigma t}\quad\text{(gli esponenti in }u\text{ si cancellano)}. L'integrale di una costante su un intervallo di lunghezza tt è la costante per la lunghezza: x∗y(t)=∫0te−σt du=t e−σt 1(t)(σ1=σ2=σ).\boxed{x*y(t)=\int_0^{t}e^{-\sigma t}\,du=t\,e^{-\sigma t}\,\mathbf 1(t)}\qquad(\sigma_1=\sigma_2=\sigma). Perché compare il fattore tt. Le due code decadono alla stessa velocità, quindi per ogni uu i due fattori si compensano esattamente: ogni "fetta" dell'intervallo di integrazione contribuisce lo stesso valore e−σte^{-\sigma t}, e il numero di fette è proporzionale a tt. Nel caso σ1≠σ2\sigma_1\neq\sigma_2 la compensazione è solo parziale e l'integrale è la differenza di due esponenziali.

Coerenza con il caso generale (limite). La formula generale è e−σ1t−e−σ2tσ2−σ1\dfrac{e^{-\sigma_1t}-e^{-\sigma_2t}}{\sigma_2-\sigma_1}, che per σ2→σ1\sigma_2\to\sigma_1 è della forma 00\frac00. È l'opposto del rapporto incrementale della funzione f(σ)=e−σtf(\sigma)=e^{-\sigma t}: f(σ1)−f(σ2)σ2−σ1=−f(σ2)−f(σ1)σ2−σ1→−f′(σ1)=t e−σ1t\dfrac{f(\sigma_1)-f(\sigma_2)}{\sigma_2-\sigma_1}=-\dfrac{f(\sigma_2)-f(\sigma_1)}{\sigma_2-\sigma_1}\to-f'(\sigma_1)=t\,e^{-\sigma_1t}, perché f′(σ)=−te−σtf'(\sigma)=-te^{-\sigma t}. Si ritrova il risultato del caso uguale: i due casi sono lo stesso risultato, uno limite dell'altro.

Controlli. Area: ∫0∞te−σtdt=1σ2\int_0^{\infty}te^{-\sigma t}dt=\frac{1}{\sigma^2} (Integrazione per parti∫ f·g' dx = f·g − ∫ f'·g dx (regola del prodotto letta al contrario). Si usa per log x, arcsin x, arctan x (scritti come "funzione per 1"), per sin²x, cos²x, sinh²x, cosh²x (integrale circolare: l'integrale di partenza ricompare e si porta a sinistra) e per prodotti come x^n·e^(αx), x^n·sin(βx), e^(αx)·sin(βx).Integrazione per parti →) =1σ⋅1σ=\frac1\sigma\cdot\frac1\sigma ✓. Massimo: ddtte−σt=(1−σt)e−σt=0  ⟺  t=1σ\frac{d}{dt}te^{-\sigma t}=(1-\sigma t)e^{-\sigma t}=0\iff t=\frac1\sigma, valore 1σe\frac{1}{\sigma e}. Per σ=2\sigma=2: massimo in t=12t=\frac12 di valore 12e=0,18394\frac{1}{2e}=0{,}18394; in t=1t=1 vale e−2=0,13534e^{-2}=0{,}13534. Una terza convoluzione con lo stesso esponenziale dà ∫0tue−σue−σ(t−u)du=e−σt∫0tu du=t22e−σt\int_0^tue^{-\sigma u}e^{-\sigma(t-u)}du=e^{-\sigma t}\int_0^tu\,du=\frac{t^2}{2}e^{-\sigma t}.

Grafico interattivo: Es. 2.8K con σ1 = σ2 = 1: e^{−t}1(t) convoluto con se stesso dà t e^{−t}1(t), con massimo 1/e ≈ 0,368 in t = 1

Controllo

python
import numpy as np
from scipy.integrate import quad

u = lambda t: (t > 0) * 1.0

# 2.8J: integrale numerico di 1(v) 1(t-v)
for t in (-1.0, 0.5, 2.0, 3.7):
    print(t, quad(lambda v: u(v)*u(t - v), -10, 20, points=[0, t])[0], max(t, 0.0))

# 2.8K: integrale numerico contro formula chiusa
def conv(s1, s2, t):
    f = lambda v: np.exp(-s1*v) * np.exp(-s2*(t - v))      # solo su 0<v<t
    return quad(f, 0, t)[0] if t > 0 else 0.0
def chiusa(s1, s2, t):
    return (np.exp(-s1*t) - np.exp(-s2*t))/(s2 - s1) if s1 != s2 else t*np.exp(-s1*t)
for s1, s2 in ((1, 3), (3, 1), (2, 2), (0.5, 2)):
    print(s1, s2, max(abs(conv(s1, s2, t) - chiusa(s1, s2, t)) for t in (0.4, 1.0, 2.5)))   # ~1e-17

# area e massimo
print(quad(lambda t: chiusa(1, 3, t), 0, np.inf)[0], 1/3)             # area 1/(s1 s2)
print(quad(lambda t: chiusa(2, 2, t), 0, np.inf)[0], 1/4)
ts = np.log(3)/2; print(ts, chiusa(1, 3, ts), 0.5*(3**-0.5 - 3**-1.5))  # massimo
print(chiusa(2, 2, 0.5), 1/(2*np.e))

Risultati: la rampa si ritrova esattamente (per t=−1t=-1 l'integrale è 00); le differenze tra integrale numerico e formula chiusa sono dell'ordine dell'errore di calcolo (meno di 10−1210^{-12}) per tutte le coppie (1,3)(1,3), (3,1)(3,1), (2,2)(2,2), (0,5,2)(0{,}5,2); le aree numeriche sono 13\frac13 e 14\frac14; il massimo vale 0,192450{,}19245 in t=0,5493t=0{,}5493 nel caso (1,3)(1,3) e 0,183940{,}18394 in t=12t=\frac12 nel caso (2,2)(2,2).

Versione ripasso

  • Metodo. Per segnali causali l'integrando è non nullo solo per 0<u<t0<u<t: x∗y(t)=∫0tx(u)y(t−u)dux*y(t)=\int_0^{t}x(u)y(t-u)du per t>0t>0, 00 per t<0t<0.
  • 2.8J. 1∗1(t)=∫0t1 du=t 1(t)\mathbf 1*\mathbf 1(t)=\int_0^t1\,du=t\,\mathbf 1(t) (rampa; convolvere con il gradino = integrare).
  • 2.8K. σ1≠σ2\sigma_1\neq\sigma_2: e−σ2t∫0te(σ2−σ1)udu=e−σ1t−e−σ2tσ2−σ11(t)e^{-\sigma_2t}\int_0^te^{(\sigma_2-\sigma_1)u}du=\frac{e^{-\sigma_1t}-e^{-\sigma_2t}}{\sigma_2-\sigma_1}\mathbf 1(t) (area 1σ1σ2\frac1{\sigma_1\sigma_2}). σ1=σ2=σ\sigma_1=\sigma_2=\sigma: gli esponenti in uu si cancellano, integrando costante e−σte^{-\sigma t} su lunghezza tt: t e−σt1(t)t\,e^{-\sigma t}\mathbf 1(t) (massimo 1σe\frac1{\sigma e} in t=1σt=\frac1\sigma); è il limite del caso generale.
  • Errori tipici: integrare su tutto R\mathbb R invece di [0,t][0,t]; dimenticare 1(t)\mathbf 1(t) nel risultato; applicare la formula con denominatore σ2−σ1\sigma_2-\sigma_1 quando σ1=σ2\sigma_1=\sigma_2.

Esercizi su questo argomento

Teoria collegata