mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Analogen Signalverlauf mit Muster vergleichen


Autor: Thomas (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: 2921 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.