Bonjour à tous,

Dans le cadre de mes études je suis amené (à un moment) à devoir filtrer un signal de sortie par une courbe gaussienne.
Après pas mal de recherches, il s'avère que c'est un produit de convolution que je dois faire.

En gros j'ai un spectre discrétisé dans un tableau de double "x" [0 à 1024] avec les valeurs pour chacun des x[i] dans un tableau de double "y".

Je dois filtrer ce signal par une gaussienne d'écart type 0.07 et mettre les nouvelles ordonnées dans un tableau de double z.


Voici la représentation de mon spectre grâce à JFreeChart que j'ai obtenu à l'aide de mes tableau x et y :

Nom : ForumGauss.PNG
Affichages : 428
Taille : 24,9 Ko

Cela fait deux jours que je cherche, et je commence vraiment à désespérer

Merci d'avance pour votre aide,
Monax

Edit: j'ai aussi ce code là:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
       public static double[] convolute( double[] v , double[] m )
	        {
	                final int mid = m.length / 2;
	                double[] r = new double[v.length];
	                double sum;
 
	                for (int i=0, ie=v.length; i<ie; i++)
	                {
	                        sum = 0;
	                        for (int jv=i-mid, j=0, je=m.length; j<je; j++, jv++)
	                        {
	                                if (jv >= 0 && jv < v.length)
	                                {
	                                        sum += m[j];
	                                        r[i] += v[jv] * m[j];
	                                }
	                        }
 
	                        r[i] /= sum;
	                }
 
	                return r;
	        }

mais la il me faudrait une discrétisation d'une gaussienne d’écart type 0.07 sur 1024 canaux dans un tableau de double, quelqu'un sait comment faire svp?