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.
> 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 ...
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.
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!
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.
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!
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.
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.
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.
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.
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.
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!