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

Signal Discussion :

Recherche de sinus dans un signal


Sujet :

Signal

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 13
    Points : 4
    Points
    4
    Par défaut Recherche de sinus dans un signal
    Bonjour !

    Je ne suis pas sûr que ma discussion trouve sa place ici, si je dois la rediriger sur un autre forum (comme Algorithmes) je le ferai aussitôt et veuillez m'excuser de m'être trompé.

    Je dispose de signaux assez bruités dont j'aimerais savoir s'ils contiennent des segments plus ou moins sinusoïdaux.
    Ma première intuition fut d'utiliser la fonction fit et de l'appliquer à diverses portions du signal pour repérer les zones à penchant sinusoïdal.
    J'ai donc tenté une telle méthode : je tente de fitter un sinus sur tout le signal, si l'erreur est suffisamment faible (par exemple 5% par rapport au signal) je considère que c'est bon, j'ai mon sinus. Sinon je fit le signal tronqué de son premier 1/10 de points (par exemple encore une fois, j'ai testé aussi avec 1/50) ou de son dernier 1/10 de points. Je compare les erreurs et je garde le segment qui ressemble le mieux à un sinus.
    Et je recommence jusqu'à que mon erreur soit inférieure à 5% soit que je n'ai plus assez de points.

    Dans la pratique la complexité est faible (et heureusement car fit est une fonction très coûteuse, je trouve, et mes signaux dépassent facilement les 10 000 points) mais les résultats sont très mauvais ! Je n'ai pas tenté sur mes signaux à moi pour l'instant mais uniquement sur un signal théorique plus simple : du bruit, mon sinus non bruité, et du bruit. Si l'intensité du bruit est trop importante il aura tendance à mieux calquer un sinus sur le bruit que sur le segment qui contient réellement le sinus, c'est problématique !

    Je n'ose pas trop imaginer quel résultat une telle manière de faire me rendra avec des signaux bien moins beaux, certes je les aurai un peu débruités (avec une moyenne glissante) avant mais les sinus seront bien moins explicites…

    Évidemment je peux appliquer la méthode assez brute qui consiste à appliquer la fonction fit à tous les segments possibles du signal, mais bon une complexité en N2 avec la fonction fit ça risque fortement de durer très longtemps.

    J'ai également essayé d'utiliser la fft, encore une fois c'est très (trop) sensible au bruit, de plus cela me gêne un peu plus d'utiliser la fft car j'aimerais pouvoir étendre cet algorithme à la recherche d'autres motifs et c'est pourquoi la fonction fit me plait plus.


    Si vous avez une idée pour résoudre mon problème, notamment si un meilleur parcours du signal avec fit vous traverse l'esprit, je suis très intéressé.

    Si vous avez besoin de plus d'informations je suis évidemment prompt à vous répondre.

    Merci d'avance pour votre aide. :-)

  2. #2
    Membre régulier
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Juillet 2014
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur d'études

    Informations forums :
    Inscription : Juillet 2014
    Messages : 46
    Points : 111
    Points
    111
    Par défaut
    Citation Envoyé par Timy123 Voir le message
    Je dispose de signaux assez bruités dont j'aimerais savoir s'ils contiennent des segments plus ou moins sinusoïdaux.
    Est-ce que le facteur discriminant est la forme ou la fréquence? Si c'est la fréquence, on peut envisager toutes sortes de filtres qui augmenteront le rapport signal/bruit, en plus des solutions spectrales. Sinon il va falloir envisager une recherche "multi-échelle" (quelle que soit la fréquence de le sinusoïde). Un exemple de signal serait bienvenu. Citer le domaine d'application permettrait de passer en revue les solutions connues.

    Cordialement.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 13
    Points : 4
    Points
    4
    Par défaut
    Bonjour,


    merci pour ta réponse !
    C'est pas évident de donner un exemple de signal significatif, je travaille pour un projet de détection de défauts de machines et il n'est finalement pas dit que les signaux contiendraient des sinus. Je travaille un peu à l'aveugle sur ce coup-ci, c'est juste mon cahier des charges.
    Mais les sinus peuvent être de toutes les formes possibles, d'amplitude, de fréquence, de phase variable…

    Néanmoins je peux me résoudre à faire des hypothèses : un sinus dont l'amplitude ne dépasse pas significativement celle du bruit ne risque pas de m'intéresser en fin de compte.

  4. #4
    Membre régulier
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Juillet 2014
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur d'études

    Informations forums :
    Inscription : Juillet 2014
    Messages : 46
    Points : 111
    Points
    111
    Par défaut
    Citation Envoyé par Timy123 Voir le message
    Mais les sinus peuvent être de toutes les formes possibles, d'amplitude, de fréquence, de phase variable…
    Sans connaissance du signal à trouver, il va être difficile de donner une réponse argumentée. Tout ce que je peux dire c'est que pour détecter un sinus dans du bruit, on utilise des filtres, ou encore des techniques de convolution/corrélation (filtre adapté). Mais le signal à détecter est de fréquence constante. Essayer de caractériser la signature en faisant des tracés, des spectres, des sonagrammes, éventuellement en écoutant. La question est : qu'est-ce qui se passe quand ce signal est présent?

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 13
    Points : 4
    Points
    4
    Par défaut
    Malheureusement je suis très détaché de la pratique. Je ne suis dans ce projet qu'en tant que stagiaire et je n'ai aucune idée à quoi j'ai concrètement affaire donc la signification d'un sinus (qui encore une fois peut être juste un sinus très très approché même sans bruit) m'est un peu inconnu… de plus je dois avoir dans l'optique de pouvoir appliquer ça à d'autres motifs.
    C'est vraiment un travail à l'aveugle : je dois pouvoir balancer tous mes signaux dans ma fonction et qu'ils me ressortent au mieux les motifs que je voulais trouver.

    Ce que je demande est probablement utopique et c'est pourquoi je pensais qu'en bidouillant la recherche d'un sinus avec la fonction fit j'obtiendrais une manière peu rigoureuse pour chercher des motifs.

    Merci pour ton aide.

  6. #6
    Membre régulier
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Juillet 2014
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur d'études

    Informations forums :
    Inscription : Juillet 2014
    Messages : 46
    Points : 111
    Points
    111
    Par défaut
    On n'écrit pas de détecteur sans pré-connaissance du signal. Cf. le filtre optimal qui, comme son nom l'indique, est le meilleur détecteur possible pour un signal donné. On vise alors à isoler un signal noyé dans du bruit.

    Un sinus "très très approché" est un sinus auquel a été ajouté un peu de bruit ou de distorsion. Les phénomènes vibratoires engendrent des sinus purs, les harmoniques peuvent lui conférer une forme qui diffère du sinus mathématique, c'est une somme de sinus. Une analyse spectrale le fera ressortir à coup sûr. Si la fréquence varie, l'analyse temps-fréquence le montrera (fourier court-terme, sonagramme). Il ne s'agit pas encore de détection mais de visualisation, qui donnera une meilleure connaissance du signal.

    Si on a vraiment affaire à des "sortes de sinus" de fréquence(s) variable(s), le sonagramme s'impose en première approche.

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 13
    Points : 4
    Points
    4
    Par défaut
    Le sonagramme a l'air effectivement de donner des résultats intéressants ! As-tu un conseil pour l'exploiter ? À première vue prendre une très grande fenêtre rectangulaire permet de cerner les fréquences présentes même si la précision temporelle est nulle. Ensuite avec une fenêtre très réduite je pourrai repérer temporellement mes sinus. Mais ça ne semble pas marcher pour tous les cas évidemment, par exemple si le sinus s'étale sur peu de points dans du bruit (exemple : 50 points sur 3000, SNR=1) où là les amplitudes du sonagramme sont très faibles.
    Tu as dit que le sonagramme était d'abord utile pour visualiser le signal, qu'entendrais-tu alors pour la partie détection ? Sachant que je ne peux observer moi-même le sonagramme, le traitement visualisation + détection devrait dans l'idéal se faire d'une seule traite.

    Sinon j'avais déjà regardé du côté des filtres de Wiener pour débruiter mon signal (j'avais utilisé les méthodes de ce site sur la déconvolution à l'aveugle), mais avec ce que j'ai et avec seul le signal en entrée c'est pas évident d'obtenir quelque chose de très efficace, j'ai été obligé de donner une puissance du bruit un peu au hasard et même avec la bonne puissance de bruit je devais l'appliquer plusieurs fois de suite pour retrouver une forme acceptable, bref…

  8. #8
    Membre régulier
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Juillet 2014
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur d'études

    Informations forums :
    Inscription : Juillet 2014
    Messages : 46
    Points : 111
    Points
    111
    Par défaut
    Citation Envoyé par Timy123 Voir le message
    À première vue prendre une très grande fenêtre rectangulaire permet de cerner les fréquences présentes même si la précision temporelle est nulle. Ensuite avec une fenêtre très réduite je pourrai repérer temporellement mes sinus.
    C'est tout le drame de l'analyse de Fourier : l'ambiguïté temps x fréquence. La résolution temporelle et la résolution fréquentielle sont antagonistes. Qu'utilises-tu comme sonagraphe? Le second facteur sur lequel on peut jouer est le saut ("hop") qui gouverne le recouvrement des fenêtres. Il va contracter ou dilater l'échelle de temps, sans toutefois améliorer la résolution.

    La partie détection, c'est celle qui va quantifier le signal cherché, justement parce que tu ne peux pas observer le sonagramme en permanence. Elle va dire "il est là, il a telle puissance, il a telle fréquence..." Elle sera beaucoup plus performante que le sonagramme si elle est adaptée au signal. Encore faut-il caractériser ce signal. Nous savons que c'est un sinus. Sa fréquence varie-telle au sein d'une manifestation, ou d'une manifestation à l'autre? Y-a-t-il un "pattern" qui se dégage? Peux-tu publier un sonagramme ou, encore mieux, un échantillon du signal?

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 13
    Points : 4
    Points
    4
    Par défaut
    Bonjour,

    désolé pour la réponse tardive ! J'ai mis en pièce jointe deux exemples de signaux.
    Le premier signal contiendrait des extraits sinusoïdaux entre 7.3542 et 7.3547 (*105) notamment, en tout cas j'aimerais pouvoir détecter cette zone. Le deuxième signal est sinusoïdal un peu plus partout.
    Fichiers attachés Fichiers attachés

  10. #10
    Membre régulier
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Juillet 2014
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur d'études

    Informations forums :
    Inscription : Juillet 2014
    Messages : 46
    Points : 111
    Points
    111
    Par défaut
    Zut ! Octave n'a pas la fonction openfig.

    Est-ce que je peux te demander de les publier sous forme image?

  11. #11
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 13
    Points : 4
    Points
    4
    Par défaut
    Les voici, j'ai tenté de zoomer (deux fois) sur des zones intéressantes car je ne pense pas que la précision ait été conservée avec le passage en jpg.
    Fichiers attachés Fichiers attachés

  12. #12
    Membre régulier
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Juillet 2014
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur d'études

    Informations forums :
    Inscription : Juillet 2014
    Messages : 46
    Points : 111
    Points
    111
    Par défaut
    Merci beaucoup.

    En effet, on soupçonne une périodicité sur les zooms. Je mesure grosso-modo 30 pixels entre les pics. Il me manque un peigne sur la visualisation pour le vérifier. S'il s'agit de détecter la présence d'un péhnomène vibratoire, une analyse spectrale sur une PETITE fenêtre (idéalement celle de Sinus developpez.net zoom*2) devrait montrer un pic à sa fréquence. Mais je ferais plutôt confiance au sonagramme pour voir son évolution.

Discussions similaires

  1. Recherche de pic dans un signal
    Par matt41fr dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 08/12/2011, 11h51
  2. Recherche de texte dans un blob sous oracle
    Par nesbla dans le forum Bases de données
    Réponses: 5
    Dernier message: 25/05/2004, 11h11
  3. recherche Date nulle dans une table
    Par lol_adele dans le forum Bases de données
    Réponses: 6
    Dernier message: 16/04/2004, 14h06
  4. recherche de doublons dans un fichier texte
    Par portu dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 07/10/2003, 14h13
  5. Recherche de donnee dans une table associée
    Par josoft dans le forum Requêtes
    Réponses: 2
    Dernier message: 14/07/2003, 15h22

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