Forum: Digitale Signalverarbeitung / DSP / Machine Learning Fenstern oder nicht Fenstern


von Ralf (Gast)


Lesenswert?

Ich möchte eine möglichst ideale Messung eines Spektrums durchführen und 
eine FFT benutzen. Das Signal muss nicht aus der FFT wiederhergestellt 
werden können - ich brauche nur möglichst exakte Werte. Nun ist bekannt, 
dass die FFT nicht hunterprozentig funktioniert, wenn man nicht fenstert 
(und auch dann noch Artefakte hat).

Frage: Welches Fenster nimmt man, wenn man keine Annahmen über die 
Verteilung der Frequenzen machen kann, die Genaugikeit also möglichst 
hoch sein muss?

Weiters stellt sich mir die Frage, ob ich auch Fenstern darf und soll, 
wenn die FF-Daten wieder per iFFt zurückverwandelt werden sollen?

Aus dem Spektrum sollen Frequenzen wegestrichen werden und das neue 
Signal geformt werden.

von Fetz (Gast)


Lesenswert?

> Nun ist bekannt,
> dass die FFT nicht hunterprozentig funktioniert, wenn man nicht fenstert
> (und auch dann noch Artefakte hat).

Seltsame Aussage ... die FFT ist hunderprozentig umkehrbar (wenn die 
Genauigkeit hoch genug ist). Wenn du nicht Fensters hast du halt die 
Frequenzauflösung auf die Zeit nicht ...


> Frage: Welches Fenster nimmt man, wenn man keine Annahmen über die
> Verteilung der Frequenzen machen kann, die Genaugikeit also möglichst
> hoch sein muss?

Möglichst klein? Nur eine Vermutung ...

von Pascal O. (raven761)


Lesenswert?

Die Fensterung wird eingesetzt, um die FFT überhaupt erst machen zu 
können. Du entscheidest mit der Art der Fensterung, was du haben 
möchtest. Dafür nimmst du dir aber Effekte in Kauf:
- Genauigkeit
- Leck-Effekt

Das kann nicht sein dass die FFT nicht hunderprozent funktioniert. Da 
machst du was falsch! Wenn du hohe Genauigkeit möchtest, muss du lange 
genug hinsehen. Wahrscheinlich ist deine FFT zu klein und deshalb hast 
du Artefakte, die wahrscheinlich durch eine rechteckige Fensterung 
entstanden sind. Das ist der Leck-Effekt.
Eine Fensterung geschieht automatisch, da kannst du nichts dagegen tun. 
In deinem Fall nehme ich an dass du einfach nur Werte eingelesen hast 
und keinen spezifischen Filter drübergelegt hast. Dadurch hast du 
automatisch eine Rechteck-Fensterung und ein Rechteck hat bekanntlich 
eine sehr hohe Bandbreite. Dadurch faltest du dein Signal mit einem 
Rechteck und dadurch bekommst du da schlechte Werte.
Du solltest wissen, wie oft du neue Werte benötigst und mit welcher 
Genauigkeit. Und Genauigkeit ist relativ, es kommt eben auf deine 
Anwendung an! Wenn es sehr genau sein soll, dann musst du entweder sehr 
sehr lange auf dein Signal kucken (unendlich lange Fensterung) oder ein 
geeignetes Fenster nehmen das du so einsetzt, dass du nur deine 
gewünschten spektralen Anteile scharf von den anderen abtrennst.

Ansonsten schau dir den Wiki Artikel zu Fenterfunktionen an:
http://de.wikipedia.org/wiki/Fensterfunktion

Das Fenster wählt man so aus, wie man seine Anforderungen stellt. 
Möchtest du einzelne Frequenz extrem scharf trennen oder lieber alle 
Frequenzanteile?
Beachte: Immer wenn du fensterst, handelst du dir andere ungeliebte 
Effekte ein. Die Wahl eines Fensters ist immer ein Kompromiss.

von Jan K. (jan_k)


Lesenswert?

holger schrieb im Beitrag #2526495:
>>Aus dem Spektrum sollen Frequenzen wegestrichen werden und das neue
>>Signal geformt werden.
>
> Hast du irgenwie einen geistigen Schaden?

Wieso, in der Bildbearbeitung macht man bspw. bei periodischen Störungen 
genau das, Im Frequenzbereich korrigieren, zurück transformieren.

Rest wurde gesagt, ein Fenster entsteht automatisch!

von Werner (Gast)


Lesenswert?

Ralf schrieb:
> Weiters stellt sich mir die Frage, ob ich auch Fenstern darf und soll,
> wenn die FF-Daten wieder per iFFt zurückverwandelt werden sollen?

Kein Fenster nutzen heist in Zusammenhang mit der FFT ein 
Rechteckfenster zu verwenden. Guck dir die FFT von deiner 
Fensterfunktion an und dann entscheide, was du als liebstes um jede 
deiner Frequenzen deines Urspungssignals sehen möchtest.

von Ralf (Gast)


Lesenswert?

Jemand schreib
> Hast du irgenwie einen geistigen Schaden?
Nein, habe ich nicht und ich wüsste auch nicht, was an meiner Aussage 
unsinnig sein sollte.

Zu den anderen Antworten:

Ich weiss um den Effekt des Fensterns und genau deshalb schreibe ich ja, 
dass dadurch Fehler gemacht werden. Sieh auch diese Aussage:

Pascal O. schrieb:
> Beachte: Immer wenn du fensterst, handelst du dir andere ungeliebte
> Effekte ein.

So ist es und deshalb gelingt es eben nicht, die Ausgabe der FFT perfekt 
wieder zurückzuverwandeln, wenn diese "ungeliebten effekte" zuviel 
werden.

Nochmals meine Frage:

Wie Fenstere ich so, dass ich ein möglichst repräsentatives Ergebnis 
bekomme?

und

wie fenstere ich so, dass ich möglichst authentisch weiterarbeiten kann, 
indem ich eine IFFt verwende.



Jan K. schrieb:
> Bildbearbeitung macht man bspw. bei periodischen Störungen
>
> genau das, Im Frequenzbereich korrigieren, zurück transformieren

Bei mir ist es etwas anders: Ich muss bestimmte Frequenzen erkennen, das 
Muster suchen und festlegen, welches Muster von n es war. Dann wird 
genau dieses Muster herausgeschnitten und wieder synthetisiert. Damit 
sind Störfrequenzen weg und ich habe das eigentliche Signal. Von dem 
brauche ich aber die Phase!

von Antworter (Gast)


Lesenswert?

Ralf schrieb:
> Wie Fenstere ich so, dass ich ein möglichst repräsentatives Ergebnis
> bekomme?

Das kommt ganz darauf an, wie du es denn gerne hättest. Mit dem 
Rechteckfenster (also wenn du gar nichts machst außer deine Daten 
blockweise in die FFT zu schicken) bekommst du zwar schön schmale Peaks, 
die jedoch nur sehr langsam abfallen. Die meisten anderen Fenster machen 
dann zwar die Peaks breiter, jedoch ist dann neben den Peaks nicht mehr 
so viel anderes Geraffel, was meist besser aussieht. Was genau du 
willst, musst du selbst wissen.


Ralf schrieb:
> wie fenstere ich so, dass ich möglichst authentisch weiterarbeiten kann,
> indem ich eine IFFt verwende.

Wenn du etwas in die FFT steckst und das Ergebnis wieder in die IFFT 
kommt dein Ursprungs-etwas heraus. Insofern verstehe ich deine Frage 
nicht. Fenstern macht man üblicherweise vor allem bei der 
Spektralanalyse. Aber wenn du dein Signal nur modifizieren und 
anschließen rücktransformieren willst, solltest du es wohl eher gar 
nicht fenstern, dir aber bewusst sein, was wegen der impliziten 
Rechteckfensterung passiert.

von Ralf (Gast)


Lesenswert?

So richtig schlau macht mich das auch nicht. Wäre mal einen Artikel 
wert!

von Pascal O. (raven761)


Lesenswert?

Also was du benötigst, ist eher eine angepasstes Filter und keine FFT 
finde ich. Wenn du bestimmte Störfrequenzen raushaben möchtest, dann 
musst du da ganz anders vorgehen. Das wird in der Signalverarbeitung in 
der Regel nicht so gemacht.
Was dir auch helfen könnte wäre eine Korrelation. Es scheint mir so, als 
wüsstest du schon was du benötigst. Wieso machst du nicht einfach eine 
Kreuzkorrelation mit deinem bekannten Muster und deinem Spektrum? Das 
würde dir doch viel eher helfen! Bei der FFT hast du doch auch noch 
zusätzlich das Problem, dass du auch noch Rauschen drin hast und damit 
doch dein Signal stören könntest. Oder haben deine gesuchten Frequenzen 
immer ein genügend hohes SNR? Mit passenden Filtern (Matched Filter, 
Wiener Filter, ...) kannst du dein Rauschen unterdrücken und nur dein 
Signal rausziehen.
Wie ich dir schonmal empfohlen habe: Lies dir den Wiki Artikel zu 
Fensterung mal durch. Da steht alles drin was du wissen möchtest!
Was ich dir nochmals ans Herz lege:
- Überlege dir, was du eigentlich möchtest, dann könntest du auch selber 
überlegen welches Fenster du benötigst.

Nenne doch auch mal bitte mit welchen Frequenzen du arbeitest und welche 
FFT du benutzt hast, um diese zu transformieren. Ist deine FFT nämlich 
richtig gewählt, fallen die Effekte so gut wie nicht ins Gewicht. Wie 
gesagt, wenn du lange genug hinschaust bekommst du ein perfektes 
Spektrum. Ebenso welche Messzeit musst du einhalten usw. Wir brauchen 
Daten um dir weiterzuhelfen, so führt das zu nichts.

von Ralf (Gast)


Lesenswert?

Die FFT ist unausweichlich da vorgegeben und die Daten noch von einem 
anderen Modul genutz werden.

Ins Forum stellen kann ich den Code nicht, da die APP company restricted 
ist.

von Pascal O. (raven761)


Lesenswert?

Wir wollen den Code ja auch nicht sehen :-) Aber ein paar Eckdaten sind 
wichtig. Die FFT Daten z.B., das sind nur ein paar Werte, kein 
kompletter Code und völlig allgemein. Und die müssen auf deine 
Frequenzen angepasst werden, deshalb wäre ein Frequenzbereich auch ganz 
nett.

von Ralf (Gast)


Lesenswert?

Ok, nehmen wir an, der Spektralanteil nimmt nach oben hin leicht ab. 
Amplitude am oberen Ende z.B. nur halb so hoch. Das Rauschen ist 
ungefähr 1/f - gfsmit etwas gleichverteiltem Zufall.

von Pascal O. (raven761)


Lesenswert?

Noch ein Tip: Durch den entstehenden Leck-Effekt wird die Energie deines 
Signals auf das ganze Spektrukm verteilt. Die Amplitude vom eigentlichen 
Signal ist in der FFT niedriger dargestellt. Wahrscheinlich kannst du 
auch deshalb nicht korrekt zurücktransformieren. Ich kann dir mit den 
wagen Hinweisen von dir aber leider nicht weiterhelfen, ich brauch Daten 
um mich da reinzudenken.
Vielleicht solltest du dir das Prinzip und die richtige Auslegung der 
FFT nochmal genauer durchlesen. Vielleicht hast du auch deine 
Stützstellen und die Anzahl des betrachteten Bereichs falsch gewählt. 
Damit kann man auch viel falsch machen. Ach ja, falls du Matlab 
verwenden solltest, da ist die FFT nicht gleich FFT. Da sollten die 
Einstellungen lieber manuell vorgenommen werden. Ich klink mich hier 
aus. Viel Erfolg noch!

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.