Forum: PC-Programmierung 2 Signale vergleichen


von Fabian (Gast)


Lesenswert?

ich muss zwei Signale vergleichen um festzustellen dass sie gleich sind. 
Das versuche ich unter Canape durchzuführen.

was ich mir überlegt habe, dass ich die zwei Signale von einander 
subtrahiere? Im Canape gibt's dafür eine fertige Funktion. das Problem 
ist, ich kriege als Ergebnis kein sauberes Signal, da die zwei Signale 
manchmal zeitverschoben sind oder manchmal gibt Abweichungen(kleine 
Abweichungen sind nicht relevant) im Amplituden . Ich wollte als 
Ergebnis einfach ein Peak bekomment wo die Signale größe Unterschied 
haben
Deswegen wollte ich eine neue Funktion schreiben, die diesen Vergleich 
durchführen kann. kann man das Problem auch mit der Autokorrolation 
lösen?
oder hat jemand hier eine andere Idee?
Die Signale die ich untersuchen muss, können periodische Signale oder 
nicht periodische Signale sein

Gruß Fabian

von STK500-Besitzer (Gast)


Lesenswert?

guck mal nach "Korrelation"

von Timmo H. (masterfx)


Lesenswert?

bzw. Kreuzkorrelation
beide Signale werden zu jeder "Zeitverschiebung" miteinander 
multipliziert und dann integriert. Dort wo das Ergebnis am größten ist, 
sind die Signale am ähnlichsten bzw. gleich.
Hat den Vorteil dass du nicht von der Amplitude des zweiten Signals 
abhängig bist. So kann man z.B. auch noch das Echo eines Signals quasi 
aus dem Rauschen detektieren.

von Fabian (Gast)


Lesenswert?

Timmo H. schrieb:
> bzw. Kreuzkorrelation
> beide Signale werden zu jeder "Zeitverschiebung" miteinander
> multipliziert und dann integriert. Dort wo das Ergebnis am größten ist,
> sind die Signale am ähnlichsten bzw. gleich.

ich wollte eigentlich ein Peak bekommen, da wo die Signale net gleich 
sind(unterschiedliche Amplituden, zeitverschiebung) kleine Abweichungen 
sollen dann rausgefiltert werden
und so kann man schnell an der Stelle wo die beide Signale 
unterschiedlich sind untersuchen wo es dran lag

von Timmo H. (masterfx)


Lesenswert?

Naja umgedreht bekommst du natürlich einen kleinen Wert wo die Signale 
am wenigsten Deckungsgleich sind.

von Fabian (Gast)


Lesenswert?

Timmo H. schrieb:
> Naja umgedreht bekommst du natürlich einen kleinen Wert wo die Signale
> am wenigsten Deckungsgleich sind.

ja so werde ich ganz viel Peaks bekommen. Ich will den Bereich 
untersuchen, wo die Signale unterschiedlich sind

von g. b. (gunb)


Lesenswert?

Fabian schrieb:
> Timmo H. schrieb:
>> Naja umgedreht bekommst du natürlich einen kleinen Wert wo die Signale
>> am wenigsten Deckungsgleich sind.
>
> ja so werde ich ganz viel Peaks bekommen. Ich will den Bereich
> untersuchen, wo die Signale unterschiedlich sind

Hä?

Kannst du nicht mal irgendwie Signalbeispiele anhängen, damit man 
versteht, was du willst?

Du schreibst ganz oben, dass du Signale auf Gleichheit überpüfen willst, 
dann wieder, dass du die ungleichen Stellen untersuchen willst. Was 
willst du eigentlich mit den ungleichen Stellen machen?

von Fabian (Gast)


Lesenswert?

Gun B. schrieb:
> Was
> willst du eigentlich mit den ungleichen Stellen machen?

die will ich ja untersuchen, warum sie unterschiedlich ist. Die Signale 
werden im Canape dargestellt.
Damit ich mir die Arbeit sparen kann, wollte ich eine neue Funktion 
schreiben die mir eine Signal zurück gibt. Das Ergebniss Signal zeigt 
mir dann wo die zwei Signale unterschiedlich sind

von Karl H. (kbuchegg)


Lesenswert?

Fabian schrieb:

> ich wollte eigentlich ein Peak bekommen, da wo die Signale net gleich
> sind(unterschiedliche Amplituden, zeitverschiebung) kleine Abweichungen
> sollen dann rausgefiltert werden
> und so kann man schnell an der Stelle wo die beide Signale
> unterschiedlich sind untersuchen wo es dran lag

Wenn ich deine Aufgabe jetzt richtig verstehe, dann musst du aber immer 
noch die Phasenverschiebung suchen, bei der die beiden Signale am 
ähnlichsten sind -> Kreuzkorrelation.
Die Kreuzkorrelation sagt dir, wie du die Signale deckungsgleich 
bekommst, wenn man nicht zu genau hinschaut. Und das, was dann noch an 
Unterschieden bleibt, das ist das was dich interessiert.

von g. b. (gunb)


Angehängte Dateien:

Lesenswert?

@Fabian:

Siehe Beispiel im Anhang.

Dort, wo beide Signale am ähnlichsten sind, ist ein Maximum, dort wo sie 
sich weniger oder gar nicht ähnlich sind, folgen minimale Werte. Davon 
gibt es nicht "einen" Wert, sondern eine ganze Folge, ist ja auch 
logisch.

Du musst die Kreuzkorrelation verstehen lernen, dann nach der Lösung 
deines Problems suchen.

Canape? Von Vector? Bei mir 9 Jahre her. Meinst du aber, oder?

von Fabian (Gast)


Lesenswert?

Gun B. schrieb:
> Canape? Von Vector? Bei mir 9 Jahre her. Meinst du aber, oder?


ja Canape von Vector, da wollte ich eine neue Funktion schreiben, die 
mir auswerten kann wo die zwei Signale unterschiedlich sind

von g. b. (gunb)


Lesenswert?

Fabian schrieb:
> Gun B. schrieb:
>> Canape? Von Vector? Bei mir 9 Jahre her. Meinst du aber, oder?
>
>
> ja Canape von Vector, da wollte ich eine neue Funktion schreiben, die
> mir auswerten kann wo die zwei Signale unterschiedlich sind

OK,

ist wie gesagt lange her, kann mich an CAPL als spezifische 
Programmiersprache erinnern.

Zum Vergleich zweier Signale bietet sich im Zeitbereich auf jeden Fall 
die Korrelation an und sollte auch in CAPL leicht zu implementieren 
sein.
Die ungleichen Stellen siehst du ja im Ergebnis in obigem Beispiel an 
den Stellen, wo die Samples null sind.

Falls du es noch gebrauchen kannst:

Das Ergebnis (3.Samplediagramm) erhälst du anschaulich nach der 
Papierstreifenmethode: du stellst dir das 2.te Samplediagramm über das 
erste verschoben vor:

Samples mit gleichem Index jeweils multiplizieren, dann alle Produkte 
summieren, dann verschieben und das ganze von vorne, bis der Streifen 
"hinten angekommen" ist.
So ergibt sich das 3.Bild als Ergebnis.

Alle Stellen gleich Null sind Stellen maximaler Ungleichheit.


So, muss nu weitermachen.

Gruß
Gunb

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.