Ich verwende eine FFT, um zu analysieren, was im Wesentlichen die Leistungshüllkurve eines Signals ist (siehe hier für Informationen zum enthaltenen Projekt), und um die Gleichstromkomponente zu eliminieren, möchte ich ein Fenster verwenden, da die Leistungszahlen immer positiv sind Funktion, die 50/50 positiv und negativ ist, gegenüber der üblichen allpositiven Funktion.
Ich habe die " Flat Top " -Funktion übernommen, die a0
Vorspannung entfernt und sie von Cosinus in Sinus konvertiert, bin mir aber nicht sicher, ob dies optimal (oder sogar sinnvoll) ist.
Irgendein Vorschlag?
fft
window-functions
Daniel R Hicks
quelle
quelle
Antworten:
Die erste Ableitung der gängigsten kontinuierlichen Fensterfunktionen (von Hann usw.) lehnt Gleichstrom ab, weist jedoch weiterhin einen Größenfrequenzgang auf, der dem der ursprünglichen Fensterfunktion ähnlich ist. Sie können also weiterhin Ihre ursprünglichen "Güte" -Kriterien für die Fensterauswahl verwenden, wenn diese nicht mit der Phase zusammenhängen.
quelle
Wenn Sie eine Spektralanalyse für ein Signal mit einer großen Gleichstromkomponente durchführen möchten und diese Gleichstromspitze unterdrücken möchten, ist eine Fensterfunktion nicht das, was Sie wollen. Wie einige andere Antworten feststellten, ist ein Hochpassfilter (oder, anders betrachtet, ein Sperrfilter mit einer Kerbe bei einer Frequenz von Null) eine geeignete Lösung.
Um zu verstehen, warum, müssen Sie darüber nachdenken, was das Anwenden einer Fensterfunktion auf den Frequenzgang jedes DFT-Ausgangs bewirkt. Die DFT ist definiert als:
Eine Interpretation der Funktionsweise der DFT ist eine Reihe von Filtern mit gleich beabstandeten Frequenzen zwischen - f sN. undfs- fs2 . Fassen Sie die obige Summe wie folgt um:fs2
wo:
Der te DFT-Ausgang wird also erzeugt, indem zuerst das Eingangssignal x [ n ] genommen und mit einem komplexen Exponential bei einer Frequenz von - 2 π k multipliziert wirdk x [ n ] , um ein herunterkonvertiertes Signalxk[n] zu erhalten. Das resultierende Signal wird dann über dasN-Abtastfenstersummiert, um den DFT-AusgangX[k] zu ergeben. Dies ist effektiv ein Filter mit gleitendem Durchschnitt (manchmal auch als Boxcar-Filter bezeichnet), dessen Impulsantwort wie folgt beschrieben werden kann:- 2 πkN. xk[ n ] N. X.[ k ]
Die Größenantwort des Boxcar-Filters kann ermittelt werden, indem die zeitdiskrete Fourier-Transformation (DTFT) dieser Impulsantwort verwendet wird:
Wenn Sie also wirklich nur die DC-Komponente des Signals löschen möchten, ist es der richtige Weg, sie über eine andere Art der Vorverarbeitung und nicht über Zeitbereichsfenster zu entfernen. Sie können beispielsweise ein lineares Hochpassfilter mit einer sehr niedrigen Grenzfrequenz verwenden oder zuerst den geschätzten Mittelwert vom Signal subtrahieren. Die Auswahl zwischen diesen Methoden sollte auf den anderen Einschränkungen Ihres Systems basieren.
quelle
Ich denke nicht, dass die Verwendung einer Fensterfunktion ein guter Weg ist, um DC zu entfernen. Wie der Endolith erwähnt, besteht eine übliche Methode darin, den Mittelwert vor dem Fenster zu subtrahieren. Eine andere Möglichkeit wäre, vor der Analyse ein Hochpassfilter auf Ihr Signal anzuwenden, beispielsweise mit einer Grenzfrequenz von etwa 10 Hz.
quelle