La Transformée de Fourier sous matlab
Répondre à la discussion
Affichage des résultats 1 à 5 sur 5

La Transformée de Fourier sous matlab



  1. #1
    invite941f122c

    Smile La Transformée de Fourier sous matlab


    ------

    Bonjour tout le monde,
    j'ai un tp sous matlab a propos de la fft,voici mon programme:
    fs=50;
    ts=1/fs;
    n=0:99;

    %Soit les signaux suivants
    a1=10*sin(2*pi*n*ts);
    a5=7*sin(2*5*pi*n*ts);
    a7=5*sin(2*7*pi*n*ts);
    a11=2*sin(2*11*pi*n*ts);
    a13=1*sin(2*13*pi*n*ts);
    a17=0.5*sin(2*17*pi*n*ts);
    a19=0.2*sin(2*19*pi*n*ts);

    Le signal total est donné par lʼexpression suivante :
    at=a1+a5+a7+a11+a13+a17+a19;

    figure(1)
    plot(n*ts,at)
    grid

    y=fft(at);
    m = 0:length(y)-1;
    %

    j'ai obtenu une figure assez bizarre et je dois l'expliquer et je ne sait pas comment,si quelqu'un si connait en traitement du signal peut m'aider
    merci cordialement.

    -----

  2. #2
    invitea29b3af3

    Re : La Transformée de Fourier sous matlab

    Salut

    Quel signal était bizarre ? at ? ou sa fft ?
    parce que si t'essaies de fait plot(y) c'est normal que ça donne quelque chose de bizarre, car y est un nombre complexe. Faut prendre abs(y).
    Si tu veux pouvoir visualiser correctement la fft (avec des fréquences en Hz sur l'axe des abscisses) il faut diviser l'espace des fréquences [-fs/2; fs/2] en N points, N étant la longueur de ton signal, puisqu'une fft a la même longueur que le signal original.
    N=length(at);
    f=-fs/2:fs/N:fs/2-fs/N;
    y=fft(at)/N;
    plot(f,fftshift(abs(y)))
    Et là tu verras clairement le spectre bilatéral de ton signal, avec des rais à +/- les fréquences contenues dans ton signal (1,5,7,11,13,17,19 Hertz), avec leur amplitude respective (par exemple 2 rais d'ampli 5 à 1Hz).

  3. #3
    invite941f122c

    Exclamation Re : La Transformée de Fourier sous matlab

    salut fiatlux,
    je parlai du signal de at qui represente les harmoniques,au debut j'ai déssiner at en fonction de n*ts.et j'ai obteni cet figure et on me demande d'expliqué cet bizzarie, puis j'ai fait:

    y=fft(at)
    m=0:length(y)-1

    figure(2)
    stem(fs*m/length(y),abs(y))
    sur cet figure les amplitudes de chaque fréquence ne correspond pas à la valeur donnée au début en plus y'a cet effet miroire ke je comprend pas,comme je ne ss pa trés forte en traitement de signal alors j'arrive pa a expliqué ça,
    bon par la suite on fait la correction de ça avec:
    figure(3)
    stem(fs*m/length(y),abs(2*y/length(y)))

    half_m=0:ceil(length(y)/2);
    figure(4)
    stem(half_m*fs/length(y),abs(2*y(half_m+1)/length(y)))


    alors si vous avez des explication a me fournir je suis toute oui,merci bn journée.

  4. #4
    invitea29b3af3

    Re : La Transformée de Fourier sous matlab

    salut

    Par le théorème de l'échantillonnage, la fréquence d'échantillonnage doit toujours être plus grande que 2 fois la fréquence maximale contenue dans ton signal, dans ton cas 19 Hz, et on a bien fs = 50 > 2*19 = 38 Hz. Par conséquent le spectre de ton signal est entièrement compris entre 1 Hz et 19 Hz < fs/2. Le problème c'est qu'on échantillonne ce signal, autrement dit on le multiplie (dans le domaine temporel) par un peigne de deltas de Kronecker (souvent appelés abusivement deltas de Dirac). Or une multiplication dans le domaine temporel devient une convolution dans le domaine fréquentiel, donc le spectre de ton signal va être infiniment répété à gauche et à droite des multiples de fs (...,-2fs,-fs,0,fs,2fs,...), en version "miroré" à gauche du multiple, et en version "dans le bon sens" à droite du multiple (l'effet miroir dont tu parles, dû à la convolution). Autrement dit l'information qui nous intéresse est répétée une infinité de fois, il suffit de la considéré qu'à un seul endroit, et typiquement autour de 0 (qui est un des multiples de fs). Donc de façon générale, tout le spectre d'un signal échantillonné est toujours compris entièrement entre 0 et fs/2 (dans ton exemple c'est même entre 1 et 19). D'où le fait qu'on considère que cette zone de fréquence-là, puisque toute l'info est là, le reste c'est juste des répétitions du spectre. Mais tradionnellement, on considère plutôt entre -fs/2 et fs/2 plutôt que juste entre 0 et fs/2, même si toute l'info qu'on souhaite est déjà entre 0 et fs/2.

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

    Re : La Transformée de Fourier sous matlab

    bonsoir fiatlux,
    merci beaucoup pour tes explication, là je comprends mieux.
    je peut finir mon tp.
    bn soiré.

Discussions similaires

  1. [Matlab] Transformée de Fourier
    Par invite6fe04a59 dans le forum Logiciel - Software - Open Source
    Réponses: 5
    Dernier message: 17/04/2011, 13h39
  2. transformée de fourier sous matlab
    Par heruhur dans le forum Logiciel - Software - Open Source
    Réponses: 7
    Dernier message: 23/11/2009, 09h37
  3. Non compréhension de la Transformée de Fourier et de Matlab
    Par invite1e842170 dans le forum Mathématiques du supérieur
    Réponses: 0
    Dernier message: 07/10/2008, 19h16
  4. Transformée de Fourier en Utilisant MATLAB
    Par inviteb6f7c105 dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 02/10/2008, 13h57