Forum: Digitale Signalverarbeitung / DSP / Machine Learning Informationen über das Ausgangssignal durch Autokorrelation


von Bernhard W. (bernhardwagner)


Lesenswert?

Hallo Zusammen,

ich bin derzeit auf der Suche nach einer Lösung für mein Problem und 
komme nicht so ganz weiter. Also dachte ich mir ich versuche es mal in 
einer Community und bin auf diese hier gestoßen, ein freundliches Hallo 
an dieser Stelle.

Nun zum Thema, ich denke derzeit darüber nach, ob es eine Möglich gibt 
aus der Autkorrelationsfunktion eines Signal, Rückschlüsse auf Start und 
Endzeitpunkt des Ausgangssignals zu ziehen. Ich meine z.B.:
1
xk = [1 1 -2 -1];
2
xk_R = repmat(xk,1,4);
3
yk_G = [zeros(1,5) xk_R zeros(1,8)];
4
Korr = xcorr(yk_G);
Die Autokorrelierte die hier berechnet wird sollte ja so aufgebaut sein, 
dass am Anfang und am Ende die Nullen zu sehen sind die angefügt werden 
und im dazwischen die Signalteile. Ich würde jetzt gerne mit Hilfe der 
Informationen aus der Autokorrelierten und der Kenntniss des 
Eingangssignals
1
xk_R
 aus
1
yk_G
 automatisiert zurückgewinnen. Für neue Ideen wäre ich dankbar.

Grüße
Bernd

: Bearbeitet durch User
von Dave (Gast)


Lesenswert?

Mir ist deine Beschreibung nicht ganz klar.
Möchtest du aus yk_G xk_R zurückgewewinnen?
Oder aus yk_G und xk_R den Signalverlauf von xk?
yk_G ist ja xk_R, einfach mit 0en vorne und hinten. Sind das immer 0en 
oder kann das auch irgendwas z.B. rauschen sein?

von Bernhard W. (bernhardwagner)


Lesenswert?

Hallo Dave,

ich kenne xk_R und xk, und Messe yk_G, was ich nicht weiß wie viele 
"Nullen" (ja, kann auch ein Rauschen sein) Vorne und Hinten angehängt 
werden. Ich möchte aber exakt den Bereich aus yk_G herrausholen.

Grüße
Bernd

von Dave (Gast)


Lesenswert?

Du könntest die Kreuzkorrelation aus yk_G und xk_R bilden. Anschliessend 
das Maximum suchen. Dann musst du dir überlegen, wie der Index beim 
Maximum zustandekommt. So kannst du die Startposition von xk_R in yk_G 
ermitteln.

von Dogbert (Gast)


Lesenswert?

Ist es das?
1
plot (xcorr(yk_G.+rand(1,length(yk_G)),[xk zeros(1,length(yk_G)-length(xk))]))

Vier Maxima da wo die vier aneinandergereihten original-sequenzen 
maximal korrelieren, also vier mal die Mitte der UR-Sequenz zum Anfang 
zurückrechenbar.

von Christian B. (casandro)


Lesenswert?

Das einzige was Du daraus betreffend "Start-" und "End"zeitpunkt 
bestimmen kannst ist die Dauer, und auch die nicht generell. Grob gesagt 
ist die Signaldauer die Hälfte der "Dauer" der Autokorrelation, 
natürlich unter der Annahme, dass das Signal nicht besondere 
Eigenschaften hat, die die Autokorrelation verkürzen.

Aber für einen Sinusburst sollte das gelten, für einen Chirp aber zum 
Beispiel nicht.

Verschiebst du das Signal in der Zeit, so ändert sich an der 
Autokorellation nichts.

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.