Wie wende ich ein Funktionsfenster auf ein Signal an?


9

Wie kann ich eine Fensterfunktion wie Hamming oder Lanczos anhand ihrer Koeffizienten auf ein Signal anwenden?

Ich meine, mit welcher Methode kann ich das machen? FFT? Faltung? Welche Methode hat die bessere Leistung?


4
Typischerweise führt man vor einer FFT eine Vektormultiplikation einer Fensterfunktion durch, die auf die gleiche Vektorlänge wie die Daten und den Datenvektor skaliert ist.
hotpaw2

Bitte beschreiben Sie Ihre Bewerbung genauer.
Nibot

Antworten:


3

Ich habe diese lange Antwort gestern für jemanden auf stackoverflow.com geschrieben. .

/programming/9694297/matlab-fft-xaxis-limits-messing-up-and-fftshift/9699983#9699983

Es ist ein Matlab-basiertes Beispiel, das zeigt, wie die FFT für die Analyse verwendet wird, aber es kann Ihnen einige Ideen geben. Ungefähr zur Hälfte des zweiten Codeblocks wende ich eine Fensterfunktion auf ein gepuffertes Signal an. Dies ist effektiv eine Vektormultiplikation der Fensterfunktion mit jedem gepufferten Block von Zeitreihendaten. Ich benutze nur einen hinterhältigen Diagonalmatrix-Trick, um es effizient zu machen.


15

Wie kann ich eine Fensterfunktion wie Hamming oder Lanczos anhand ihrer Koeffizienten auf ein Signal anwenden?

Einfach Punkt für Punkt multiplizieren.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.