Effiziente Frequenzversatzschätzung bekannter Signale

7

Angenommen, mein Empfänger empfängt bekannte Datensignale, die von sehr einfach (Ton) bis komplex (bekannte Datensequenz, die moduliert ist (PSK / QAM / OFDM / etc.)) Reichen. Was sind die rechnerisch effizientesten Methoden, um eine einigermaßen genaue Schätzung des Frequenzversatzes zu erhalten?

Jim Clay
quelle
Haben Sie versucht, die I- und Q-Ergebnisse Probe für Probe gegeneinander zu zeichnen und die Rotation über die Zeit zu betrachten? Das heißt, für jedes I (n) und Q (n) (n ist die Abtastzeitzahl) zeichnen Sie diese beiden Werte auf der x-Achse und auf der y-Achse auf. Mit der Zeit werden Sie feststellen, dass sie sich entlang des Einheitskreises drehen. Die Rotationsrate ist Ihr Frequenzversatz.
Spacey
1
@Mohammad Ich weiß, dass ich es so machen kann, ich bin mir nur nicht sicher, ob es eine rechnerisch effiziente Art ist, es zu tun. Bei der Gefahr, ein totes Pferd zu schlagen, ist für mich der Schlüssel die Recheneffizienz.
Jim Clay
Um nicht zu sagen, dass es keine anderen Methoden gibt, aber ich denke nicht, dass dieser Weg notwendigerweise rechenintensiv wäre. Schließlich vergleichen Sie nur die I- und Q-Werte (die ohnehin berechnet werden müssen, da Sie sich vorstellen, wie Sie sich vorstellen) und vergleichen vor einiger Zeit die aktuellen I / Q-Werte mit einem vorherigen I / Q-Wert. Vielleicht gibt es etwas, das mir pro Projekt nicht bekannt ist und das dies rechenintensiv macht ... Wie begrenzt ist Ihre Rechenleistung für diese Aufgabe?
Spacey
@Mohammad Ich nehme an, du hast recht - es ist nicht so intensiv. Meine besondere Situation ist, dass ich die Paketierung und manchmal Demodulation von GSM- (Ton) und WiFi-Signalen (PSK, OFDM) in einem FPGA implementieren möchte. Ich hatte gehofft, dass es eine clevere Möglichkeit gibt, die Frequenzversatzschätzung gleichzeitig mit der Signalerkennung durchzuführen, was ich wahrscheinlich mithilfe von FFT-basierten Korrelationen tun werde.
Jim Clay
Hmm, nun, ich habe mich umgesehen und von einigen Methoden gehört, die die Autokorrelation zur Tonhöhenerkennung verwenden (siehe hier: dsp.stackexchange.com/questions/1317/… ), ... und da Sie Cross- Es könnte sich lohnen, einen Blick darauf zu werfen. (Cntrl-F für 'Autokorrelation' und siehe @ Phonons Antwort).
Spacey

Antworten:

8

Zeitlich ausgerichtet

Wenn die Signale zeitlich ausgerichtet sind, können Sie das empfangene Signal mit dem Referenzsignal dividiert durch sein Größenquadrat konjugieren und multiplizieren. Im Wesentlichen durch das komplexe Referenzsignal dividiert.

Angenommen, das Referenzsignal ist , der Frequenzversatz (dh die zeitveränderliche Phase) ist und das Rauschen istx(t)θ(t)N.(t)

Dann ist das (zeitlich ausgerichtete) empfangene Signal im komplexen Basisband oder Hilbert

r(t)=x(t)ejθ(t)+N.(t)

Multiplikation mit

x(t)|x(t)|2
deckt den Frequenzversatz + Rauschen auf. Man kann eine FFT oder einen solchen Frequenzschätzer verwenden, um die dominante Frequenz in wiederherzustellen
f(t)=x(t)x(t)|x(t)|2ejθ(t)+x(t)|x(t)|2N.(t)=ejθ(t)+N.2(t)

Nicht zeitlich ausgerichtet

Wenn die Signale nicht zeitlich ausgerichtet sind, liegt ein Problem mit der Zeit- und Frequenzsuche vor. Bei niedrigem SNR ist dies im Wesentlichen das Problem, das durch die Cross-Ambiguity-Funktion (CAF) gelöst wird. Wenn Sie einen Rand von mehreren dB haben, können Sie eine Verknüpfung verwenden.

Wenn Sie ein Referenzsignal mit einer AM-Variation haben; Sie können die Zeit zuerst ausrichten, indem AM beide Signale erkennt und dann Ihre Eingabe mit dem Referenz-AM korreliert. Wenn Ihr Referenzsignal keine großen Amplitudenschwankungen aufweist, sein Spektrum jedoch "spitz" ist, können Sie möglicherweise die Betragsspektren des Empfangs und der Referenz korrelieren. Dies ist der gleiche Trick, der im Frequenzbereich und nicht im Zeitbereich angewendet wird.

Mit Ausnahme der CAF sind dies alles ziemlich billige Operationen.

Mark Borgerding
quelle
Ich folge nicht ganz der "Konjugat-Multiplikations" -Methode. Ich gehe davon aus, dass Sie über das Multiplizieren der beiden Sequenzen Probe für Probe sprechen, wobei eine davon konjugiert ist. Jedes Produkt hätte dann eine Phase von n * fo + phi, wobei n die Probennummer ist, fo die Versatzfrequenz ist und phi der Startphasenversatz ist. Sollte ich die Phasen unterscheiden, um das Phaseninkrement der Offsetfrequenz zu erhalten?
Jim Clay
Ja. Wenn es einen konstanten Phasenversatz gibt, hat das Ergebnis der konjugierten Multiplikationsoperation eine lineare Phase. Die Steigung dieser Linie ist der Frequenzversatz. Wenn Sie also differenzieren, erhalten Sie diesen.
Jason R
Mir ist aufgefallen, dass wir uns im Frequenzbereich vermehren, um im Zeitbereich zu korrelieren / zu falten. Durch konjugierte Multiplikation im Zeitbereich korrelieren wir im Frequenzbereich. Wenn wir die Ergebnisse der konjugierten Multiplikation FFT, sollten wir die Kreuzkorrelation im Frequenzbereich haben, oder? Die Spitze dieser Kreuzkorrelation sollte angeben, wie hoch der Frequenzversatz ist.
Jim Clay
1
Ja. Wenn das Ergebnis der konjugierten Multiplikation eine lineare Phase aufweist, ist es von Natur aus tonartig. Dies entspricht, wie Sie bemerkt haben, einem dünnen Peak im Frequenzbereich.
Jason R
Ist die bearbeitete Antwort etwas klarer?
Mark Borgerding