Python. Matematica

Convoluzione

Convoluzione lineare semplice

Supponiamo di voler convoluire due funzioni f e g. Per un computer tali funzioni non sono nient'altro che liste di numeri associati a una certa x. La cosa importante è che l'intervallo sulle ascisse delle due funzioni sia lo stesso.

Supponiamo di avere

 f(t) = [1,2,3] per t = [12,13,14] 

f(t-t) sarà [3,2,1] per t = [12,13,14] con t = 0 (t si fissa 
arbitrariamente) 

g(t) = [4,5,6,7] per t = [0,1,2,3] 
[1,2,3]*[4,5,6,7] = [4,13,28,34,32,21] 

4567 -------- 321000 -> 4*1+5*0+6*0+7*0 = 4 per t-12=-2 cioè t=10 32100 
-> 4*2+5*1+6*0+7*0 = 13 per t-12=-1 cioè t=11 3210 -> 4*3+5*2+6*1+7*0 = 
28 per t-12= 0 cioè t=12 0321 -> 4*0+5*3+6*2+7*1 = 34 per t-12= 1 cioè 
t=13 00321 -> 4*0+5*0+6*3+7*2 = 32 per t-12= 2 cioè t=14 000321 -> 
4*0+5*0+6*0+7*3 = 21 per t-12= 3 cioè t=15 Risultato con opzione: full 
(default) [4,13,28,34,32,21] same [13,28,34,32] valid [28,34] 

È noto che [1,2,3]*[4,5,6,7] = [4,5,6,7]*[1,2,3].

La funzione di convoluzione in python è presente in vari package. Tra questi numpy (numpy.convolve(...)).