Problème échantillonnage FFT Matlab
Répondre à la discussion
Affichage des résultats 1 à 5 sur 5

Problème échantillonnage FFT Matlab



  1. #1
    DopplerQuestion

    Problème échantillonnage FFT Matlab


    ------

    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!

    -----
    Dernière modification par DopplerQuestion ; 18/12/2019 à 11h11.

  2. #2
    invite50625854

    Re : Problème échantillonnage FFT Matlab

    Bonjour,

    C'est par ce que tu n'as pas un nombre entier de periode dans ton signal temporel.

    Tu peux essayer nt = 108888-25;
    Ca va se rapprocher des 400 Hz.

    (le même effet que quand tu changes le dt)

  3. #3
    invite50625854

    Re : Problème échantillonnage FFT Matlab

    Quand tu appliques la fft matlab sur un signal par exemple [aabc]
    La fft te sort le même résultat qu'un signal infiniment long du type [...[aabc][aabc][aabc]...]

    Si tu analyses un signal periodique il faut alors s'assurer d'avoir un nombre entiers de la période.

    En général, c'est aussi vrai dans ton cas, l'erreur reste très minimes car tu as énormément de période dans ton signal...

  4. #4
    DopplerQuestion

    Re : Problème échantillonnage FFT Matlab

    Merci pour ta réponse, je comprends bien le principe de la FFT, mais j'avais pas pensé à ça. Après au niveau de l'erreur, j'ai 0.8 au lieu de1, ce qui n'est pas si minime!

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

    Re : Problème échantillonnage FFT Matlab

    Le pb de la densité de puissance.

    Mais si tu intègres le signal sur le domaine de la resolution spectral, à priori du retrouve la même énergie.
    Ton pic c'est elargie car ce n'est pas un signal périodique que tu as mis en entrée.

Discussions similaires

  1. Urgent problème d'échantillonnage :-/
    Par usthbienne dans le forum Électronique
    Réponses: 3
    Dernier message: 25/10/2013, 18h08
  2. Problème échantillonnage Cinéris
    Par kurse dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 25/01/2013, 09h18
  3. Problème statistique échantillonnage
    Par Berrichi_m dans le forum Mathématiques du supérieur
    Réponses: 20
    Dernier message: 13/10/2012, 23h03
  4. Echantillonnage Sur matlab !
    Par abdoudou11 dans le forum Électronique
    Réponses: 14
    Dernier message: 13/01/2011, 16h09
  5. problème PIC18F échantillonnage
    Par manuj dans le forum Électronique
    Réponses: 0
    Dernier message: 11/05/2009, 18h19