Forum: Mikrocontroller und Digitale Elektronik Analogen Signalverlauf mit Muster vergleichen


von Thomas (Gast)


Angehängte Dateien:

Lesenswert?

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

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

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.

von Thomas (Gast)


Lesenswert?

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.

von 2921 (Gast)


Lesenswert?

>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.

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

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
Noch kein Account? Hier anmelden.