Bonjour,

Voici mon programme :


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
29
30
31
32
33
34
35
36
37
38
39
clear all
close all
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1998
load('fichier1.txt')
jour=fichier1(1:length(fichiers1),2);
mois=fichier1(1:length(fichier1),3);
annee=fichier1(1:length(fichier1),4);
heure=fichier1(1:length(fichier1),5);
 
conversion_mois % conversion du mois en seconde
t=((jour-1)*24*3600+heure*3600+mois);
y=fichier1(:,6);
 
c=zeros(1:2*(length(y)),1);
 
%Interpolation des données (pour pouvoir observer des fréquences allant jusque 1/10min sur le spectre)
for i=1:length(y)
    c(2*(i-1)+1)=y(i);
end
for i=1:length(c)/2
    c(2*i)=(c(2*i-1)+c(2*i+1))/2;
end
 
%%FFT
Y=fft((c));
N=length(c);
df=1/(max(t)-min(t));
f=(0:1:N/2)*df;
figure(1)
 
hold on
 
loglog(f(2:N/2+1),abs(Y(2:N/2+1)))
a=f(2:N/2+1);
b=abs(Y(2:N/2+1));
title('S(f) - 1950')
xlabel('f (Hz)')
ylabel('S(f)')
hold off
D'une part j'aimerai savoir si vous connaissez une commande permettant de faire une boucle pour charger les noms de fichiers (car j'ai beaucoup de fichiers à charger et à manipuler et je veux éviter les copier-collers)
D'autre part je veux filtrer mon signal avec un filtre passe bas pour n'observer le spectre que sur la bande de fréquence [1/5400 1/600].
J'ai essayé d'utiliser filter, fir1 mais je n'ai pas réussi et ne suis pas sûr de m'y être bien pris. Ce serait sympa si vous pouviez m'aider.

Merci !