Ich habe viele EEG-Signale und möchte sie mit linearen Methoden wie STFT (Short Time Fourier Transform) analysieren. Wie kann ich in STFT die Länge des Analysefensters optimieren, um das Frequenzspektrum jedes Analysefensters ordnungsgemäß wiederzugeben?
fourier-transform
stft
Maen
quelle
quelle
Antworten:
Dies ist das klassische "Unsicherheitsprinzip" der Fourier-Transformation. Sie können entweder eine hohe zeitliche Auflösung oder eine hohe Frequenzauflösung haben, aber nicht beide gleichzeitig. Die Fensterlängen ermöglichen es Ihnen, zwischen den beiden auszutauschen.
Wenn Sie "Ereignisse" in Ihrem EEG-Signal mit einer Auflösung von beispielsweise 10 ms erkennen möchten, sollte dies Ihre Fensterlänge sein. Dies ergibt eine Frequenzauflösung von ca. 100 Hz.
quelle
Die optimale Fensterlänge hängt von Ihrer Anwendung ab. Wenn Ihre Anwendung so konzipiert ist, dass Sie Zeitbereichsinformationen benötigen, um genauer zu sein, reduzieren Sie die Größe Ihrer Fenster. Wenn die Anwendung eine genauere Angabe der Frequenzdomänen erfordert, vergrößern Sie die Fenster. Wie Hilmar schon sagte, hat man
Uncertainty Principle
wirklich keine andere Wahl. Sie können nicht in beiden Domänen gleichzeitig eine perfekte Auflösung erzielen. Sie können eine perfekte Auflösung in nur einer Domäne erzielen, und zwar zum Preis einer Auflösung von Null in der anderen (Zeit- und Frequenzdomäne) oder einer Auflösung zwischen zwei Domänen, jedoch in beiden Domänen.Ich weiß nicht, ob dies Ihre Frage beantwortet, da Sie speziell nach STFT gefragt haben. Sie könnten versuchen
wavelet transforms
, an die Informationen im Signal zu gelangen.Wavelet transforms
Sie erhalten eine Auflösung über einen viel größeren Bereich, indem Sie das Signal bei mehreren Fensterauflösungen analysieren.quelle
Ich kenne das EEG nicht, aber das grundlegende Problem bei der Verwendung der STFT ist die Auswahl einer geeigneten Fensterlänge. Wenn Ihr EEG periodisch ist und Sie die Grundschwingungen und Harmonischen auflösen möchten, sollten Sie ein "langes" Fenster verwenden. Wenn Sie stattdessen das Einsetzen oder Vorhandensein eines Ereignisses erkennen möchten oder sich mehr für die Hüllkurve des Spektrums interessieren, können Sie ein "kurzes" Fenster verwenden.
quelle
Ich habe viel Zeit damit verbracht, Fenster in Zeit-Frequenz-Analysen oder Filterbanken zu optimieren . Man kann sie für Erkennung, Rauschunterdrückung, Signaltrennung optimieren ... Es ist sehr abhängig von der Anwendung. Da die Zeit-Frequenz-Analyse in der Regel redundant ist, sind die Optimierung von Analyse- oder Synthesefenstern unterschiedliche Aufgaben. Und Länge nur ein Parameter im Fensterdesign.
Das Problem ist noch komplexer, da die diskretisierte Formulierung der Optimalität viel komplizierter ist als der kontinuierliche Fall des Zeitbereichs (siehe z. B. Eine optimal konzentrierte Gabor-Transformation für lokalisierte Zeit-Frequenz-Komponenten ).
Meine derzeitige Faustregel lautet: Beginnen Sie mit einer Fensterform und -länge, die in Ordnung zu sein scheint. Wiederholen Sie dann die Analyse mit zwei Fenstern mit doppelter und halber Länge und kombinieren Sie die Ergebnisse.
quelle
Normalerweise ergibt eine große Fenstergröße eine bessere Frequenzauflösung, aber eine schlechte Zeitauflösung und umgekehrt. Schauen Sie sich dieses Beispiel an, in dem ich aus meinem C ++ - Code ein Spektrogramm einer Sinuswelle mit 5 kHz und einer Abtastrate von 22050 Hz erstellt habe.
Das obige Spektrogramm hat eine Fenstergröße von 2048 Abtastwerten und eine Überlappung von 1024 Abtastwerten.
Schauen Sie sich dieses Spektrogramm an:
Dieser hat eine Fenstergröße von 512 Abtastwerten und eine Überlappung von 256 Abtastwerten.
Kannst du den Unterschied sehen? Der erste hat eine bessere Frequenzauflösung als der zweite. Aber die zweite hat eine bessere Zeitauflösung als die erste. Die Auswahl der Fenstergröße hängt also von Ihrer Anwendung ab. Wenn Sie mit Sprachmustern arbeiten, um die Tonhöhe zu verfolgen, sollte die Auswahl eines größeren Fensters die richtige sein.
quelle