Bonjour à tous,
Je travaille sur des données satellites acquises toutes les 15min et par exemple je regarde l'évolution de la radiance d'un pixel au cours du temps, j'obtiens donc un signal 1D plus ou moins sinusoïdal (variation jour/nuit), et plus ou mois bruité par la présence de nuages.
Ce que je veux c'est filtrer mon signal pour ne garder que les variations journalière, donc les variations de basse fréquences. Bon ça fait des années que je n'avais pas travaillé dans le traitement du signal et j'ai un peu tout oublié...
Ça ne m'empêche pas d'essayer
Donc j'essaye d'appliquer un filtre d'ordre 15 avec une fréquence de coupure correspondant à une fréquence de 1 jour, et quand j'applique j'ai un sacré décalage sur mon signal filtré avec des premières valeurs complètement aberrantes. cf petite image pièce jointe en rouge mon signal d'origine et en bleu le signal filtré
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Fe = 1/(15*60); %fréquence d’échantillonnage: 1 images/15min N = numel(TEST2); %Nombre de valeurs de mon signal t = (0:N-1)/Fe; %durée du signal XXX = fft(TEST2); %petite transformée de fourier Wn = 2*(1.2e-5)/(Fe/2); %fréquence de coupure normalisé -> 1 jour: 1/24h*60min*60s -> 1.2e-5Hz b = fir1(15,Wn,'low'); TEST3 = filter(b, 1, TEST2); figure plot(TEST3) hold on plot(TEST2,'r')
Ce décalage est fonction de l'ordre de mon filtre, un ordre de 1 crée un décalage de 1 valeur et un décalage de 100 est à l'origine d'un décalage.
Et c'est là que je me rends compte que j'ai oublié pas mal de chose depuis la dernière fois que j'ai du faire du traitement du signal car je ne sais plus de tout à quoi correspond ce décalage et comment s'en débarrasser...
Si vous pouviez m'éclairer!
Merci beaucoup
Flaherty
Partager