filtrage d'une fréquence particulière sous matlab
Répondre à la discussion
Affichage des résultats 1 à 9 sur 9

filtrage d'une fréquence particulière sous matlab



  1. #1
    invite9c7554e3

    filtrage d'une fréquence particulière sous matlab


    ------

    Salut tous,

    je vous écris car j'essai de faire du filtrage sous maltab.

    dans le code ci dessous j'ai un signal qui est composé de deux sinus de fréquence 2 et 0.3Hz.

    ce que j'aimerai faire c'est filtrer le sinus 2Hz mais le code ci dessous ne m'enleve pas cette composante du signal...

    savez vous d'où cela vient ?

    Code:
    clear all;close all;clc;
    %% signal origine
    t = 0:0.01:10;
    y = sin(2*pi*0.3*t)+sin(2*pi*2*t);
    %% signal traité fir
    fs = 1000;
    fcoupure = 2*[1 3]/fs;
    [b]=fir1(1,fcoupure,'stop');
    yfilter=filter(b,1,y);
    figure (1);hold on;plot(t,y);plot(t,yfilter,'r');
    %% signal traité avec butter
    fs = 1000;
    fcoupure = 2*[1 3]/fs;
    [b,a]=butter(1,fcoupure,'stop');
    yfilter=filter(b,a,y);
    figure (2);hold on;plot(t,y);plot(t,yfilter,'r');

    -----

  2. #2
    phuphus

    Re : filtrage d'une fréquence particulière sous matlab

    Bonsoir,

    ta fréquence d'échantillonnage n'est pas en accord avec ton pas de temps. Change plutôt la fréquence et garde le pas de temps actuel, il est toujours plus délicat de filtrer des fréquences très petites devant Fs.

    Pour ta prochaine question : mets plus que "1".

  3. #3
    invite9c7554e3

    Re : filtrage d'une fréquence particulière sous matlab

    salut Phuphus et merci beaucoup d'avoir pris le temps de repondre !!!
    Citation Envoyé par phuphus Voir le message
    ta fréquence d'échantillonnage n'est pas en accord avec ton pas de temps.
    pourquoi ?
    je ne comprends pas le lien entre mon pas de temps et la fréquence d'echantillonage qu'il faut choisir ...
    => le pas d'echantillonage doit etre soit supérieur soit egale à mon pas de temps ?

    Citation Envoyé par phuphus Voir le message
    Change plutôt la fréquence et garde le pas de temps actuel, il est toujours plus délicat de filtrer des fréquences très petites devant Fs.
    ça roule, merci.

    Citation Envoyé par phuphus Voir le message
    Pour ta prochaine question : mets plus que "1".
    mdr, tu parle de l'ordre du signal je pense
    oui, en effet je vais essayer de changer ça

  4. #4
    phuphus

    Re : filtrage d'une fréquence particulière sous matlab

    Bonsoir,

    Citation Envoyé par membreComplexe12 Voir le message
    pourquoi ?
    je ne comprends pas le lien entre mon pas de temps et la fréquence d'echantillonage qu'il faut choisir ...
    => le pas d'echantillonage doit etre soit supérieur soit egale à mon pas de temps ?
    En prenant un pas de temps de 10ms, tu construis un signal échantillonné à 100Hz. Il faut donc garder 100Hz.

    Citation Envoyé par membreComplexe12
    mdr, tu parle de l'ordre du signal je pense
    oui, en effet je vais essayer de changer ça
    Tout juste !

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

    Re : filtrage d'une fréquence particulière sous matlab

    merci de ton aide !

  7. #6
    phuphus

    Re : filtrage d'une fréquence particulière sous matlab

    Bonsoir,

    en référence au fil "inverse FFT (matlab)"

    Code:
    clear all;close all;clc;
    %% signal origine
    t = 0:0.001:10;
    y = sin(2*pi*0.3*t)+sin(2*pi*2*t);
    %% signal traité fir
    fs = 1000;
    fcoupure = 2*[1 10]/fs;
    [b]=fir1(2000,fcoupure,'stop');
    yfilter=filter(b,1,y);
    figure (1);hold on;plot(t,y);plot(t,yfilter,'r');
    %% signal traité avec butter
    fs = 1000;
    fcoupure = 2*[1 3]/fs;
    [b,a]=butter(3,fcoupure,'stop');
    yfilter=filter(b,a,y);
    figure (2);hold on;plot(t,y);plot(t,yfilter,'r');

  8. #7
    phuphus

    Re : filtrage d'une fréquence particulière sous matlab

    Re,

    légère amélioration (déphasage nul) :

    Code:
    clear all;close all;clc;
    %% signal origine
    t = 0:0.001:10;
    y = sin(2*pi*0.3*t)+sin(2*pi*2*t);
    %% signal traité fir
    fs = 1000;
    fcoupure = 2*[1 10]/fs;
    [b]=fir1(2000,fcoupure,'stop');
    yfilter=filtfilt(b,1,y);
    figure (1);hold on;plot(t,y);plot(t,yfilter,'r');
    %% signal traité avec butter
    fs = 1000;
    fcoupure = 2*[1 3]/fs;
    [b,a]=butter(3,fcoupure,'stop');
    yfilter=filtfilt(b,a,y);
    figure (2);hold on;plot(t,y);plot(t,yfilter,'r');

  9. #8
    invite9c7554e3

    Re : filtrage d'une fréquence particulière sous matlab

    salut Phuphus !

    merci beaucoup d'avoir pris le temps de repondre !!!!
    j'ai bien compris ton exemple il est très bien !!!!!!!

    je crois que je vais arriver à avoir des trucs pas mal avec ceci !

    ps: je ne connaissais pas "filtfilt" c'est super (si j'ai bien compris c'est comme filter mais ça enlève les soucis de dephasage!?)

  10. #9
    invite9c7554e3

    Re : filtrage d'une fréquence particulière sous matlab

    Juste une dernier question :

    => comment as tu choisi l'ordre du filtre FIR1 et de BUTTER ?

    par exemple pourquoi 2000 et pourquoi pas 200 ?
    de meme pour butterworth ?

    => en fait tu choisi ceci à l'oeil ?

    au fait lorsque je lance ceci sur mes courbes ça me donne :

    ??? Error using ==> fir1 at 77
    Frequencies must fall in range between 0 and 1.

    Error in ==> differentsFiltres at 49
    b=fir1(2000,fcoupure,'stop');

    as tu une diée d'où ça vient ?

    ps: au fait je n'arrive pas à t'envoyer des MP ta boite de rececption est pleine
    (je voulais t'envoyer mon fichier de données)

Discussions similaires

  1. Filtrage des données sous matlab ??
    Par invitebe5b0d57 dans le forum Programmation et langages, Algorithmique
    Réponses: 0
    Dernier message: 23/05/2012, 14h31
  2. Tracé d'une tangente en 3D sous Matlab...urgent
    Par invited3ed4108 dans le forum Logiciel - Software - Open Source
    Réponses: 8
    Dernier message: 22/04/2010, 17h15
  3. Antécédent d'une fonction sous matlab
    Par invite9f5d8dd0 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 28/04/2009, 14h11
  4. Résolution d'une équation sous Matlab
    Par invite4621550e dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 07/05/2007, 16h38
  5. Creation d'une dll sous matlab
    Par invitec66451ac dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 31/05/2006, 08h49