Forum: Digitale Signalverarbeitung / DSP / Machine Learning DoA: Bestimmung des Eintrittswinkels mittels Phasenverschiebung


von Dominic (Gast)


Lesenswert?

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

von Weltbeser FPGA-Pongo (Gast)


Lesenswert?

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

von Thomas (Gast)


Lesenswert?

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.

von Detlef _. (detlef_a)


Lesenswert?

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

von Dominic (Gast)


Lesenswert?

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?

von Detlef _. (detlef_a)


Lesenswert?

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

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.