[Autre] faire une FFT sur périodes
Répondre à la discussion
Affichage des résultats 1 à 12 sur 12

faire une FFT sur périodes



  1. #1
    Kondelec

    faire une FFT sur périodes


    ------

    Bonjour à tous

    Lors d'une mesure je récupère un signal, sans avoir la forme d'onde complète ; je détecte uniquement les pics, et je mesure à chaque fois l’intervalle de temps entre 2 pics.
    Comment peut on déterminer la composante des fréquences plus basses que la fréquence de base (déterminée par les valeurs entre pics) ? Est-il possible de le faire sur Excel ; avec une FFT ?
    Je peux poster un exemple si nécessaire.

    Merci d'avance.

    -----

  2. #2
    Antoane
    Responsable technique

    Re : faire une FFT sur périodes

    Bonjour,

    Un exemple serait bienvenue en effet.

    Par définition de la période, il n'y a dans un signal périodique pas de composante spectrale de fréquence inférieure à la période -- il n'y a pas non plus de composante spectrale de fréquence non multiple (entier) de la période.
    Dans un signal apériodique, la notion de période n'a pas de sens.

    La FFT "périodise" le signal.
    La 5e de Beethoven n'est évidement pas un signal périodique, mais si j'en extrais les deux mesures avec le "tatatadaaaa", la FFT de ce signal sera la même que celle d'un signal répétant le tatatadaaaa de multiples fois, pendant une durée infinie. La période de ce signal est alors de 2 mesures, et la FFT contiendra des composantes spectrales au fréquences multiples de ces 1/(2 mesures).
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

  3. #3
    Kondelec

    Re : faire une FFT sur périodes

    Voici un exemple, qui est un enregistrement des données brutes.
    Les durées sont exprimées en ms, donc on a une fréquence de base moyenne de 1.175 Hz, mais si on regarde la courbe plus en détail on peut voir que la période varie elle même en suivant une période d'environ 20 à 30secondes, et suivant une autre période d'environ 3/5 secondes.

    Code:
    765
    811
    855
    891
    908
    903
    887
    877
    862
    850
    858
    848
    842
    847
    853
    860
    863
    845
    850
    866
    879
    862
    848
    850
    849
    827
    817
    820
    818
    813
    797
    771
    758
    754
    762
    781
    835
    919
    919
    892
    893
    862
    834
    822
    826
    827
    835
    830
    822
    823
    826
    817
    811
    805
    804
    783
    766
    760
    775
    795
    812
    840
    867
    864
    854
    846
    851
    836
    829
    843
    854
    847
    843
    845
    838
    828
    819
    821
    834
    821
    821
    824
    832
    839
    832
    836
    815
    804
    800
    780
    777
    788
    814
    837
    875
    895
    874
    859
    846
    845
    839
    824
    819
    818
    806
    811
    818
    819
    818
    815
    826
    822
    813
    783
    771
    771
    800
    844
    870
    899
    919
    900
    878
    865
    853
    848
    838
    831
    845
    863
    873
    882
    892
    899
    873
    863
    860
    859
    845
    838
    837
    833
    831
    808
    783
    772
    774
    794
    827
    874
    915
    940
    905
    887
    885
    869
    863
    861
    859
    852
    854
    852
    856
    836
    826
    809
    822
    828
    832
    846
    866
    865
    859
    877
    924
    891
    851
    850
    852
    856
    854
    854
    871
    889
    881
    884
    895
    905
    854
    834
    837
    819
    792
    776
    770
    777
    801
    825
    830
    829
    851
    857
    839
    840
    840
    847
    854
    848
    850
    845
    830
    818
    821
    835
    840
    841
    854
    854
    835
    841
    862
    892
    888
    890
    877
    859
    847
    821
    792
    777
    771
    776
    807
    857
    883
    907
    924
    896
    888
    863
    855
    828
    822
    828
    846
    861
    872
    865
    879
    877
    869
    842
    836
    843
    844
    838
    846
    856
    858
    856
    846
    827
    824
    801
    775
    769
    770
    798
    838
    860
    879
    898
    894
    876
    871
    881
    859
    851
    862
    866
    856
    836
    823
    836
    840
    811
    776
    749
    731
    735
    760
    806
    883
    896
    891
    900
    887
    869
    852
    851
    879
    901
    883
    889
    916
    892
    861
    855
    867
    889
    885
    880
    888
    915
    875
    848
    846
    849
    849
    848
    857
    844
    827
    791
    789
    794
    817
    857
    878
    925
    960
    931
    899
    906
    909
    896
    860
    829
    830
    826
    838
    842
    835
    846
    852
    867
    863
    858
    843
    834
    840
    839
    825
    820
    813
    787
    786
    788
    805
    828
    843
    856
    888
    902
    890
    868
    854
    855
    839
    840
    834
    834
    825
    821
    816
    827
    818
    823
    833
    841
    842
    854
    859
    858
    851
    844
    851
    881
    872
    872
    848
    806
    790
    782
    790
    826
    879
    921
    959
    978
    962
    921
    892
    895
    866
    855
    846
    838
    820
    822
    814
    811
    808
    799
    807
    844
    841
    848
    868
    873
    847
    838
    846
    805
    778
    769
    767
    778
    816
    848
    888
    932
    945
    907
    900
    875
    848
    838
    829
    826
    837
    837
    834
    851
    845
    844
    851
    868
    877
    865
    847
    853
    854
    839
    825
    829
    849
    851
    813
    793
    780
    786
    802
    829
    866
    892
    875
    895
    896
    877
    882
    868
    864
    863
    856
    840
    837
    836
    832
    828
    839
    844
    856
    828
    810
    801
    810
    820
    853
    888
    897
    891
    881
    880
    856
    835
    833
    828
    824
    818
    817
    834
    851
    891
    861
    850
    846
    856
    848
    848
    854
    869
    851
    863
    866
    864
    857
    869
    870
    877
    878
    892
    886
    840
    796
    786
    785
    809
    852
    901
    949
    946
    938
    906
    893
    884
    884
    875
    874
    854
    870
    864
    852
    845
    868
    883
    872
    877
    876
    864
    851
    837
    829
    831
    851
    883
    854
    824
    790
    779
    790
    822
    847
    840
    842
    855
    873
    889
    889
    894
    887
    868
    853
    869
    865
    859
    850
    841
    842
    847
    835
    856
    858
    861
    854
    853
    848
    853
    874
    908
    926
    911
    904
    884
    866
    856
    853
    818
    785
    769
    768
    772
    787
    833
    875
    921
    942
    946
    924
    909
    880
    853
    846
    835
    817
    817
    824
    837
    850
    846
    856
    860
    869
    874
    881
    873
    841
    833
    845
    871
    861
    840
    842
    820
    783
    778
    781
    783
    807
    848
    899
    918
    906
    916
    922
    914
    896
    882
    873
    876
    861
    849
    859
    873
    891
    888
    876
    880
    867
    840
    825
    824
    807
    803
    801
    792
    788
    785
    790
    796
    818
    869
    900
    921
    941
    950
    909
    888
    881
    883
    871
    878
    878
    871
    854
    848
    845
    863
    863
    864
    861
    844
    835
    828
    828
    834
    836
    839
    856
    878
    890
    883
    908
    898
    886
    866
    865
    871
    878
    880
    903
    871
    816
    789
    781
    790
    823
    877
    898
    920
    959
    933
    897
    876
    878
    867
    846
    826
    833
    851
    872
    875
    880
    900
    922
    916
    912
    883
    877
    872
    867
    880
    889
    879
    849
    844
    852
    854
    843
    846
    829
    813
    821
    826
    839
    840
    825
    821
    812
    788
    767
    764
    763
    780
    824
    866
    870
    893
    891
    884
    880
    879
    874
    865
    866
    857
    858
    836
    831
    838
    849
    857
    852
    848
    854
    850
    819
    802
    787
    784
    811
    823
    858
    854
    874
    906
    907
    897
    901
    886
    878
    868
    874
    879
    862
    849
    839
    841
    825
    816
    821
    825
    838
    840
    851
    859
    863
    832
    824
    813
    794
    771
    765
    765
    774
    800
    845
    925
    953
    930
    930
    920
    896
    869
    852
    839
    843
    826
    829
    840
    839
    838
    836
    844
    844
    848
    860
    886
    891
    872
    858
    853
    859
    840
    832
    825
    828
    814
    810
    818
    824
    836
    845
    858
    864
    836
    809
    800
    805
    829
    854
    884
    936
    949
    908
    899
    899
    892
    879
    863
    863
    867
    844
    827
    828
    827
    835
    817
    822
    835
    840
    827
    840
    849
    847
    834
    843
    845
    841
    826
    803
    791
    793
    795
    826
    890
    898
    891
    909
    916
    878
    868
    872
    870
    850
    845
    836
    839
    849
    845
    850
    866
    844
    815
    803
    811
    825
    818
    836
    855
    887
    905
    880
    861
    859
    848
    840
    814
    788
    762
    749
    748
    762
    794
    862
    892
    907
    938
    941
    904
    873
    870
    868
    854
    845
    832
    838
    842
    843
    844
    851
    860
    839
    825
    813
    826
    830
    836
    839
    860
    886
    879
    866
    863
    851
    866
    859
    856
    829
    792
    780
    773
    776
    795
    832
    842
    842
    861
    882
    909
    897
    910
    921
    919
    898
    890
    870
    871
    854
    854
    865
    874
    863
    847
    841
    838
    839
    825
    822
    838
    855
    842
    835
    841
    849
    854
    872
    908
    861
    804
    781
    767
    757
    770
    801
    834
    882
    929
    973
    928
    912
    888
    882
    873
    867
    875
    873
    881
    882
    875
    876
    884
    900
    894
    871
    864
    879
    861
    859
    843
    848
    845
    851
    838
    845
    833
    816
    794
    779
    772
    775
    803
    853
    930
    960
    939
    893
    908
    877
    876
    877
    892
    876
    878
    888
    876
    871
    876
    890
    872
    879
    879
    871
    854
    854
    854
    847
    842
    841
    853
    856
    843
    822
    800
    793
    793
    809
    864
    925
    922
    939
    943
    921
    899
    881
    878
    884
    867
    852
    842
    820
    830
    838
    834
    845
    834
    838
    821
    814
    801
    797
    790
    791
    797
    822
    822
    814
    795
    771
    772
    774
    795
    863
    935
    947
    911
    899
    878
    882
    884
    886
    876
    864
    873
    855
    861
    869
    858
    836
    833
    832
    832
    838
    854
    857
    865
    860
    876
    867
    854
    851
    859
    838
    839
    854
    873
    874
    884
    845
    808
    794
    789
    799
    845
    904
    904
    950
    977
    930
    929
    911
    889
    880
    899
    888
    879
    891
    906
    902
    893
    883
    885
    861
    852
    855
    860
    861
    841
    830
    822
    825
    806
    799
    803
    808
    798
    783
    784
    800
    835
    872
    916
    946
    932
    896
    901
    880
    872
    855
    853
    850
    838
    838
    829
    818
    818
    823
    816
    800
    811
    820
    826
    833
    842
    854
    849
    853
    839
    854
    844
    830
    842
    840
    841
    835
    838
    841
    832
    826
    813
    788
    770
    759
    758
    765
    793
    830
    851
    877
    916
    893
    860
    867
    885
    896
    917
    895
    879
    877
    887
    878
    865
    861
    849
    846
    838
    846
    846
    854
    854
    850
    862
    880
    876
    860
    853
    864
    855
    849
    838
    836
    817
    789
    779
    780
    786
    807
    850
    872
    942
    969
    921
    887
    889
    876
    852
    825
    813
    822
    836
    853
    850
    853
    876
    909
    877
    860
    869
    882
    883
    898
    933
    928
    899
    886
    868
    875
    875
    826
    813
    797
    774
    789
    806
    840
    860
    883
    835

  4. #4
    Antoane
    Responsable technique

    Re : faire une FFT sur périodes

    Bonjour,
    Voici le signal que tu as envoyé :
    untitled3.png
    J'ai du mal comprendre, car je ne vois pas de composante à 1.7 Hz, et on ne peut pas trouver de composante de fréquence inférieure à 1/1.34ms (cf. dernière ligne de mon précédent message).

    La FFT de ce signal (sans fenetrage - ou plutot avec une fenetre rectangle https://fr.wikipedia.org/wiki/Fen%C3%AAtrage ) est :
    untitled4.png
    On y devine peniblement une composante à ~30 Hz.
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

  5. A voir en vidéo sur Futura
  6. #5
    Kondelec

    Re : faire une FFT sur périodes

    Le signal envoyé correspond à la durée entre 2 pics successifs d'un signal plus complexe à enregistrer, et ce ne serait pas pertinent (d'où l'enregistrement des pics uniquement).

    La durée mini est de 731 ms, soit 1/(731/1000) = 1.368 Hz, le max est 978 ms (1.022 Hz), et la valeur moyenne 1.175 Hz.

    Si on crée une colonne "temps", où l'on ajoute la durée entre chaque intervalle mesuré en seconde, et une colonne ou l'on va calculer la fréquence correspondante, puis que l'on trace la fréquence en fonction du temps on obtient le graphique que j'ai ajouté en copie.

    Sans même faire de calcul on arrive à observer une certaine périodicité, d'une 30aine de seconde, c'est ce que je voudrais mettre en évidence (ainsi que d'autres fréquences éventuelles).
    Images attachées Images attachées  

  7. #6
    Antoane
    Responsable technique

    Re : faire une FFT sur périodes

    Ok, c'est plus clair.

    > on arrive à observer une certaine périodicité, d'une 30aine de seconde, c'est ce que je voudrais mettre en évidence (ainsi que d'autres fréquences éventuelles).
    La FFT serait donc le bon outils, mais de base on ne voit pas grand chose...
    Le signal (réduit de sa composante continue) :
    untitled_centered.png

    La FFT (fenetre rectangulaire) :
    untitled5.png

    La FFT en fonction de 1/f :
    untitled6.png


    La "période" de 30 s n'étant pas strictement la même entre deux répétitions du motif, on ne peut pas attendre un pic clair dans la FFT, il y aurait plutot une cloche -- c'est un équivalent à l'étalement de spectre (spread spectrum), qui va élargir la composante sprectrale en en faisant diminuer l'amplitude. Un enregistrement sur une plus longue durée aiderait à augmenter le SNR, et faire devrait apparaitre plus clairement les composantes spectrales - à condition qu'il n'y ait pas de dérive. Il serait aussi possible de jouer sur les fenetres avant FFT.
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

  8. #7
    Kondelec

    Re : faire une FFT sur périodes

    Merci pour cette réponse détaillée et ce travail.
    Peux tu me dire quel logiciel a permis de tracer la fft ?

  9. #8
    Antoane
    Responsable technique

    Re : faire une FFT sur périodes

    J'utilise Matlab.
    Octave est un équivalent gratuit. Scilab est proche.
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

  10. #9
    Kondelec

    Re : faire une FFT sur périodes

    Merci, j'ai installé Scilab, mais je ne comprend rien du tout...Je suppose que je dois créer une variable type tableau qui contiendra toutes mes valeurs, puis appliquer une FFT dessus, mais je n'arrive même pas à faire ça.

  11. #10
    Kondelec

    Re : faire une FFT sur périodes

    Bonjour

    J'ai compris comment charger mes valeurs dans une variable, puis effectuer la FFT, maintenant je cherche comment afficher le résultat : Si 'y' est le résultat de ma FFT je suppose que j'ai juste à faire un plot sur cette variable en ordonnée, mais qu'est ce que je prend en abscisse ?

  12. #11
    Antoane
    Responsable technique

    Re : faire une FFT sur périodes

    Bonjour,

    La FFT est une fonction pas particulièrement "user-friendly" sur scilab ou matlab, du fait d'une normalisation particulière.

    Le plus simple est de prendre un exemple, par exemple direcetemnt sur la fiche d'aide la fonction FFT :

    Code:
    //Frequency components of a signal
    //----------------------------------
    // build a noised signal sampled at 1000hz  containing  pure frequencies
    // at 50 and 70 Hz
    sample_rate = 1000;
    t = 0:1/sample_rate:0.6;
    N = size(t,'*'); //number of samples
    s = sin(2*%pi*50*t) + sin(2*%pi*70*t+%pi/4) + grand(1,N,'nor',0,1);
    
    y=fft(s);
    
    // s is real so the fft response is conjugate symmetric and we retain only the first N/2 points
    f = sample_rate*(0:(N/2))/N; //associated frequency vector
    n = size(f,'*')
    clf() // clear current figure
    plot(f, abs(y(1:n))) // show the one-sided (ie. without negative frequencies) spectrum
    Ici :
    * si tu t'intéresses aux fluctuations dans le temps du signal (par exemple : on a une sous-période de 30 minutes), ton vecteur t sera la somme cumulée des éléments du signal s. Deux conséquences :
    - il existe probablement des propriétés analytiques particulières pour le spectre d'une telle fonction, mais je n'ai pas le courage (et ne suis probablement pas capable ) de regarder ca maintenant
    - il est nécessaire de re-échantilloner le signal, qui doit avoir une fréquence d'échantillonage constante avant d'être passée à la fonction fft.
    * si tu t'intéresse aux fluctuations vs le nombre d'échantillons (par exemple : on a une sous-période de 40 échantillons), le vecteur t peut simplement être 1:length(s).
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

  13. #12
    Kondelec

    Re : faire une FFT sur périodes

    Merci pour cette réponse, je vais potasser ça

Discussions similaires

  1. Périodes inter-glacière
    Par invitef277a0bf dans le forum Géologie et Catastrophes naturelles
    Réponses: 2
    Dernier message: 12/08/2019, 09h54
  2. [Physiologie] periodes refractaires
    Par invitedf9cb038 dans le forum Biologie
    Réponses: 1
    Dernier message: 28/08/2016, 09h55
  3. La cause des 5 périodes glaciaires ?
    Par invite5127e21d dans le forum Géologie et Catastrophes naturelles
    Réponses: 12
    Dernier message: 01/11/2014, 00h08
  4. calcul des périodes
    Par invite87dab732 dans le forum Mathématiques du supérieur
    Réponses: 2
    Dernier message: 30/04/2010, 15h04
  5. Périodes glaciaires
    Par invite1397b00c dans le forum Archives
    Réponses: 2
    Dernier message: 21/06/2006, 17h15
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...