Bonjour,
Je rencontre un problème au sujet de l'utilisation de FFT.
J'ai un signal donné S dont je ne choisis pas vraiment le pas de temps dt ni le nombre de points nt (issus de la résolution d'un schéma numérique, donc dt et nt sont contraints en amont). Je connais donc S, dt et nt, et souhaite y appliquer la FFT de Matlab. Je précise que S est périodique, et comprend plusieurs centaines de périodes (ici environ 1300). Voici mon code:
nt = 108888;
dt = 0.000030612; %nt et dt fixés par le travail en amont
t = dt*[0:nt-1];
wf = 400;
S = sin(2*pi*wf.*t);
Y = fft(S);
P = abs(Y/(nt));
f = (0:nt/2)/(nt*dt);
Spect = P(1:nt/2+1);
Spect(2:end-1) = 2*Spect(2:end-1);
plot(f,Spect)
Je l'ai appliqué ici sur un signal explicite (le sinus) dont je connais la TF et qui est un point de départ représentatif pour illustrer le problème. Mon code me donne une amplitude inférieure à 1 sur le mode à 400, ce qui n'est pas normal. Et quand je change légèrement dt (par exemple 0.000036), j'ai un bon résultat. Il y a donc une gestion de l'échantillonnage que je ne fais pas correctement, mais je ne sais pas comment faire: pourtant je divise la FFT par le nombre de points du signal.
Le fait est que je pars d'un signal tout prêt, et non d'un signal bien choisi avec un nombre de points en 2^n par exemple.
Une idée?
Merci d'avance!
-----