IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MATLAB Discussion :

débruiter / filtrer hystéresis


Sujet :

MATLAB

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Points : 877
    Points
    877
    Par défaut débruiter / filtrer hystéresis
    Salut tous,

    j'aurais besoin une fois de plus de votre aide si ça ne vous dérange pas

    j'ai une courbe d'hystéresis (cf. PJ) qui n'est pas aussi belle que celle que j'ai mis en image. En fait lors de la mesure il y a de petites perturbation (très légères) qui me gêne pour le traitement de la courbe.

    Ce que je voudrais faire c'est filtrer ma courbe afin de ne pas avoir de petites oscillations parasites et donc avoir un signal parfaitement lisse tout comme l'image en PJ.

    le soucis est que je n'y connait absolument rien en filtrage de données :
    - quel type de filtre ?
    - pourquoi ?
    - principe de fonctionnement ?
    - déjà implémenté sous matlab, lequel choisir ?

    j'espère que vous pourrez m'éclairer tous ceci...

    merci d'avance

    EDIT :

    j'ai trouvé sur le forum ce bout de code qui est très bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    m=50;
    b=ones(1,m);
    a=m;
    x=2*sin(2*pi*.013*(1:500))+randn(1,500);
    y=filter(b,a,x);
    subplot(2,1,1);plot(x);
    subplot(2,1,2);plot(y);
    mais comme j'ai compris ce code filtre les donnés d'un vecteur X alors que moi je veux filtrer un couple (X,Y) de données (c'est pareil ?)

    Le soucis :

    1°) le premier soucis est que je ne comprends pas vraiment le principe (par exemple pourquoi il y a une matrice unité qui intervient ?)
    2°) ensuite le deuxieme soucis :
    -> là la première courbe est très bruité et la deuxieme ne l'ai presque plus
    -> or dans mon cas j'ai une courbe qui est peu bruité (mais c'est quand même dérangeant), ma courbe ressemble en fait à la deuxieme courbe de cet exemple et je voudrais savoir si il est possible de filtrer encore mieux que cela ?

    merci d'avance
    A+

  2. #2
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Points : 5 179
    Points
    5 179
    Par défaut
    Salut!
    En fait, les cycles d'hystérèse d'un matériau ferromagnétique sont très mal définis: si tu prélèves des échantillons sur des livraisons successives de tôles de "même" type chez le même fournisseur, tu as de fortes chances d'avoir des cycles d'hystérèse assez différents. Considérer un certain cycle lissé comme une "vérité" est donc une illusion. Je te conseille donc une approche beaucoup plus simple: tu imagines une fonction qui ressemble le plus possible à celle représentée sur ta pièce jointe et tu la programmes.
    Jean-Marc Blanc
    Calcul numérique de processus industriels
    Formation, conseil, développement

    Point n'est besoin d'espérer pour entreprendre, ni de réussir pour persévérer. (Guillaume le Taiseux)

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Points : 877
    Points
    877
    Par défaut
    merci de cette réponse.

    L'idée est pas mal mais je ne sais pas quelle courbe prendre pour fiter ce type de chose (d'autant plus qu'ici ce n'est qu'un cas simplifié et en réalité la hauteur des boucles peu évoluer et il y a plusieurs cycles)

    en fait je pense que le plus simple est bien de filtrer la courbe de ce bruit de mesure

    ps : (oscillations dues à mon banc de mesure (un peu spécial ) qui vibre légèrement. Si je le bloque pendant un petit instant le bruit disparait)

    EDIT :


    en fouillant sur le net j'ai trouvé ceci pour filtre passe bas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Ynew=filter(a,[1 a-1],Y)
    j'ai testé mais je ne sais pas comment régler "a" de façon optimale, c'est au "taton" que ça se fait ?

    => le filtrage induit un décalage de ma courbe c'est normal ?

  4. #4
    Modérateur
    Avatar de le fab
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    1 882
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 882
    Points : 3 432
    Points
    3 432
    Par défaut
    Citation Envoyé par 21did21 Voir le message

    en fouillant sur le net j'ai trouvé ceci pour filtre passe bas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Ynew=filter(a,[1 a-1],Y)
    j'ai testé mais je ne sais pas comment régler "a" de façon optimale, c'est au "taton" que ça se fait ?

    => le filtrage induit un décalage de ma courbe c'est normal ?
    pour régler a, teste plusieurs valeurs entre 0 et 1 et choisi " la plus belle" courbe filtrée
    à a=1 tu récupère le signal de départ (pas de filtrage)
    à a=0 tu récupère un vecteur nul (trop de filtrage)

    le décalage est normal, pour l'enlever, il faut filtrer dans l'autre sens :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Ynew=filter(a,[1 a-1],Y);
    ynew = ynew(end:-1:1);
    Ynew=filter(a,[1 a-1],Ynew);
    ynew = ynew(end:-1:1);
    par contre prendre un a plus proche de 1 quand tu filtres 2 fois que lorsque tu filtres une fois

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Points : 877
    Points
    877
    Par défaut
    Citation Envoyé par le fab Voir le message
    pour régler a, teste plusieurs valeurs entre 0 et 1 et choisi " la plus belle" courbe filtrée
    à a=1 tu récupère le signal de départ (pas de filtrage)
    à a=0 tu récupère un vecteur nul (trop de filtrage)

    le décalage est normal, pour l'enlever, il faut filtrer dans l'autre sens :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Ynew=filter(a,[1 a-1],Y);
    ynew = ynew(end:-1:1);
    Ynew=filter(a,[1 a-1],Ynew);
    ynew = ynew(end:-1:1);
    par contre prendre un a plus proche de 1 quand tu filtres 2 fois que lorsque tu filtres une fois

    merci beaucoup pour ces explications

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [CR] Filtrer pour une période donnée
    Par liberio dans le forum SAP Crystal Reports
    Réponses: 6
    Dernier message: 21/04/2004, 16h32
  2. [JTextField] filtrer la saisie
    Par Merfolk dans le forum Composants
    Réponses: 7
    Dernier message: 04/03/2004, 19h57
  3. Filtrer les voyelles
    Par Babyneedle dans le forum Langage SQL
    Réponses: 9
    Dernier message: 22/12/2003, 15h12
  4. peut on filtrer les adresses IP ?
    Par travail dans le forum 4D
    Réponses: 2
    Dernier message: 04/06/2003, 14h16
  5. [VBA-E] [Excel] Filtrer le donnees d'une sheet
    Par donia dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 27/09/2002, 10h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo