Forum: Digitale Signalverarbeitung / DSP / Machine Learning Datenfensterung


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Fensternutzer (Gast)


Lesenswert?

Eine Frage zur Datenfensterung zwischendurch:

Die Windows vor einem Filter oder einer DFT / FFT werden in der Regel 
mit einem Fester bearbeitet, welches dafür sorgt, dass die Daten weich 
hineingleiten und es nicht zu einem leak-Effekt kommt, oder wie der 
heisst. Bildlich stelle ich mir das so vor, dass die Frequenzen, die 
genau in die Datenzahl (t.B. 128 samples) hineinpassen sehr gut zu Null 
werden, während die anderen je nach Phase zu einem Zappeln führen. 
Soweit so gut.

Nun habe ich einen Filter, dessen Kurve von sich aus schon genau zu der 
Samplezahl passt - am Rand also genau 0 wird. Es handelt sich um einen 
FIR-Filter dessen Grenzfrequenz zufällig so liegt, dass die auslaufenden 
Flanken des Filters in den letzten Punkten genau die X-Achsen schneiden.


Muss ich dann überhaupt noch fenstern?

Und wenn ich das tue, würde dann nicht eine andere Grenzfrequenz 
entstehen?

Es wird ja Quasi eine Glocke mit einer anderen multipliziert, wodurch 
die Glocke enger wird, also tiefe Frequenzen weniger gut erfassen kann. 
Meines Erachtens sinkt auch die Grenzfrequenz?

Oder ist das falsch gedacht?

von Karatona (Gast)


Lesenswert?

wenn du mal genauer schreibst, was du überhaupt tust und tun willst dann 
kann mir dir eher helfen. so ist es nur schwer nachvollziehbar

von Fensternutzer (Gast)


Lesenswert?

Ich benutze ein Datenfenster zur Glättung von Werten und den Leck-Effekt 
zu vermeiden:
https://de.wikipedia.org/wiki/Leck-Effekt

Fensternutzer schrieb:
> Die Windows vor einem Filter oder einer DFT / FFT werden in der Regel
> mit einem Fester bearbeitet,

Richtig geschrieben müsste es heissen:

"Die DATEN vor einem Filter ..."

Benutzt wird jenes in der Zeichnung:
1
           ***
2
         *     *
3
        *       *
4
       *         *     
5
     *             *  
6
   *                 *
7
*.......................*

Es ist ein Glockenfilter, ähnlich Gauss, in der erweiterten Version auch 
mit mehr Abtastpunkten / erhöhter GF und etwas anderen Koeffizienten:
1
                      ***
2
                    *     *
3
                   *       *
4
                  *         *     
5
   **            *           *             **
6
 *    *         *             *          *    *
7
*......*.......*...............*.....-- *.......*
8
        *     *                 *     *
9
         *   *                   *   *
10
          ***                     ***

In beiden Fällen liegen die Randpunkte auf der Y-Achse. Das ist jetzt 
einfach mal so und durch die Parameter bedingt. Ein Hamming würde nicht 
wesentlich anders aussehen, als (1), daher denke ich, dass man es 
weglassen könnte.

Oder?

Multipliziere ich nämlich den Hamming drauf, kommt eine engere Glocke 
heraus:
1
           ***
2
          *   *
3
         *     *
4
        *       *     
5
      *           *  
6
    *               *
7
*.......................*

Und die betont höhere Frequenzen. (?)

von A. S. (rava)


Lesenswert?

https://de.wikipedia.org/wiki/Fensterfunktion#Filterdesign

Da steht eigentlich ganz klar, dass im Filterdesign die Fensterung nötig 
wird, um den Schritt von IIR zu FIR zu schaffen und dass dabei der 
Frequenzgang verändert wird.

Im Umkehrschluss heißt das für dich:

Fensternutzer schrieb:
> Muss ich dann überhaupt noch fenstern?

nein, du hast bereits ein FIR Filter.

Fensternutzer schrieb:
> Und wenn ich das tue, würde dann nicht eine andere Grenzfrequenz
> entstehen?

ja, außer du verwendest ein Rechteckfenster der Länge N. Dann ändert 
sich gar nichts.

von Sven B. (scummos)


Lesenswert?

Leakage bei FFTs entsteht, wenn du deine Daten zweimal hintereinander 
kopierst und dann an der Fügestelle ein Sprung ist.

Hat deine Datenreihe an Anfang und Ende denselben Wert, passiert das 
nicht. Warum der Sprung nicht entsteht, ist der FFT egal; neben 
irgendeiner Fenster- oder Filterfunktion kann das z.B. auch daran 
liegen, dass die abgetastete Frequenz genau ganzzahlig in das 
betrachtete Zeitintervall passt.

von Burkhard K. (buks)


Lesenswert?

A. S. schrieb:
> Da steht eigentlich ganz klar, dass im Filterdesign die Fensterung nötig
> wird, um den Schritt von IIR zu FIR zu schaffen
Dort steht ganz klar nichts von IIR! (Tatsächlich kommt das Akronym IIR 
im ganzen Artikel nicht vor). Fensterung beim FIR-Filterentwurf dient in 
erster Linie dazu, um aus dem eigentlich gewollten, aber nicht 
realisierbarem Verhalten (wie ein harter Übergang zwischen Durchlass- 
und Sperrbereich) eine "vernünftige" Impulsantwort mit brauchbarer 
Sperrdämpfung zu erhalten.

Sven B. schrieb:
> Leakage bei FFTs entsteht, wenn du deine Daten zweimal hintereinander
> kopierst und dann an der Fügestelle ein Sprung ist.
Nö, Leakage ist der Normalfall - nur wenn das zu analysierende Signal 
zufällig (oder absichtlich so gewählt) in das gewählte Fenster passt, 
fällt der Effekt nicht auf; reale Signale kennen die gewählte 
Fenstergröße nicht.

von Sven B. (scummos)


Lesenswert?

Burkhard K. schrieb:
> Sven B. schrieb:
>> Leakage bei FFTs entsteht, wenn du deine Daten zweimal hintereinander
>> kopierst und dann an der Fügestelle ein Sprung ist.
> Nö, Leakage ist der Normalfall - nur wenn das zu analysierende Signal
> zufällig (oder absichtlich so gewählt) in das gewählte Fenster passt,
> fällt der Effekt nicht auf; reale Signale kennen die gewählte
> Fenstergröße nicht.

Und warum widerspricht das jetzt meinem Text? ;)

von Karatona (Gast)


Lesenswert?

Wie gesagt mal umschreiben woher die Daten kommen und was das Ziel sein 
soll.
Fensterung wird nötig, um das Signal endlich lang zu machen (N samples).
Durch die Fensterung wird das Spektrum des ursprünglichen Signals 
verfälscht.
Falls das Signal periodisch ist, immer ein Vielfaches der Periode. Dann 
umgeht man den Leakage-Effekt indem genau die Frequenzen der Fourier 
Koeffizieten aus dem Spektrum gesampled werden.

Ein FIR Tiefpassfilter kann kinderleicht in Matlab (fdatool) entworfen 
werden.
Was die Ecken bei deinem Filter jetzt damit zu tun haben sollen ???
Mir kommt es so vor, als ob du Begriffe durcheinander bringst.

von Karatona (Gast)


Lesenswert?


von Burkhard K. (buks)


Lesenswert?

Sven B. schrieb:
> Und warum widerspricht das jetzt meinem Text? ;)

Sven B. schrieb:
> Burkhard K. schrieb:
>> Sven B. schrieb:
>>> Leakage bei FFTs entsteht, wenn du deine Daten zweimal hintereinander
>>> kopierst und dann an der Fügestelle ein Sprung ist.

> Und warum widerspricht das jetzt meinem Text? ;)

Weil es den Leckeffekt auch ohne "zweimal hintereinander kopieren" gibt 
(hast Du das wirklich so gemeint? Das wäre dann nämlich dreimal derselbe 
Datenblock). Und ein fehlender Sprung an der Blockgrenze heißt nicht 
zwangsläufig, dass keine Leakage auftritt.

von Sven B. (scummos)


Lesenswert?

Burkhard K. schrieb:
> Weil es den Leckeffekt auch ohne "zweimal hintereinander kopieren" gibt
> (hast Du das wirklich so gemeint? Das wäre dann nämlich dreimal derselbe
> Datenblock).

Das war so gemeint, dass du das zur Veranschaulichung machen kannst, um 
zu erkennen ob es einen Leckeffekt gibt oder nicht.

von A. S. (rava)


Lesenswert?

Burkhard K. schrieb:
> A. S. schrieb:
>> Da steht eigentlich ganz klar, dass im Filterdesign die Fensterung nötig
>> wird, um den Schritt von IIR zu FIR zu schaffen
> Dort steht ganz klar nichts von IIR! (Tatsächlich kommt das Akronym IIR
> im ganzen Artikel nicht vor). Fensterung beim FIR-Filterentwurf dient in
> erster Linie dazu, um aus dem eigentlich gewollten, aber nicht
> realisierbarem Verhalten (wie ein harter Übergang zwischen Durchlass-
> und Sperrbereich) eine "vernünftige" Impulsantwort mit brauchbarer
> Sperrdämpfung zu erhalten.

Da steht "unendliche Impulsantwort". Und wofür steht IIR?

von Andi (Gast)


Lesenswert?

A. S. schrieb:
> Da steht "unendliche Impulsantwort". Und wofür steht IIR?

War das nicht so, daß eine FFT nur dann richtig gelingt, wenn die 
Signale unendlich lang sind? Ist die Aussage "Übergang IIR zu FIR" gfs. 
SO zu verstehen?

von Der Richter und sein Henker (Gast)


Lesenswert?

Andi schrieb:
> A. S. schrieb:
>
>> Da steht "unendliche Impulsantwort". Und wofür steht IIR?
>
> War das nicht so, daß eine FFT nur dann richtig gelingt, wenn die
> Signale unendlich lang sind? Ist die Aussage "Übergang IIR zu FIR" gfs.
> SO zu verstehen?

es ist immer noch nicht klar was OP überhaupt tun möchte. Versucht er 
ein FIR mittels Fenstermethode zu entwerfen?

von Jürgen S. (engineer) Benutzerseite


Angehängte Dateien:

Lesenswert?

Fensternutzer schrieb:
> Nun habe ich einen Filter, dessen Kurve von sich aus schon genau zu der
> Samplezahl passt
Entscheidend ist, ob die Wellenlänge, die aufgenommen wird, zur 
Samplezahl passt. Ist das der Fall, braucht es kein Fenster.

Fensternutzer schrieb:
> Nun habe ich einen Filter, dessen Kurve von sich aus schon genau zu der
> Samplezahl passt -
Das ist das, was man durch das Fenster zu erzielen versucht. Das heisst 
aber nicht, dass die Probleme dann weg sind. Jede Frequenz, die 
einläuft, wird mit den Koeffizienten / der Fensterform multipliziert.

>am Rand also genau 0 wird.
Falls die genau 0 sind, kann man sie auch weglassen.

Karatona schrieb:
> Ein FIR Tiefpassfilter kann kinderleicht in Matlab (fdatool) entworfen
> werden.
MATLAB gibt aber kein Fenster vor und löst auch nicht die Fragestellung, 
ob und wann man eins braucht. Es rechnet es nur rein, wenn man es 
kommandiert. der TE will aber wissen, ob es es braucht.

und ja:

Fensternutzer schrieb:
> Es wird ja Quasi eine Glocke mit einer anderen multipliziert, wodurch
> die Glocke enger wird,
Ja sicher ist das so. Das Problem lässt sich lindern, indem man die 
"Glocke" über mehr, als eine Periode laufen lässt. Dann fällt die 
Deformation geringer ins Gewicht.

von Jürgen S. (engineer) Benutzerseite


Lesenswert?

Wie sich im Bild erkennen lässt, ist ein Filter "der am Rand Nullen hat" 
nur bei der Begrenzung auf diesen Bereich wirklich am Rand 0 und bringt 
links und rechts davon negative Koeffizienten. Erweitert man den Filter 
entsprechend, hier Faktor 2 und 3, bekommt man die gleiche 
Grenzfrequenz, aber mehr Steilheit und "Trennschärfe". Das weiter aussen 
ansetzende Filter verformt die Filterkurve kaum noch und die 
leak-Effekte verringern sich um einen entsprechenden Faktor, weil das 
Überbleibsel, dass aus der Multiplikation von Datum und Koeff entsteht, 
auf 2/3 Perioden bezogen wird.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.