Comment détecter les changements «rapides» dans le traitement du signal

12

Je travaille sur un projet où nous mesurons la soudabilité des composants. Le signal mesuré est bruyant. Nous devons traiter le signal en temps réel afin de pouvoir reconnaître le changement qui commence au moment de 5000 millisecondes.

Mon système prend un échantillon de valeur réelle toutes les 10 millisecondes - mais il peut être ajusté pour un échantillonnage plus lent.

  1. Comment détecter cette baisse à 5000 millisecondes?
  2. Que pensez-vous du rapport signal / bruit? Faut-il se concentrer et essayer d'obtenir un meilleur signal?
  3. Il y a un problème que chaque mesure a des résultats différents, et parfois la baisse est encore plus petite que cet exemple.

Exemple de signal Exemple de signal 2 Exemple de signal 3

Lien vers les fichiers de données (ils ne sont pas identiques à ceux utilisés pour les tracés, mais ils affichent le dernier état du système)

  1. https://docs.google.com/open?id=0B3wRYK5WB4afV0NEMlZNRHJzVkk
  2. https://docs.google.com/open?id=0B3wRYK5WB4afZ3lIVzhubl9iV0E
  3. https://docs.google.com/open?id=0B3wRYK5WB4afUktnMmxfNHJsQmc
  4. https://docs.google.com/open?id=0B3wRYK5WB4afRmxVYjItQ09PbE0
  5. https://docs.google.com/open?id=0B3wRYK5WB4afU3RhYUxBQzNzVDQ
Petr
la source
5
Vous semblez avoir un rapport signal / bruit relativement faible. Comme pour la plupart des problèmes de détection, vous voudrez considérer l'équilibre entre la probabilité de détecter correctement la caractéristique que vous avez indiquée et la probabilité de déclarer faussement que celle-ci existe. Qu'est-ce qui est le plus important pour votre application? Avez-vous des exigences de latence de détection?
Jason R
2
Le «bruit» ressemble plus à une interférence à une fréquence particulière. Si tel est le cas (un tracé du spectre vous aidera), un filtrage approprié fera la plupart du travail.
Juancho
En fait, la détection de cette fonctionnalité est très importante. Mais je peux vivre avec une certaine latence, mais je dois ajuster la position d'arrêt final, car je ne sais pas exactement où la pièce touche la soudure, et je dois contrôler la profondeur d'immersion. Ainsi, par exemple, si je sais que l'immersion doit être de 0,5 mm, je calcule la position théorique en fonction de la taille idéale du globule de soudure, mais je dois ensuite faire la correction de la taille réelle d'un globule que je détecte au toucher - cela apparaît comme un changement en vigueur.
Petr
L'ensemble de l'outil de mesure est situé sur des ressorts, de sorte qu'il peut se déplacer librement, mais il produit également du bruit et nous avons également des ressorts fixes pour toute la gamme de mesures, et bien sûr, ces problèmes apparaissent lors de l'utilisation de la sensibilité la plus élevée, où les forces mesurées sont terriblement petit.
Petr
Juancho - peut-être que cela pourrait aider, mais comment puis-je le résoudre pour différentes masses de pièces, entraînant des fréquences différentes? De plus, ce composant change lorsque la pièce est immergée dans la soudure, car le processus de mouillage réduit le niveau de bruit, mais cela ne se produit que pour les pièces plus grandes, ici, il est presque le même lorsqu'il est entré ou sorti.
Petr

Réponses:

4

J'encadre généralement ce problème comme un problème de détection de pente. Si vous calculez une régression linéaire sur une fenêtre en mouvement, la goutte illustrée sera visible comme un changement significatif du signe et / ou de l'amplitude de la pente. Cette approche offre un certain nombre de facteurs qui nécessiteront un "réglage": par exemple, la fréquence d'échantillonnage, la taille de la fenêtre, etc., affecteront la robustesse (résistance au bruit) du détecteur de signe de pente. C'est là que certains des commentaires ci-dessus peuvent être appliqués. Tout filtrage ou suppression de bruit pouvant être appliqué avant l'ajustement de ligne améliorera vos résultats.

Throwback1986
la source
2

J'ai fait ce genre de chose en calculant une statistique T de la moyenne de la partie gauche des données par rapport à la partie droite des données. Cela suppose que vous savez où se trouve le point de transition, ce qui bien sûr n'est pas le cas.

Donc, ce que vous faites est d'essayer plusieurs centaines de points de partition le long de l'axe du temps et de trouver celui avec la statistique T la plus significative.

u_left, u_right : mean of left and right portion
s_left, s_right : SD of left and right portion
n_left, n_right : number of samples on left and right (subtract one from each for the one degree of freedom)

se = sqrt(s_left^2 / n_left^2 + s_right^2 / n_right^2)
T = (u_left - u_right) / se

Vous pouvez le faire comme quelque chose comme une recherche binaire. Essayez 10 points de données, trouvez les deux plus grands, puis essayez 10 points entre ceux-ci, etc. De cette façon, vous pourriez obtenir un point de transition assez précis. Je ne revendique pas l'exactitude. :-)

Tiens nous au courant de comment ça se passe!

PS Vous pouvez calculer la moyenne et le sd comme des sommes en cours d'exécution, ce qui réduit la complexité du calcul de cette fonction de partition pour chaque possibilité de N ^ 2 à N. En faisant cela, vous pouvez probablement vous permettre de calculer simplement la statistique T à chaque point de partition possible.

MattD
la source