Forum: Digitale Signalverarbeitung / DSP / Machine Learning Fensterung und Padding bei FFTs


von Frager (Gast)


Lesenswert?

Angeregt durch einen anderen aktuellen thread habe ich eine Frage:

Wenn ich eine binäre FFT mit nicht binären Daten auffüllen möchte, z.B. 
1000 Wert in einer 2h10=1024, dann kann ich nach meinem Wissen mit 
Nullen auffüllen. Die Frage ist, wie man das tun muss?

Soll das einseitig erfolgen oder Symmetrisch? Oder ist das egal?

Was tut man mit der Fensterung? Muss diese nicht genau über der Werten 
liegen und damit linksseit / symmetrisch , je nachdem wie man paddet?

Müssen die gepaddeten Werte auch genullt werden, sodass das Fenster 
verengt werden muss oder lässt es es bei der 1024er Breite und riskiert 
die Knickstellen, die durch die Nullen entstehen?

Vom Gefühl her, würde ich die Glocke des Fensters erhalten wollen und 
damit ein relativ breiteres Fenster mit steilerem Abstieg haben wollen, 
das aber an den gepaddeten Nullen endet, also zu den Nullen hin sanft 
ausläuft.

von Frank M. (aktenasche)


Lesenswert?

ich versuch das mal grafisch darzustellen:

spektrum: x
nullen: 0

x1 x2 x3 x4

x1 x2 0 0 x3 x4

weil das spektrum ja periodisch ist. was fensterung angeht keine ahnung.

von BiBi (Gast)


Lesenswert?

Die Nullen müssen in die Mitte? Seit wann denn das?

Am Beispiel einer single-DFT (kontinuierliche Multiplikation mit COS 
entlang der Frequenz) hätte ich nun gesagt, dass die Kohärenz dadurch 
hergestellt wird, dass alle Werte stetig mit dem COS (phi) verarbeitet 
werden, also:

Wert 1 x Cos (phi(0))
Wert 2 x Cos (phi(1))
Wert 3 x Cos (phi(2))
...
Wert k x Cos (phi(k))
...
0!     x Cos (phi(k+1))
...
0!     x Cos (phi(n-1))
0!     x Cos (phi(n))

mit phi(n) = 2 * PI

von Hauke R. (lafkaschar) Benutzerseite


Lesenswert?

Intuitiv würde ich auch sagen erst fenstern dann zero-padden, sonst 
verlierst du ein wenig den Sinn des Fensters (zumindest an einer stelle, 
je nach wo du die nullen anhängst). Meiner Meinung nach ist es egal wo 
die nullen angehängt werden, ob vorne oder hinten oder beides. Ich hab 
sie bis jetzt einfach immer hinten angehängt.

von Max G. (l0wside) Benutzerseite


Lesenswert?

Hauke Radtki schrieb:
> Intuitiv würde ich auch sagen erst fenstern dann zero-padden, sonst
> verlierst du ein wenig den Sinn des Fensters (zumindest an einer stelle,
> je nach wo du die nullen anhängst). Meiner Meinung nach ist es egal wo
> die nullen angehängt werden, ob vorne oder hinten oder beides. Ich hab
> sie bis jetzt einfach immer hinten angehängt.

Es ist tatsächlich fast egal, denn die Position im Zeitbereichsvektor 
ist ja nichts anderes als die Phase. Wenn am Schluss nur sie spektrale 
Leistungsdichte interessiert, ist es tatsächlich egal.

Standardmäßig hängt man sie m.W. hinten an, ist in der Implementierung 
meistens auch am einfachsten.

Weil die FFT ein periodisches Signal annimmt, müsste es eigentlich auch 
möglich sein, die Nullen in die Mitte zu setzen. Ein kurzer Test mit 
Matlab hat das allerdings nicht bestätigt, kann mir mal jemand meinen 
Denkfehler aufzeigen?

Grüße,

Max

von Stephan_II (Gast)


Lesenswert?

Hallo,

setzt du die Nullen in die mitte, fügst neben Anfang und Ende einen 
zusätzlichen Sprung in die Daten ein. Das wirkt sich natürlich auf das
Spektrum aus. Es ist ja auch nicht mehr Periodisch über alles....

Gruß

 Stephan

von J. S. (engineer) Benutzerseite


Lesenswert?

Max G. schrieb:
> Weil die FFT ein periodisches Signal annimmt, müsste es eigentlich auch
> möglich sein, die Nullen in die Mitte zu setzen. Ein kurzer Test mit
> Matlab hat das allerdings nicht bestätigt, kann mir mal jemand meinen
> Denkfehler aufzeigen?

Wenn Du Dir mal ansiehst, wie die Definition der FT lautet, bzw. wie der 
Eingangsdatenstrom mit SIN/COS jeder beteiligten Frequenz zu 
multiplizieren ist/wäre, wird doch klar, dass das nicht mehr aufgeht.

Das Anfügen der Nullen muss vorne oder hinten erfolgen, wobei man damit 
aber die Phaseninformation der Ausgabe modifiziert.

Auf beiden Seiten gleichmäßig Anfügen wäre z.B. dann von Nöten, wenn die 
Daten nicht selbst gefenstert werden können, sondern das Fenster z.B. in 
eine DFT eingebacken ist und nicht verschoben werden kann.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.