DoA: Bestimmung des Eintrittswinkels mittels Phasenverschiebung

Gast #6122616
Hallo zusammen,
es geht darum ein Gedankenexperiment in die Realität umzusetzen. Konkret 
möchte ich anhand der Phasenverschiebung den relativen Winkel zu zwei 
Antennen berechnen.

Ich habe mich (grob) über den MUSIC-Algorithmus informiert. Viele (auch 
NI) geben als Bedingung dafür ein Antennenarray mit 4 Antennen vor. Die 
Begründung dafür ist mir jedoch nicht ganz einleuchtend. Mittels der 
Phasenverschiebung zweier kohärent gesampelten Signale und des bekannten 
Abstandes beider Antennen sollte sich doch der relative Winkel berechnen 
lassen?

Ist diese Überlegung so richtig?

Falls ja, stehe ich vor dem Problem: Wie errechne ich die 
Phasenverschiebung zweier Signale möglichst effizient? Die Möglichkeit, 
die mir einfällt, ist die Kreuzkorrelation mittels eines variablen 
Parameters zu maximieren. Das würde allerdings viele Berechnung 
benötigen. Gibt es eine alternative (besser) Vorgehensweise oder ist 
dies schon die richtige Richtung?

Vielen Dank
Gast #6122769
Dominic schrieb:
> ist die Kreuzkorrelation mittels eines variablen
> Parameters zu maximieren. Das würde allerdings viele Berechnung
> benötigen.

??? Warum berechnest du sie nicht direkt? IQ+Hilbert.

> 4 Antennen
Ich nehme an ein Quad, um hinten und vorne zu unterscheiden. Geht aber 
auch mit 3en
Gast #6122780
Die Frage ist, wie groß ist die Bandbreite deines Signals?
IR?
Natürlich reichen dann theoretisch zwei Antennen.
Du kannst auch einfach die zwei Signale kreuzkorrelieren, denke ich 
zumindest.
#6123505
Dominic schrieb:
> Hallo zusammen,
> es geht darum ein Gedankenexperiment in die Realität umzusetzen. Konkret
> möchte ich anhand der Phasenverschiebung den relativen Winkel zu zwei
> Antennen berechnen.

Die Phasenverschiebung entspricht einer Zeitdifferenz.
Das ist dann https://en.wikipedia.org/wiki/Hyperbolic_navigation , LORAN 
https://en.wikipedia.org/wiki/Loran-C machte das z.B. so.
Die Zeitdifferenz zweier Sender macht Dir eine Standlinie, z.B. ist die 
Mittelsenkrechte auf der Verbindungslinie der beiden Sender die 
Standlinie für die Zeitverschiebung 0. Allgemein sind das Hyperbeln, 
daher der Name. Mit drei Sendern schneiden sich zwei Hyperbeln an zwei 
Orten, braucht man Eindeutigkeit kommt ein vierter Sender hinzu.

Wenn Du bestimmen kannst, was die Sender senden sollen, geht das 
cleverer  nach diesem Prinzip 
https://de.wikipedia.org/wiki/Drehfunkfeuer

> Falls ja, stehe ich vor dem Problem: Wie errechne ich die
> Phasenverschiebung zweier Signale möglichst effizient? Die Möglichkeit,
> die mir einfällt, ist die Kreuzkorrelation mittels eines variablen
> Parameters zu maximieren. Das würde allerdings viele Berechnung
> benötigen. Gibt es eine alternative (besser) Vorgehensweise oder ist
> dies schon die richtige Richtung?
>
> Vielen Dank

Kreuzkorrelation beschränkt die Auflösung auf den Sampletakt. Besser ist 
Du bestimmst die Phase indem Du das Signal mit einem komplexen Träger 
auf DC runtermischt und direkt Amplitude und Phase ablesen kannst. 
Dieses Vorgehen läuft auch manchmal unter Stichwort 'Goertzel'.

Mth rulez!
Cheers
Detlef
Gast #6124073
Vielen Dank für eure Antworten. Ich bin nicht so erfahren im Thema und 
schätze eure Hilfe sehr!

Weltbeser FPGA-Pongo schrieb im Beitrag #6122769:
> ??? Warum berechnest du sie nicht direkt? IQ+Hilbert.

Das ist eine berechtigte Frage und das sollte ich auch so machen.

Weltbeser FPGA-Pongo schrieb im Beitrag #6122769:
> Ich nehme an ein Quad, um hinten und vorne zu unterscheiden. Geht aber
> auch mit 3en

In einer zweidimensionalen Anordnung ja, aber NI ordnen ihre 4 Antennen 
auf einfach nur nebeneinander 
an.(https://kb.ettus.com/Direction_Finding_with_the_USRP%E2%84%A2_X-Series_and_TwinRX%E2%84%A2)

Thomas schrieb:
> Die Frage ist, wie groß ist die Bandbreite deines Signals?

Es geht prinzipiell erstmal nur um die Möglichkeit allgemein. Allgemien 
wären später 20MHz ganz nett, aber testen würde ich es wahrscheinlich 
erstmal nur mit einem Träger.

Detlef _. schrieb:
> Das ist dann https://en.wikipedia.org/wiki/Hyperbolic_navigation , LORAN
> https://en.wikipedia.org/wiki/Loran-C machte das z.B. so.

Ich wollte zur lokalisierung zwei empfangene Winkel zwei örtlich 
versetzter Empfänger nutzen und das ganz später im Frontend 
zusammenrechnen.

Detlef _. schrieb:
> Kreuzkorrelation beschränkt die Auflösung auf den Sampletakt. Besser ist
> Du bestimmst die Phase indem Du das Signal mit einem komplexen Träger
> auf DC runtermischt und direkt Amplitude und Phase ablesen kannst.

Ist mit DC das Basisband gemeint? Ich habe mit den Goertzel angeschaut 
(kannte ich nicht). Der Goertzel verwendet doch nur eine Frequenz (eine 
Spektrllinie) im Spektrum. Ist das richtig? Ich aber habe ein beliebig 
geartetes Signal s1 und ein zeitlich verschobenes und ungefähr 
gleichgeartetes Signal s2=s1(t+dt)+e(t) mir e(t)=Fehler. dt möchte ich 
berechnen. Ist da mein Gedanke richtig?
#6125798
Dominic schrieb:
> Detlef _. schrieb:
>> Kreuzkorrelation beschränkt die Auflösung auf den Sampletakt. Besser ist
>> Du bestimmst die Phase indem Du das Signal mit einem komplexen Träger
>> auf DC runtermischt und direkt Amplitude und Phase ablesen kannst.
>
> Ist mit DC das Basisband gemeint? Ich habe mit den Goertzel angeschaut
> (kannte ich nicht). Der Goertzel verwendet doch nur eine Frequenz (eine
> Spektrllinie) im Spektrum. Ist das richtig? Ich aber habe ein beliebig
> geartetes Signal s1 und ein zeitlich verschobenes und ungefähr
> gleichgeartetes Signal s2=s1(t+dt)+e(t) mir e(t)=Fehler. dt möchte ich
> berechnen. Ist da mein Gedanke richtig?

Achso. Dachte das wäre ein reiner Sinus. Dann machst Du das so: Du 
berechnest FFT(s(1))/FFT(s(2)), also den Quotienten der beiden FFTs. Die 
Phase des Quotienten ist bei zeitlich verschobenen Signalen linear. Das 
geht mit viel größerer Auflösung als die durch den Abtasttakt 
vorgegebene. Die Genauigkeit kann man sehr hoch machen indem man die 
lineare Phase mit einer linearen Regression fittet.

Cheers
Detlef

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 6 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.