So erkennen Sie „schnelle“ Änderungen in der Signalverarbeitung

12

Ich arbeite an einem Projekt, in dem wir die Lötbarkeit von Bauteilen messen. Das gemessene Signal ist verrauscht. Wir müssen das Signal in Echtzeit verarbeiten, damit wir die Änderung erkennen können, die zum Zeitpunkt von 5000 Millisekunden beginnt.

Mein System entnimmt alle 10 Millisekunden eine Probe des realen Werts - kann jedoch auf eine langsamere Probe eingestellt werden.

  1. Wie kann ich diesen Abfall bei 5000 Millisekunden erkennen?
  2. Was denkst du über das Signal / Rausch-Verhältnis? Sollten wir uns konzentrieren und versuchen, ein besseres Signal zu erhalten?
  3. Es besteht das Problem, dass jede Kennzahl unterschiedliche Ergebnisse hat und der Abfall manchmal sogar kleiner als in diesem Beispiel ist.

Sample Signal Probensignal 2 Probensignal 3

Verknüpfung zu Datendateien (sie sind nicht mit denen identisch, die für Diagramme verwendet werden, zeigen jedoch den neuesten Systemstatus an)

  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
quelle
5
Sie scheinen ein relativ geringes Signal-Rausch-Verhältnis zu haben. Wie bei den meisten Erkennungsproblemen sollten Sie das Gleichgewicht zwischen der Wahrscheinlichkeit der korrekten Erkennung der von Ihnen angegebenen Funktion und der Wahrscheinlichkeit der fälschlichen Erklärung, dass eine Funktion vorhanden ist, berücksichtigen. Was ist für Ihre Bewerbung wichtiger? Haben Sie Anforderungen an die Erkennungslatenz?
Jason R
2
Das "Rauschen" sieht eher wie eine Störung bei einer bestimmten Frequenz aus. Wenn dies der Fall ist (eine Spektraldarstellung hilft), erledigt eine geeignete Filterung den größten Teil der Arbeit.
Juancho
Tatsächlich ist die Erkennung dieses Merkmals sehr wichtig. Aber ich kann mit einer gewissen Latenz leben, aber ich muss die Endanschlagsposition anpassen, da ich nicht genau weiß, wo das Teil das Lot berührt, und ich muss die Eintauchtiefe steuern. Wenn ich zum Beispiel weiß, dass das Eintauchen 0,5 mm betragen sollte, berechne ich die theoretische Position entsprechend der idealen Größe der Lötkugel, aber dann muss ich die Korrektur für die tatsächliche Größe einer Kugel durchführen, die ich durch Berühren erkenne - sie erscheint als Änderung der Kraft.
Petr
Das gesamte Messwerkzeug befindet sich auf Federn, so dass es sich frei bewegen kann, aber es erzeugt auch Geräusche und wir haben feste Federn für den gesamten Messbereich, und natürlich treten diese Probleme auf, wenn die höchste Empfindlichkeit verwendet wird, bei der die gemessenen Kräfte fürchterlich sind klein.
Petr
Juancho - vielleicht könnte das helfen, aber wie kann ich es für verschiedene Teile lösen, was zu unterschiedlichen Frequenzen führt? Auch diese Komponente ändert sich, wenn das Teil in Lötmittel getaucht wird, da der Benetzungsprozess den Geräuschpegel verringert. Dies geschieht jedoch nur für größere Teile, hier ist es fast gleich, wenn sie ein- oder ausgehen.
Petr

Antworten:

4

Normalerweise rahme ich dieses Problem als eine der Neigungserkennung. Wenn Sie eine lineare Regression über einem sich bewegenden Fenster berechnen, wird der dargestellte Abfall als signifikante Änderung des Steigungszeichens und / oder der Größe sichtbar. Dieser Ansatz bietet eine Reihe von Faktoren, die eine "Abstimmung" erfordern: Beispielsweise beeinflussen die Abtastfrequenz, die Fenstergröße usw. die Robustheit (Rauschbeständigkeit) des Neigungszeichendetektors. Hier können einige der obigen Kommentare angewendet werden. Jegliche Filterung oder Rauschunterdrückung, die vor dem Anpassen der Leitung angewendet werden kann, verbessert Ihre Ergebnisse.

Throwback1986
quelle
2

Ich habe so etwas getan, indem ich eine T-Statistik des Mittelwerts des linken Teils der Daten gegen den rechten Teil der Daten berechnet habe. Dies setzt voraus, dass Sie wissen, wo sich der Übergangspunkt befindet, was Sie natürlich nicht tun.

Versuchen Sie es also mit mehreren hundert Partitionspunkten entlang der Zeitachse und finden Sie den mit der signifikantesten T-Statistik.

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

Sie können dies als eine Art binäre Suche ausführen. Versuchen Sie es mit 10 Datenpunkten, finden Sie die zwei größten und versuchen Sie es dann mit 10 Punkten dazwischen usw. Auf diese Weise können Sie einen ziemlich präzisen Übergangspunkt erhalten. Ich beanspruche keine Genauigkeit. :-)

Lass uns wissen, wie es geht!

PS Sie können mean und sd als laufende Summen berechnen, was die Komplexität der Berechnung dieser Partitionsfunktion für jede einzelne Möglichkeit von N ^ 2 auf N verringert. Wenn Sie dies tun, können Sie es sich wahrscheinlich leisten, nur die T-Statistik an jedem möglichen Partitionspunkt zu berechnen.

MattD
quelle