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

Traitement du signal Discussion :

Exploitation d'une courbe expérimentale


Sujet :

Traitement du signal

  1. #1
    Candidat au Club
    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 (30 000 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 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 cela 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
    Responsable Qt & Livres



    Une approximation par morceaux n'est pas forcément mauvaise, c'est d'ailleurs le principe des cannelures pour l'interpolation (créer un polynôme qui sert entre deux points, en imposant la continuité de la fonction et de sa dérivée première pour chaque morceau).

    J'aurais plutôt tendance à partir sur un filtre passe-bas. De manière directe, ça veut dire calculer la transformée de Fourier, éliminer les fréquences hautes, calculer la transformée inverse pour retrouver tes trente mille points. Une moyenne glissante a le même effet. La dérivée est alors obtenue par différences finies.
    Vous souhaitez participer aux rubriques Qt ou PyQt (tutoriels, FAQ, traductions), HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  3. #3
    Expert éminent sénior
    Citation Envoyé par biabou7 Voir le message
    Bonjour,

    Je souhaiterai votre avis et vos conseils sur le problème suivant: j'ai obtenu une courbe expérimentale (30 000 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 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 cela 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!
    Bonjour

    Il serait bon d'avoir un échantillon de courbe de départ pour qu'on puisse te répondre correctement..

    En général, il y a 3 manières simples de "lisser" :

    - faire une moyenne glissante (avec par exemple la moyenne de 3 ou 5 points).
    - faire une moyenne statistique, en calculant sur un voisinage glissant la moyenne et écart-type, et éliminant / remplaçant les points au delà de 1 ou 2 sigmas.
    - faire une moyenne par une gaussienne


    Maintenant, pour "deviner" ou trouver la meilleure équation, il faut avor une idée de la forme de l"équation... Une fois cette forme faite, on peut par exemple utiliser la méthode des Moindres Carrés pour déterminer les bons facteurs...

    Mais tout ceci prendrait un exemple de graphe brut original
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  4. #4
    Candidat au Club
    voici les datas expérimentaux.

    Au début il y a bcp de variations donc il faudrait moyenner sur peu de points et à la fin il y a peu de variation donc moyenner sur bcp de points... je ne sais plus quoi faire ^^

  5. #5
    Modérateur

    Si c'est bruiter, tu peux lisser avec un filtre médian ou un peu de morphologie mathématique.

    Ensuite, si ta courbe est stable et approchable par une fonction existante ok, mais c'est le genre de chose souvent extrêmement complexe, car si tu ne sais rien de la forme de la courbe au préalable, tu ne sais pas si c'est un polynôme, une exponentielle, etc.
    C'est là que l'approximation par morceau peut être utile.
    Je serai plutôt partant pour une approximation par morceaux avec des B-Splines.
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  6. #6
    Expert éminent sénior
    Citation Envoyé par biabou7 Voir le message
    voici les datas expérimentaux.

    Au début il y a bcp de variations donc il faudrait moyenner sur peu de points et à la fin il y a peu de variation donc moyenner sur bcp de points... je ne sais plus quoi faire ^^
    Euh.. Pas possible d'avoir juste une petite image de ce que ça donne ?


    NB: pour ce que mentionne ToTo13, c'est bien SI il n'y a pas de variations trop brusques, ce que tu as l'air de sous-entendre... Mais comme j'ai dit un petit graphique vaut mille mots..
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

###raw>template_hook.ano_emploi###