Répondre à la discussion
Affichage des résultats 1 à 9 sur 9

transformée de Fourier (algo numérique)



  1. #1
    Heimdall

    transformée de Fourier (algo numérique)


    ------

    Bonjour,


    J'ai fait un programme réalisant la transformation de fourier d'un signal réel (basé sur la bibliothèque numérique GSL) mais je ne comprends pas trop son comportement.


    En effet, après un test sur une fonction connue, cosinus, je ne trouve pas ce à quoi je m'attendais.

    La TF d'un cos est (au facteur près) la somme de deux diracs :





    est la fréquence du cosinus.


    donc pour cos(x) de période je m'attend à trouver deux pics symétriques en +- 0.15 ()


    Or je trouve deux pics en 0.32 soit



    Le programme donne deux beaux pics symétriques, j'ai donc du mal à croire qu'il marche mal... je lui donne bien un cosinus sur beaucoup de périodes... le problème doit venir de moi.
    avez vous une idée ?

    -----

  2. #2
    Heimdall

    Re : transformée de fourier (algo numérique)

    pour illustrer un peu mieux mon problème voici une image qui montre nettement que j'obtient un pic à deux fois la fréquence que j'attend à chaque fois...

    http://nico.aunai.free.fr/fft.png

  3. #3
    Korgox

    Re : transformée de fourier (algo numérique)

    ça vient peut être de la définition de la transformée de fourier.... c'est un peu wild pour les constantes :

    certains mettent 2pi dans l'exp. pour TF et TF inverse

    d'autres 1/2pi en facteur devant l'intégrale pour TF ou TF inverse mais pas les deux

    d'autres encore 1/racine(2pi) en facteur devant l'intégrale pour TF et TF inverse

    Dans ton cas, c'est comme si on mettait que pi dans l'exp...

  4. #4
    GrisBleu

    Re : transformée de fourier (algo numérique)

    Salut

    Effectivement, comme le dit Korgox, il n y a pas consensus
    tu peux prendre au choix

    d inverse


    ou la paire suivante
    d inverse


    Attention tu as des frequences ou des pulsations (comme les angles n ont pas de dimansions, je chipotte, mais des fois on se trompe)

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

    Re : transformée de fourier (algo numérique)

    salut,



    et ouais c'est bien ce qui me parait étrange, car le manuel de GSL dit clairement qu'il prennent la convention :

    x_j = \sum_{k=0}^{N-1} z_k \exp(-2\pi i j k / N)

    pour la transformation directe.


    il disent aussi que le résultat est stocké dans un tableau où on peut faire la correspondance entre l'index et la fréquence par la relation :


    index z x = FFT(z)

    0 z(t = 0) x(f = 0)
    1 z(t = 1) x(f = 1/(N Delta))
    2 z(t = 2) x(f = 2/(N Delta))
    . ........ ..................
    N/2 z(t = N/2) x(f = +1/(2 Delta),
    -1/(2 Delta))
    . ........ ..................
    N-3 z(t = N-3) x(f = -3/(N Delta))
    N-2 z(t = N-2) x(f = -2/(N Delta))
    N-1 z(t = N-1) x(f = -1/(N Delta))



    (le cas où N est impaire vire le N/2 mais ça change pas grand chose)



    J'ai utilisé ces relations et ça me donne le résultat que vous voyez (avec une fréquence double de celle prévue), je m'en tire en faisant :

    i z(t = i) x(f = i/(2N Delta))


    ce qui résoud le problème et marche parfaitement (même dans le cas d'un signal compliqué je retrouve les bonnes fréquences théoriques) mais ça m'ennuie un brin de pas piger ce qui se passe

  7. #6
    cricri

    Re : transformée de fourier (algo numérique)

    coucou
    http://forums.futura-sciences.com/thread63669.html

    tu pense quoi de mon spectre j ai bon ?

    je calcule une FHT fast hartley transform que je converti a la fin en une fft

  8. #7
    GrisBleu

    Re : transformée de fourier (algo numérique)

    reprenons

    ou est la frequence reduite allant de -0.5 a 05. La relation entre la vraie frequence et la frequence reduite est Ou est la frequence d echantillonnage.
    Je suppose que ce que tu appelles delta est
    On suppose que le filtre antialiasing etait la donc le signal n a pas de spectre hors .
    La FFT est un echantillonnage de la TF discrete. On coupe donc l intervalle en N points. Chaque intervalle de frequence a donc une taille de
    Au final, on a donc



    A priori il ont bons en meme temps je suis tout rouille

    Maintenant sur le cos(x). On peut ecrire

    avec . Par TF, on
    . Les pics doivent donc apparaitre en et
    sur ta FFT tu va les voir aux frequences reduites
    et
    D ailleurs si tu ne donnes pas le taux d echantillonnage, on peut rien te dire sur les resultats de la FFT

    J esperes ne pas m etre plante

    ++

  9. #8
    progfou

    Re : transformée de fourier (algo numérique)

    Je ne connais pas la librairie que tu utilises, mais une TF est symétrique par rapport au zéro...
    Ceci signifie que tu as l'image de ta raie (pour cos(x) à la fréquence "opposée".
    Sous matlab, il faut utiliser fftshift, pour décaler le spectre.

  10. #9
    stephtech

    Re : transformée de fourier (algo numérique)

    bonsoir,
    Je dois calculer les coefficients ak suivant à l'aide de la FFt de Matlab:

    ak = (1/2pi)* int(f(x).exp(-ikx).dx,x,-pi,pi)

    k=0,+/-1, ...

    où: f(x)=x^4+1 , -pi<=x<=pi

    Sur le papier, je trouve le bon resultat, mais pas avec Matlab! En fait il y a un changement de variable a effectuer sous Matlab, et je ne vois pas lequel!
    Si qq pourrait m'aider, se serait super sympa!!! merci
    Ciao, stéphane

Discussions similaires

  1. transformée fourier
    Par jameso dans le forum Mathématiques du supérieur
    Réponses: 11
    Dernier message: 23/08/2017, 10h52
  2. transformée de fourier
    Par doogy3 dans le forum Mathématiques du supérieur
    Réponses: 1
    Dernier message: 11/10/2007, 10h21
  3. transformée de fourier?
    Par trimidi dans le forum Physique
    Réponses: 2
    Dernier message: 30/09/2007, 17h23
  4. transformee de fourier
    Par fred123 dans le forum Mathématiques du supérieur
    Réponses: 2
    Dernier message: 17/04/2005, 14h38
  5. fourier transformée
    Par acx01b dans le forum Logiciel - Software - Open Source
    Réponses: 7
    Dernier message: 03/01/2005, 01h17