Bonjour,
Je débute avec Scilab et j'ai essayé ce script :
Je fais une corrélation entre deux signaux, en gros je cherche un signal ou un motif que je connais (graphique du haut) qui serait caché/masqué dans un signal hyper bruité (graphique du milieu)
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
24
25
26
27
28 // motif a trouver : rectangulaire PatternLength=10000; Pattern=ones(1,PatternLength); // signal d'entrée avec deux répliques du motif SignalLength=200001; Signal=[1:SignalLength]*0; PatternPosition1=40000;PatternAmplitude1=1; Signal(PatternPosition1:PatternPosition1+PatternLength-1)=Pattern*PatternAmplitude1; PatternPosition2=122300;PatternAmplitude2=0.5; Signal(PatternPosition2:PatternPosition2+PatternLength-1)=Pattern*PatternAmplitude2; // ajout bruit gaussien NoiseLevel=0.5; NoisySignal=Signal+grand(1,SignalLength,"nor",0,NoiseLevel); // corrélation Correlation=xcorr(NoisySignal, Pattern); clf(); subplot(311); plot(Signal); subplot(312); plot(NoisySignal); subplot(313); plot(Correlation);
La corrélation fonctionne bien (graphique du bas) puisque je vois bien deux pics, donc il y a deux motifs du graphique du haut planqués dans le signal bruité du milieu.
Mais pourquoi mes deux pics sont autant décalés sur la droite ????? Ils devraient être en dessous des motifs que je cherche, c'est a dire qu'ils devraient me montrer où se trouve, temporellement parlant, les motifs.
Qu'est ce que j'ai loupé ? Il n'y a rien qui me saute aux yeux....
D'avance merci de votre aide.
Vincent
Partager