mikrocontroller.net

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


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Dominic (Gast)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.