Nehmen wir an, wir haben ein Spektrum von -X MHz bis + X MHz. Ich müsste den Frequenzfehler im Spektrum korrigieren, indem ich die Nullkomponente in die Mitte (0 Hz) verschiebe.
Wenn der Ausgang (das Frequenzspektrum) über FFT berechnet wird, kann ich das Spektrum meines Wissens durch Anpassen der 'Twiddle-Faktoren' (oder Koeffizienten für komplexe Daten-Sinus- und Cosinus-Wellen) verschieben.
Im Fall einer FFT der Größe 1024 (Bin-Indizes von 0 bis 1023) sollte in Bin-Nummer 511 eine 0-Hz-Komponente vorhanden sein. Aufgrund eines möglichen Frequenzfehlers kann sich die 0-Hz-Komponente jedoch tatsächlich tatsächlich in Bin 510 befinden.
Ich kann nicht viele Informationen dazu finden. Jede Hilfe geschätzt.
EDIT: Fehler in der Frage.
fft
frequency
frequency-spectrum
user1166780
quelle
quelle
Antworten:
Wenn die gewünschte Frequenzverschiebung ein Vielfaches des Bin-Abstands ist, wie in Ihrem Beispiel, können Sie die gewünschte Verschiebung leicht bewirken, indem Sie einfach die FFT-Ausgänge um die Anzahl der benötigten Bins drehen. In dem häufigeren Fall, dass der Frequenzversatz kein ganzzahliges Vielfaches des Bin-Abstands ist, können Sie das Signal vor der FFT mit einer komplexen Exponentialfunktion multiplizieren.
Wenn Sie also feststellen, dass sich die Mittenfrequenzkomponente, von der Sie sprechen, tatsächlich bei der Frequenz Hz in Ihren Daten befindet und die Daten mit der Rate Hz abgetastet werden , verschieben Sie das Spektrum so, dass die interessierende Komponente ist Bei einer Frequenz von Null im FFT-Ausgang würden Sie Folgendes tun:fo ffs e t fs
quelle
Nun, der einfache Weg ist, wenn Sie das Fourier verwendet haben, um die Spektren zu finden, und Sie müssen seine Frequenz wissen, um wie viel es verschoben ist, können Sie eine Sache tun.
1) Finden Sie die Impulsantwort aus diesen Spektren heraus
2) falten Sie es mit einem Geräusch
3) Sehen Sie das Signal, dass Sie obtaine4) nehmen Sie seine FFT, nur um sicherzugehen, ob es mit der vorherigen übereinstimmt
4) und sehen Sie die Spektren durch Mitteln in verschiedene Teile ... dafür kann ich ua einen Algorithmus in der mathematica-Software angeben, das heißt
In diesem Code habe ich ein Argument für pmsesignal, damit Sie stattdessen Ihr eigenes Signal verwenden können.
Ich bin mir nicht sicher, wie gut ich das erklärt habe, aber das hatte in meinem Fall funktioniert.
Prost!
quelle