Wie kann bestimmt werden, wo zur Demodulation von BPSK-Signalen abgetastet werden soll?

8

Ich habe einen einfachen BPSK-Demodulator. Ganz einfach, das Signal kommt herein und wird in zwei Zweige aufgeteilt, einen für I und einen für Q.

  1. Der I-Zweig wird mit einer Sinuswelle des Trägers gemischt, und der Q-Zweig wird mit der Kosinuswelle des Trägers gemischt.
  2. Dann wird jeder der Ausgänge mit einem angepassten Filter gefaltet (in diesem Fall einem Root-Raised-Cosine, der meine übertragenen Bits anfänglich pulsförmig formte).
  3. Wenn ich nun beide Ausgänge kombiniere und die Größe beider (I ^ 2 + Q ^ 2) nehme, erhalte ich die Hüllkurve.
  4. Von hier aus suche ich nach Spitzen und wähle deren Angaben.
  5. Ich verwende dann dieselben Angaben, die ich aus (4) erhalten habe, und probiere mein I und Q an denselben Angaben aus. Jetzt habe ich komplexe Softbit-Werte und kann alle Phasen- oder Frequenzversätze korrigieren und von dort aus schwierige Entscheidungen treffen. (Ich habe übrigens den Luxus der Nachbearbeitung).

Diese Technik funktionierte gut mit hohem bis mittlerem SNR. Das Problem ist, dass ich mit einem niedrigeren SNR (und möglicherweise einem Mehrweg) nicht weiß, wie man eine Kugel ausführt (4). Das Problem ist, dass ich anstelle eines Peaks in den Hüllkurven, der einem Bit entspricht, jetzt mehrere Peaks habe und "Peak Picking" nicht funktioniert, weil so viele zur Auswahl stehen ... wie wird dieses Problem gemildert? Dies scheint ein Engpass zu sein, denn wenn ich nicht sagen kann, wo mein "Bit" ist, kann ich nicht vorwärts gehen. Irgendwelche Gedanken?

Jede Hilfe wird geschätzt, Mathe ist gut, obwohl ich die Antworten im Voraus eher auf Pesudo-Code / Konzept ausrichten würde. Vielen Dank!

Bearbeiten: Dank des Feedbacks von Dilip sollte ich auch hinzufügen, dass ich "Energie" in der Hüllkurve deutlich sehen kann, wenn ein Signal vorhanden ist und kein Signal vorhanden ist. (dh bevor mein Signal eintraf), so dass ich glaube, dass ich in der Lage sein sollte zu synchronisieren / zu demodieren und dass es sich nicht nur um ein SNR-Problem handelt ...

Spacey
quelle
@ DilipSarwate Ja, in diesem Fall kenne ich meine Tbps genau. (Also ja, der Empfänger kennt den genauen Abstand zwischen meinen Bits) - aber wie erreicht man diesen ersten Bitindex? ... Übrigens, ich bin mir nicht sicher, was er wert ist, aber ich kann deutlich "Energie" in der Hüllkurve sehen, wenn es eine gibt ein Signal und es gibt kein Signal - und dies lässt mich glauben, dass mein SNR nicht so schlecht ist, dass ich nicht in der Lage sein sollte, zu synchronisieren / zu demodieren ... (Danke für die Tag-Informationen, die ich versuchen werde, weitere hinzuzufügen).
Spacey
@DilipSarwate Hmm ... Ich stimme Ihnen in dieser Technik zu - was mir nicht klar ist, ist, wo / wie ich mein Ein-Bit-Wert-Fenster so anpasse, dass ich dann die Technik ausführen kann, über die Sie sprechen. Sehen Sie mein Problem? Nur um sicherzugehen, dass ich Sie richtig verstehe: Nehmen wir an, der Umschlag enthält 10 Samples / Bit. Ok, sagen Sie also, nehmen Sie den gesamten Umschlag, teilen Sie ihn in 10 Probenstücke auf und mitteln Sie alle zusammen, um herauszufinden, wo der Peak sein sollte?
Spacey
Die Synchronisation kann ein sehr komplexes Thema sein. Könnten Sie die Werte des SNR, mit denen Sie testen, mit einer Zahl versehen? Was ist "hoch", "mittel" und "niedrig"?
Jason R
@ DilipSarwate Ok, wir sagen dasselbe. Ich verstehe jetzt, dass wir bei all dieser Mittelung darauf wetten, dass wir den optimalen Stichprobenindex erreichen können, weil er aus dem Rauschen gemittelt wird. Aber können wir uns bei Multipath darauf verlassen, dass eine solche Mittelung funktioniert? Wäre nicht der optimale Spitzenwert im Laufe der Zeit? Ich nehme an, deshalb müssten Sie diese Technik immer wieder
Spacey
@JasonR Ich kann Ihnen derzeit keine genauen SNR-Zahlen liefern, aber ich kann versuchen, sie bald zu erhalten. (Selbst dann, da ich keine Bit-Sperre durchführen kann, möchten Sie irgendwie ein Maß basierend auf der Hüllkurve? ...) Im Moment kann ich qualitativ sagen, dass ich in meinem Fall mit hohem SNR deutlich einen Peak pro Bitintervall sehen kann in meinen Hüllkurven eindeutig, aber in meinen anderen Fällen mit niedrigerem SNR (und möglicherweise mit Mehrweg) kann ich sehen, dass die Hüllkurve während einer Bitdauer viele Spitzen aufweist. (Davon abgesehen kann ich klar unterscheiden, wann mein Signal auf die Hüllkurve schaut).
Spacey

Antworten:

7

Ich habe in MATLAB etwas Ähnliches gemacht. In meiner Sache habe ich eine Early / Late Gate- Taktwiederherstellungsmethode verwendet, um eine Schätzung des Versatzes zwischen Sende- und Empfangssymbol-Timing zu erhalten. Diese Methode verwendet 3 Samples pro Symbol - eines zum optimalen Sample-Zeitpunkt, eines mit 1 Sample verzögert und eines mit einem Sample Advanced. Dies funktioniert gut für Ein / Aus-Tastensignale, da es keinen negativen Teil des Signals gibt, aber die folgenden Methoden funktionieren meiner Meinung nach besser für bipolare Signale.

en=(yn^yn- -1)- -(yny^n- -1)enyn- -1ynyn^y^n- -1sind die Entscheidungsergebnisse (-1 oder +1 in Ihrem Fall). M & M erfordert, dass der Spediteur zuerst wiederhergestellt wird.

en=(yn- -yn- -T.)yn- -T./.2yn- -T.yn- -T./.2

Der M & M-Detektor betrachtet die Peaks , während die Gardner- Methode den Peak und den Nulldurchgang betrachtet , um Zeitschätzungen zu erhalten.

In allen Fällen nehmen Sie die Fehlerschätzung in einen Schleifenfilter, dessen Ausgabe dann verwendet wird, um die Symboluhr für die nächste Zeitschätzung vor- oder zurückzuschieben . Der Schleifenfilter kann entweder als Tiefpassfilter, als Glättungsfilter oder einfach als Gewichtung älterer Schätzungen betrachtet werden, die weniger als neuere sind. Das Schleifenfilter steuert a) wie schnell das Timing konvergiert und b) wie viel Rauschen die Schätzungen beeinflusst.

Eine andere Möglichkeit besteht darin, einen Equalizer zu verwenden, der dann die Zeitverzögerung aus dem Signal entfernt. Dies kann auch bei sehr verrauschten Signalen helfen, glaube ich.

Ich habe diese Ressourcen verwendet, um diese Antwort zu erstellen : http://www.comlab.hut.fi/opetus/333/2004_2005_slides/CarrierTimingRecovery.pdf http://mobiledevdesign.com/tutorials/radio_matched_filtering_timing/

Dieser Artikel ist besonders hilfreich: http://rfdesign.com/images/archive/0901Litwin32.pdf Hier ist ein Link zu Gardners Originalarbeit von 1986: http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber= 1096561 & tag = 1

Hinweis Im Allgemeinen wird dieser Bereich als "Clock and Data Recovery" oder "CDR" bezeichnet. Insbesondere haben wir es mit "Symbolsynchronisation" zu tun. Diese Begriffe sollen Ihnen bei Ihrer Suche helfen.

Gallamin
quelle
Vielen Dank! Ich habe einige Anschlussfragen, weil ich denke, dass dies ein Henne-Ei-Szenario wird: Für Früh-Spät - Ich verstehe nicht, wie ich 3 Proben verwenden kann, wenn ich zunächst nicht meine optimale Probenahmezeit finde ... Ich brauche optimal, früh und spät - aber wie findet man zunächst das Optimum? (Nur um sicherzugehen, dass wir auf derselben Seite sind, beziehen wir uns hier auf das richtige Abtasten des Umschlags?)
Spacey
1
Mohammed, für meine Implementierung haben wir zwei Dinge getan: 1) Wir beginnen mit einer Trainingssequenz von 1 und 0, um den Tracker beim Einrasten zu unterstützen, und 2) wir haben eine erste Vermutung angestellt. Ihre anfängliche Vermutung kann völlig naiv sein (0. Stichprobe) oder Sie können mit der anfänglichen Trainingssequenz korrelieren, um eine erste Schätzung zu erhalten.
Gallamin
Außerdem kennen Sie von oben ungefähr die Anzahl der Abtastwerte / Symbole, sodass jede nachfolgende Symbol-Timing-Schätzung die Abtastwerte / Symbole +/- das Fehlersignal aus dem Schleifenfilter sind.
Gallamin
Danke - ich werde das versuchen und dich wissen lassen, wie es geht. Für Früh-Spät sprechen Sie über den Umschlag, obwohl richtig? Die früh-spät-spät-Samples sind von der Hüllkurve des Signals? (dh Umschlag = I ^ 2 + Q ^ 2). Ich bin verwirrt darüber, worauf sich genau diese y_n in diesem Beispiel beziehen - beziehen sie sich auf den Umschlag oder beziehen sie sich nur auf die Verwendung des I? Oder die komplexe Stichprobe (I + Q)?
Spacey
Ich bin mir nicht ganz sicher. Bei den Methoden M & M und Gardner möchten Sie die bipolaren Signale betrachten. Für BPSK möchten Sie das Signal also nicht quadrieren. Für den Early / Late-Gate-Detektor würde das Quadrieren des Signals kein Problem verursachen, glaube ich nicht. Würden Sie in der Praxis nicht zuerst die Phase korrigieren und dann die Q-Komponente für BPSK ignorieren?
Gallamin