Exploitation d'une courbe expérimentale
Répondre à la discussion
Affichage des résultats 1 à 7 sur 7

Exploitation d'une courbe expérimentale



  1. #1
    bibaou

    Exploitation d'une courbe expérimentale


    ------

    Bonjour,

    Je souhaiterai votre avis et vos conseils sur le problème suivant: j'ai obtenu une courbe expérimentale (30000 points environ) dont je veux connaitre la dérivée en tous points. Or, cette courbe est bruitée par les incertitudes de mesures qui font que la dérivée est tantôt positive tantôt négative BREF inexploitable. Je cherche donc un moyen répétable ( car plusieurs essais du même type) de trouver rapidement cette dérivée en lissant la courbe ou en l'approchant par une courbe connue par optimisation de certains paramètres. Je travaille sur excel 2010 ou scilab 5.5.0

    Voici les méthodes que j'ai utilisé pour le moment et les problèmes que j'ai rencontré:
    1/ Les courbes de tendances classiques ne fonctionnent pas et/ou sont très éloignées du modèle

    2/ J'ai essayé de moyenner les valeurs sur des échantillons de points mais je suis obligée de faire varier le nombre de points suivant les parties de la courbes que j'étudie car sinon ca me moyenne parfois trop ou pas assez. De plus, je suis obligée de faire des moyennes sur un échantillon très très grands ce qui me fais perdre en précision

    3/ j'ai utilisé un solveur pour approcher la courbe par des équations connues sauf que les modèles utilisés ne sont pas bons ou seulement sur une partie de la courbe. Je n'ai donc pas d'idée sur la forme générale de la courbe. Je suis donc obligée de procéder par morceau ce qui perd son intérêt

    Il doit donc exister une méthode pour lisser la courbe qui, bien que bruitée, a une forme bien déterminée? Sinon y a t il un moyen de "deviner" la forme générale de la courbe?


    Merci de votre aide!

    -----

  2. #2
    gg0
    Animateur Mathématiques

    Re : exploitation d'une courbe expérimentale

    Bonjour.

    Tu peux essayer de lisser avec des estimateurs à noyaux. Par exemple avec un noyau gaussien, tu fais une moyenne mobile dont les coefficients sont forts pour les valeurs proches et faible pour les valeurs éloignées.
    Il n'y a évidemment pas de bonne méthode si le rapport signal/bruit est faible. Parfois on s'en sort si on a un modèle global.

    Cordialement.

  3. #3
    Lanceliogs

    Re : exploitation d'une courbe expérimentale

    Yo.

    Ta courbe est si compliquée que ça ? Même avec un fit polynomial d'ordre 10 ça passe pas ?

  4. #4
    polf

    Re : exploitation d'une courbe expérimentale

    1) Pour réduire le bruit, la méthode la plus simple est de moyenner sur un paquet de n échantillons glissants.

    Mais cela n'a pas l'air de te convenir.

    2) Le bruit qui te dérange est dans les fréquences hautes. il donc faut réaliser un filtre passe-bas.
    on peut le faire de plusieurs manières.
    Le plus simple est de faire une
    -FFT du signal
    - filtrer les hautes fréquences :
    - soit en les tronquant, mais le résultat ne sera peut être pas optimal
    - soit en appliquant une fonction plus douce : par exemple au-dessus de Ffilt, diviser par f
    - FFT inverse pour retrouver le signal filtré

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

    Re : exploitation d'une courbe expérimentale

    Lanceliogs: non ma courbe est relativement simple justement =( c'est une simple décroissance en température vers zéro.

    Concernant le filtre passe bas, je comprends l'idée mais y' a une manière de faire ca simplement ? (mon niveau en scilab étant relativement bas)

  7. #6
    Lanceliogs

    Re : exploitation d'une courbe expérimentale

    Faut juste que tu trouves la fonction en scilab qui te donne la transformée de Fourier de ton signal...

  8. #7
    untruc

    Re : exploitation d'une courbe expérimentale

    Pour une première fois, tu dois procéder par étapes, et très soigneusement pour t'en sortir .

    1- tu commences par comprendre comment scilab calcule de spectre d'un signal, et comment tu peux le représenter graphiquement.
    Par exemple, tu as un signal de fréquence échantillonnage f_s=1000Hz,
    tu va donc utiliser les fonctions de transformée fourrier rapide, pour tracer le spectre de ce signal sur une plage de fréquence (0, 1000Hz) ou peut etre aussi une plage de fréquence centrée (-500, 500)

    2- tu dois déterminer, une fréquence de coupure f_c. Elle est en général liée à ton problème. Est ce que dans le type de signal que tu traites, on ne s'intéresse pas à ce qui se passe au dela de 50Hz par exemple.

    connaissant cela, et vu le spectre que tu as représenté en 1, tu est confiant pour filtrer passe bas le signal.

    3- Filtrage du signal: je me souviens de la procédure sous matlab: Etape1: contstuire un filtre butterworth (dont les paramètres sont liés à f_c et f_s), Etape 2 appliquer filtfilt (filtrage sans déphasage) à mon signal, en faisant appel au filtre.
    Sous scilab c'est différent. Donc faut bosser un peu pour voir comment creer un filtre, et puis il n'y a pas de filtfilt, donc faut appliquer 2 fois un filtre classique. Ou essaye la commande classique du filtre pour commencer.

    Savoir faire l'etape 1, te permets de verifier que ton signal filtré, et ton signal brut, ont des spectres qui similaires sur [0, 50Hz]

    4-Sous échantillonner: avant de dériver, je pense qu'il serait utile de se débarrasser du signal original, en faisant un sous échantillonnage.
    En effet, comme tu as filtré à f_c (supposons f_c=50Hz), tu n'as plus besoin d’échantillonner à une fréquence de 1000Hz.
    Par nyquist, je sous-échantillonne à 100Hz, ca veut dire, je parde 10% de mon signal filtré.

    Tu peux ignorer cette étape, mais si tu as des signaux à 2500 Hz sur 1min, provenant de 1000 capteurs... t'en as des données.
    Pour te convaincre que tu n'as rien perdu comme information, tu traces les spectres du signal brut, du signal filtré, et du signal filtré et sous-échantillonné.


    5- tu appliques un opérateur de dérivation discrète à ton signal filtré sous-échantillonné.

    PS: si ton signal brut au début (t=0), et à la fin (t=T), n'est pas nul, pour calculer/représenter le spectre, on préfère aussi multiplier le signal sur les bords, typiquement 10% de l'intervalle total, pour l’atténuer vers 0. Ca permet d’éviter de faire apparaitre des fréquences artificielles, dues à la TFD.
    Sous matlab, je me souvenais que j'utilisais tukeywin, en gros fenêtre cosine. Elle doit avoir un equivalent sur scilab
    (on ne fait pas ca pour filtrer le signal, uniquement quand on veut représenter le spectre)
    Tu peux aussi verifier que ca n'influe pas beaucoup sur le spectre.

Discussions similaires

  1. Lisser une courbe sinusoidale experimentale
    Par OuiOui94 dans le forum Mathématiques du supérieur
    Réponses: 1
    Dernier message: 13/06/2013, 09h40
  2. TIPE : réalisation expérimentale de courbe sensitométrique
    Par invitea3eb6bef dans le forum TPE / TIPE et autres travaux
    Réponses: 5
    Dernier message: 08/11/2012, 13h03
  3. Modélisation d´une courbe expérimentale
    Par invite651b6bae dans le forum Mathématiques du supérieur
    Réponses: 12
    Dernier message: 09/08/2012, 14h20
  4. Exploitation courbe d'Aston
    Par inviteb3153e00 dans le forum Physique
    Réponses: 0
    Dernier message: 29/10/2010, 14h37
  5. Exploitation courbe !
    Par Camb' dans le forum Physique
    Réponses: 4
    Dernier message: 19/02/2008, 16h37