bonjour ,
j'ai toujours un problème à realiser la fft d'un signal et je ne sais pas ce qui ne va pas dans mon code.
Par exemple ici j'essaie de faire la fft d'un simple signal carré de fréquence 1Hz et avec une fréquence d'échantillonnage Fe=1000 .
j'utilise un fenetre de Hanning de taille 4096
Normalement ça devrait donner un pic au 1Hz et des harmoniques dans les 2Hz, 3Hz ... (périodiques espacées de 1Hz) si j'ai bien compris .
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 f=1; %frequence du signal fe=1000;%frequence d'echantillonnage N=4096; %longueur du signal L=N/fe; nb=200; t=1/fe:1/fe:L; x=square(2*pi*t*f); %signal carré de frequence 1hz subplot(2,1,1); plot(x); fn=hanning(N); %fenetre de hanning ft=fftshift(abs(fft(x'.*fn)));%fft ft=ft(floor(length(ft)/2):length(ft)); %la moitié de la fft w=fe/N:fe/N:fe/2; subplot(2,1,2); plot(w(1:nb),ft(1:nb));
Le problème, voilà ce que j'obtiens .
un pic au 1.4 , au 3.4, au 5.3 ..
je ne comprends pas à quoi est du cette inexactitude dans les valeurs
Merci de bien vouloir m'aider . Je suis perdue ...
Partager