Bonjour tout le monde,

J'ai un petit problème en ce qui concerne l'implémentation de la fonction de cohérence temps fréquence. J'utilise pour l'implémentation la formule classique de la fonction de cohérence ( cross spectrum de signal1 et signal 2 divisé par spectrum de signal 1 * spectrum signal 2).
Voici le script utilisé :

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
 
%cross spectrums
Skj4=xwvd(time1,time1,length_window,1,nfft); % génération du cross spectrum ( prototype de la fonction : xwvd(signal1,signal2,longueurfenetre,resolution temporelle,nb de points de fft)).
 
Skk4=wvd(time1,length_window,1,127); % generation des deux autos spectres
Sjj4=wvd(time1,length_window,1,127);
 
% Gaussian Kernel ( juste une fonction que j'utilise pour avoir la fonction de coherence lissée)
sigma=10;
x=-20:20;
y=-10:10;
[X,Y] = meshgrid(x,y);
feur=1/(sqrt(2*pi*sigma^2))*exp(-(X.^2+Y.^2)/(2*sigma^2));
 
%spectrum estimate ( lissage des différents spectres...)
Skkestimate4=conv2(Skk4,feur);   
Sjjestimate4=conv2(Sjj4,feur);
Skjestimate4=conv2(Skj4,feur);
 
 
%coherence
     % avant lissage
coh5 =(Skj4.*conj(Skj4))./(Skk4.*Sjj4);
coh5=coh5/max(max(coh5)); % normalisation
 
     % apres lissage
coh4  = Skjestimate4.*conj(Skjestimate4)./(Skkestimate4.*Sjjestimate4);
coh4=coh4/max(max(coh4));
Donc voilà pour tester tout ça je commence tout simplement par appliquer le meme signal pour signal1 et 2. Je devrais obtenir une surface (en 1). C'est ok. Mon deuxieme test est d'appliquer par ex un chirp linéaire et un autre chirp linéaire (le meme) mais bruité(bruit gaussien de 5 dB). Je devrais obtenir un graphe avec une surface de 1 mais uniquement au niveau du chirp ( c'est à dire où il y a cohérence). Je n'obtiens pas cela mais un graphe totalement inutilisable...
Quelqu'un aurait'il une petite idée la dessus?
Merci bien

Olala