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?

Walteram
quelle
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.

lernen
quelle
15

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

Einfach Punkt für Punkt multiplizieren.

Nibot
quelle