Barker Code, Autokorrelation

Gast #1891823
Lesenswert?

hallo,

ich experimentiere gerade mit den Pollin Funkmodulen.
Um die Übertragungssicherheit zu verbessern, habe ich ganz vorbildlich 
das Forum durchforstet und bin
auf http://www.mikrocontroller.net/articles/Codierte_%C3%9Cbertragung 
gestoßen.
Ein Abgleich mit dem Autokorrelationsartikel auf Wiki hat aber 
erschütterndes zu Tage gefördert: Ich
hab glaub ich dieselbe noch nie verstanden :-o. Jedenfalls kann ich 
nicht nachvollziehen, wie
die Autokorrelationskurve (AK) 
http://en.wikipedia.org/wiki/File:Barker7corr.svg entsteht.

Ich bitte um Hilfe!

Vorweg die Frage: zur Berechnung der AK multipliziere ich eine Funktion 
mit ihrer selbst, nur verschoben,
und integriere das Ergebnis. Bei digitaler Kurve also summieren. Was 
kommt bei der um t verschobenen Kurve
rein? Nullen? (bzw -1) Also würde mich allgemein Interessieren nicht nur 
auf +1/-1 Folgen bezogen auch klassische 0/1 Folgen - im
angehängt gedachten Bereich wird die Funktion zu 0 angenommen?

Konkret so wie ich mir vor Wiki die AK des Barker codes der Länge 7 
vorgestellt hatte....


+1 +1 +1 -1 -1 +1 -1  //code


//Auffüllen???       //code           //auffüllen???
0  0  0  0  0  0  0 +1 +1 +1 -1 -1 +1 -1 0  0  0  0  0  0  0




0  0  0  0  0  0  0 +1 +1 +1 -1 -1 +1 -1 0  0  0  0  0  0  0  //t=0
-------------------------------------------------------------
0  0  0  0  0  0  0 +1 +1 +1 +1 +1 +1 +1 0  0  0  0  0  0  0  //Summe 7 
ok aber warum findet sich das bei t=7?
                                //Frage, ob summe von -t/2 bis t/2 oder 
0 bis t?



0  0  0  0  0  0  0  0 +1 +1 +1 -1 -1 +1 -1 0  0  0  0  0  0  //t=1
------------------------------------------------------------
0  0  0  0  0  0  0  0 +1 +1 -1 +1 -1 -1  0 0  0  0  0  0  0 //Summe 0


0  0  0  0  0  0  0  0 +1 +1 +1 -1 -1 +1 -1 0  0  0  0  0  0  //t=2
------------------------------------------------------------
0  0  0  0  0  0  0  0  0 +1 -1 +1 -1 -1  0 0  0  0  0  0  0  //Summe -1


0  0  0  0  0  0  0  0  0 +1 +1 +1 -1 -1 +1 -1 0  0  0  0  0  //t=3
------------------------------------------------------------
0  0  0  0  0  0  0  0  0 +1 -1 -1 -1 +1  0  0 0  0  0  0  0  //Summe 
-1, sollte aber 0 sein?


Verwirrung komplett, oder ist es klar geworden wo mein Problem ist? 
Vielleicht zeigt ihr mir mal, wie
die Autokorrelation entsteht und wieso das max bei 7 und nicht 0 ist?


habt Dank
#1892897
Lesenswert?

>>Was kommt bei der um t verschobenen Kurve rein? Nullen? (bzw -1)

Die Kurve selbst: periodisch fortsetzen.
Das wird mit +/-1 gemacht, nicht mit 1/0 .
Das von Dir zitierte Bild verstehe ich allerdings nicht: wie kann bei 
einem
Barker Code der Länge 7 das Ergebnis 0 rauskommen, eine Summe von 7 
Zahlen die entweder 1 oder -1 sind kann doch nicht 0 werden !?

Naja
Cheers
Detlef

clear
a=[1 1 1 -1 -1 1 -1 ];
b=[a a];
%a=[a zeros(1,7)];
a=[a zeros(1,7)];

for(k=1:7)
  disp(sprintf('%d ',b))
  disp(sprintf('%d ',a))
  disp(sprintf('%d ',sum(a.*b)))
  a=[a(2:end) a(1)];
end;
return

1 1 1 -1 -1 1 -1 1 1 1 -1 -1 1 -1
1 1 1 -1 -1 1 -1 0 0 0 0 0 0 0
7
1 1 1 -1 -1 1 -1 1 1 1 -1 -1 1 -1
1 1 -1 -1 1 -1 0 0 0 0 0 0 0 1
-1
1 1 1 -1 -1 1 -1 1 1 1 -1 -1 1 -1
1 -1 -1 1 -1 0 0 0 0 0 0 0 1 1
-1
1 1 1 -1 -1 1 -1 1 1 1 -1 -1 1 -1
-1 -1 1 -1 0 0 0 0 0 0 0 1 1 1
-1
1 1 1 -1 -1 1 -1 1 1 1 -1 -1 1 -1
-1 1 -1 0 0 0 0 0 0 0 1 1 1 -1
-1
1 1 1 -1 -1 1 -1 1 1 1 -1 -1 1 -1
1 -1 0 0 0 0 0 0 0 1 1 1 -1 -1
-1
1 1 1 -1 -1 1 -1 1 1 1 -1 -1 1 -1
-1 0 0 0 0 0 0 0 1 1 1 -1 -1 1
-1
Gast #1893531
Lesenswert?

hm. verstehe ich irgendwie nicht wirklich.
Also von vorne: Kurve wird zyklisch fortgesetzt, auf doppelte Länge, 
damit verschoben Gegenelemente vorhanden sind.
Die zu multiplizierende Funktion hast du aber doch mit Nullen aufgefüllt 
und dann über die ganze Länge multipliziert wie es scheint.
Ist das so weit richtig?
Dann kann doch 0 rauskommen, ich habe ja Elemente die mit Null 
multipliziert werden.
Dennoch bekommst du konstant -1 heraus wie ich die Darstellung 
verstehe...

Ich bin ich restlos verwirrt kannst du mich auf Kurs bringen, bitte? 
Brett vorm Kopf muss abgeschraubt werden
#1893855
Lesenswert?

jameson schrieb:

> Also von vorne: Kurve wird zyklisch fortgesetzt, auf doppelte Länge,
> damit verschoben Gegenelemente vorhanden sind.
jawohl

> Die zu multiplizierende Funktion hast du aber doch mit Nullen aufgefüllt
> und dann über die ganze Länge multipliziert wie es scheint.
> Ist das so weit richtig?

ja, das ist richtig. Wenn ich nicht mit Nullen auffülle, sondern auch 
die zu korrelierende Kurve zyklisch fortsetze ändert sich nichts, ausser 
daß die Ergebnisse alle verdoppelt werden, siehe angehängtes Ergebnis.

> Dann kann doch 0 rauskommen, ich habe ja Elemente die mit Null
> multipliziert werden.

Es sind immer 7 Summanden entweder 1 oder -1, da kann nie 0 rauskommen.

> Ich bin ich restlos verwirrt kannst du mich auf Kurs bringen, bitte?
> Brett vorm Kopf muss abgeschraubt werden

Kein Grund zur Verzweifelung, einfach mal reichlich Karopapier, 
Bleistift, Spitzer und Radiergummi zur Hand nehmen, das lichtet den 
Nebel dann schon.


Cheers
Detlef

clear
a=[1 1 1 -1 -1 1 -1 ];
b=[a a];
%a=[a zeros(1,7)];
a=[a a];

for(k=1:7)
  disp(sprintf('%d ',b))
  disp(sprintf('%d ',a))
  disp(sprintf('%d ',sum(a.*b)))
  a=[a(2:end) a(1)];
end;
return

1 1 1 -1 -1 1 -1 1 1 1 -1 -1 1 -1
1 1 1 -1 -1 1 -1 1 1 1 -1 -1 1 -1
14
1 1 1 -1 -1 1 -1 1 1 1 -1 -1 1 -1
1 1 -1 -1 1 -1 1 1 1 -1 -1 1 -1 1
-2
1 1 1 -1 -1 1 -1 1 1 1 -1 -1 1 -1
1 -1 -1 1 -1 1 1 1 -1 -1 1 -1 1 1
-2
1 1 1 -1 -1 1 -1 1 1 1 -1 -1 1 -1
-1 -1 1 -1 1 1 1 -1 -1 1 -1 1 1 1
-2
1 1 1 -1 -1 1 -1 1 1 1 -1 -1 1 -1
-1 1 -1 1 1 1 -1 -1 1 -1 1 1 1 -1
-2
1 1 1 -1 -1 1 -1 1 1 1 -1 -1 1 -1
1 -1 1 1 1 -1 -1 1 -1 1 1 1 -1 -1
-2
1 1 1 -1 -1 1 -1 1 1 1 -1 -1 1 -1
-1 1 1 1 -1 -1 1 -1 1 1 1 -1 -1 1
-2
Gast #1894075
Lesenswert?

Danke dir wird erledigt der Paperkram, vielleicht mal am WE in Ruhe. 
Aber der Link am Anfang von mir - der lässt schlimmes befürchten bezgl 
Wiki? Die Autokorrelationsfunktion sollte ja dann schlicht verkehrt 
sein. :-o

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren