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?
Ich benutze ein Datenfenster zur Glättung von Werten und den Leck-Effekt
zu vermeiden:
https://de.wikipedia.org/wiki/Leck-EffektFensternutzer 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:
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.
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.
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.
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? ;)
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.
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.
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.
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?
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?
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?
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.
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.