Hallo, ich würde gerne einen mit einem µC gemessenen Signalverlauf mit einem gespeicherten Signalmuster vergleichen um bei entsprechender Übereinstimmung einen Vorgang auszulösen. Jetzt kenne ich mich in Signalverarbeitung kaum aus. In der Wikipedia habe ich zwar schon einiges über Korrelation etc. gelesen, aber vielleicht hat hier jemand mal ein paar genauere Stichwörter/Links zu Verfahren mit dem mein Problem zu lösen wäre. Im Anhang mal ein paar Kurvenverläufe wie das Signal in etwa aussieht. Lassen sich solche Verfahren auf einem kleinen AVR überhaupt umsetzen? Ich würde bei den Signalen ca. 100 Messwerte (ein Messwert in 0,5s) in einen Ringpuffer einlesen. Über diesen Puffer sollte dann die Funktion laufen und mit einem hinterlegten Signalverlauf vergleichen und die Übereinstimmung z.b. als Ergebnis in Prozent zurückgeben. Wenn dann wirds also eher mit dem RAM-Speicher knapp... Grüße Thomas
Korrelation ist das Stichwort. Du multiplizierst einfach deinen Ringpuffer elementweise mit dem Referenzsignal, und addierst die Produkte auf. Je größer das Ergebnis, desto besser die Übereinstimmung (oder desto stärker ist das Signal, also ggf. vorher normieren). Das sind 2*100 Multiplikationen pro Sekunde, für den AVR kein Problem.
Das hört sich vom Prinzip her ja recht einfach an. Allerdings kommt es mir bei meinem Signal mehr auf die an- und absteigenden Flanken an. Die Länge des Hochs in der Mitte kann in einem gewissen Bereich auch mal schwanken. Bei einem einfachen Produkt hätte ich dann eine relativ geringe Übereinstimmung, auch wenn der Signalverlauf ähnlich ist. Evtl. könnte ich ja dann das Signal in 3 Teile zerlegen und dann 3 Korrelationen drüberlaufen lassen.
>Jetzt kenne ich mich in Signalverarbeitung kaum aus.
Das ist wirklich etwas wenig fuer so ein Problem. Korrelation ist zwar
das Schulbeispiel, genuegt aber moeglicherweise nicht. Moeglichwerweise
ist die Steilheit einer Flanke wichtiger als eine 90% Korrelation.
Ohne zu wissen wie das Signal konkret aussieht kann man nur raten. Nimm dir mal ein paar Beispiele für unerwünschte und erwünschte Signale, stelle sie gegenüber, und überlege dir möglichst einfache Merkmale an denen man sie unterscheiden kann. Da sind der Phantasie keine Grenzen gesetzt: die Länge die das Signal > 0.5 ist, der Abstand zwischen steigender Flanke und Schwerpunkt, das Verhältnis vom Mittelwert des quadrierten Signals zum normalen Mittelwert, usw.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.