Forum: Digitale Signalverarbeitung / DSP / Machine Learning Philosophie hinter DFT


von Chefkoch (Gast)


Lesenswert?

Hallo zusammen,

ich habe eine Frage bezüglich der diskreten Fourier Transformation.
Es wird ein zeitlich diskretes Intervall hergenommen dessen 
Frequenzintervall als das max. 0,5 fache der Samplingfrequenz betrachtet 
wird.
Dieses Intervall wird dann auf (diskrete ?) Vielfache der 
Samplingfrequenz untersucht. Letztlich weiß ich ja nicht, ob sich nicht 
auch Fraktale dieser Frequenzen in dem Signal tummeln, die mir dann das 
Spektrum verwischen.

Bedeutet dies

a.) ich habe etwas noch nicht richtig erfasst? Wenn ja, was?

b.) ich kann die DFT nur auf Signale anwenden von denen ich WEIß, dass 
sie von einer bestimmten Grundschwingung herrühren (weil ich sie z.B. 
selbst erzeugt habe)

c.) bei zufälligen Signalen muss ich einen Sweep in der Samplingfrequenz 
machen.

Grützi!

: Verschoben durch Admin
von Falk B. (falk)


Lesenswert?

@Chefkoch (Gast)

>ich habe eine Frage bezüglich der diskreten Fourier Transformation.
>Es wird ein zeitlich diskretes Intervall hergenommen dessen
>Frequenzintervall als das max. 0,5 fache der Samplingfrequenz betrachtet
>wird.

Sehr akademischer Satz.

>Dieses Intervall wird dann auf (diskrete ?) Vielfache der
>Samplingfrequenz untersucht.

Nö. Wenn gleich es bei der Theorie der DFT das Problem des Aliasings 
gibt, wird NICHT nach Vielfachen der Abtastfrequenz gesucht. Die DFT 
berechnt die Frequenzanteile im Signal. Wenn gleich man mathematisch von 
0- Unendlich diese Anteile berechnen kann, ist nur der Bereich zwischen 
0 und fs/2 sinnvoll. Die Frequenzauflösung ergibt sich direkt aus dem 
Messintervall im Zeitbereich (delta f = 1/Tges)

> Letztlich weiß ich ja nicht, ob sich nicht
>auch Fraktale dieser Frequenzen in dem Signal tummeln, die mir dann das
>Spektrum verwischen.

Das Wort "Fraktale" hat mit der DFT rein gar nichts zu tun. Das ist nur 
Bullshit-Bingo.

>a.) ich habe etwas noch nicht richtig erfasst? Wenn ja, was?

ja. Einges.

>b.) ich kann die DFT nur auf Signale anwenden von denen ich WEIß, dass
>sie von einer bestimmten Grundschwingung herrühren (weil ich sie z.B.
>selbst erzeugt habe)

Nein. Die DFT kann man auf jeden beliebigen Datensatz anwenden. Die 
Frage ist vielmehr, wie ich diesen Datensatz erzeugen kann. Wenn es, wie 
in den meisten Fällen, mittels AD-Wandler geschieht, muss dort ein 
passender Anti-Aliasing Filter vorhanden sein, eben damit es kein 
Aliasing gibt.

>c.) bei zufälligen Signalen muss ich einen Sweep in der Samplingfrequenz
>machen.

Nö. So gesehen ist jedes Signal "zufällig", sonst wäre es kein Signal. 
Die 50 Hz Schwingung des Stromnetzes ist KEIN Signal im Sinne der 
Informationsübertragung, denn es ist  zu 100% vorhersagbar.

von FelixW (Gast)


Lesenswert?

Hallo Chefkoch,

Fouriertransformation beruht auf Sinus/Kosinus und beide Funktionen sind 
unendlich ausgedehnt (Zeit). (Selbe Idee, wie einen Verlauf durch 
ax+bx^2+c^3 anzunähern) Um dieses Problem zu lösen führe ich ein 
Zeitfenster ein, was in alle Ewigkeit wiederholt wird. Damit kann ich 
mit endlich vielen Werten rechnen und erhalte die DFT.

zu a) Passen die "Enden" des Zeitfensters nicht zusammen erhalte ich 
Fraktale, weil Verlauf für die Berechnung nicht mit dem realen Verlauf 
übereinstimmt.

zu b) ist von Vorteil, ansonsten wird für die FFT wird zusätzlich eine 
Fensterfunktion verwendet. Der Grenzwert für den Rand ist 0. Dadurch 
wird das Spektrum verschliffen, ist aber besser als ein harter Bruch 
(Rechteckfenster). Genaue Details kenne ich nicht.

zu c) zufällig -> hat keine Periode, da nutzt keine günstige Auswahl des 
Fensters. Nur genügend Messdauer und ein gutes Fenster für ein gute 
Näherung für den Bereich der dich interessiert

von Marian (phiarc) Benutzerseite


Lesenswert?

FelixW schrieb:
> Passen die "Enden" des Zeitfensters nicht zusammen erhalte ich
> Fraktale

Du meinst Artefakte. AKA "in der FFT tauchen Frequenzanteile auf, die im 
Originalsignal gar nicht drin sind". Verursacht durch Verletzung der 
Vorbedingung der FFT, umgehbar durch die von dir angesprochenen 
Fensterfunktionen, die letztlich dazu dienen die Daten "periodisch zu 
machen"

: Bearbeitet durch User
von Lord of L. (lightninglord)


Lesenswert?

> Passen die "Enden" des Zeitfensters nicht zusammen erhalte ich
> Fraktale

Das Wort das du suchst ist Leckeffeckt ;-)
Damit du diesen Effekt nicht siehst (er ist immer da, da er durch die 
Begrenzung des Betrachtungszeitraums entsteht) muss das gefensterte 
Signal (im einfachsten Fall ein Rechteck, also ein Zeitausschnitt), wenn 
man es periodisch Fortsetzt, dem eigentlichen Signal entsprechen. Also 
volle Perioden. Das ist in der Praxis natürlich seltenst der Fall. Daher 
versucht man das Signal zu periodisieren. Das geschieht mit 
Fensterfunktionen (z.B. Hann, Hamming, Flat-Top, etc.), diese Gewichten 
den "Anfang" und das "Ende" des betrachteten Zeitraums schwächer. 
Dadurch minimiert sich der Leckeffekt, aber die Spektraleauflösung wird 
schlechter (die einzelnen Frequenzspitzen werden breiter). Daher gibt es 
auch so viele verschiedene Fensterfunktionen, jede hat ihre Vor- und 
Nachteile. Die passende zu Finden ist nicht immer ganz einfach.

von Chefkoch (Gast)


Lesenswert?

Ich denke es klärt sich - vorher noch eine weitere Frage:

Sehe ich es richtig, dass sich eine maximale Ausnutzung der Samplingrate 
erst ergibt, wenn Daten aus einem "1-Sekunden-Zeitraum" analysiert 
werden?

Meine Frage ergibt sich aus dem Gedankenexperiment, bei dem ich mir eine 
Samplingrate = 1kHz denke, aber nur einen Signalspeicher von 10 Samples. 
Auf diese 10 Samples wende ich eines der Fenster an und mache so 
gedanklich ein Signal mit einer Periode von 10ms (soweit richtig? {a}).

Was ist jetzt ausschlaggebend für die anwendbaren Frequenzen der 
Sin/Cosinus Funktionen {b}? Die Samplingrate oder die 10 ms des als 
periodisch angenommenen Signales?

von Falk B. (falk)


Lesenswert?

@ Chefkoch (Gast)

>Sehe ich es richtig, dass sich eine maximale Ausnutzung der Samplingrate
>erst ergibt, wenn Daten aus einem "1-Sekunden-Zeitraum" analysiert
>werden?

Nein. Man kann auch an einem 10s Zeitfenster interessiert sein, je nach 
Anwendung.

>Meine Frage ergibt sich aus dem Gedankenexperiment, bei dem ich mir eine
>Samplingrate = 1kHz denke, aber nur einen Signalspeicher von 10 Samples.
>Auf diese 10 Samples wende ich eines der Fenster an und mache so
>gedanklich ein Signal mit einer Periode von 10ms (soweit richtig? {a}).

Ja.

>Was ist jetzt ausschlaggebend für die anwendbaren Frequenzen der
>Sin/Cosinus Funktionen {b}? Die Samplingrate oder die 10 ms des als
>periodisch angenommenen Signales?

Beides. Die 1kHz Samplingrate begrenzt die sinnvolle Analyse auf 0,5 kHz 
im Spektrum. Die 10ms ergeben eine Frequenzauflösung von 100 Hz. Sprich, 
deine DFT spuckt nur 5 komplexe Ergebnisse aus. Bei 1s Messfenster hat 
man schon eine Frequenzauflösung von 1 Hz und somit 500 Ergebnisse.

von Chefkoch (Gast)


Lesenswert?

m´kay, bedeutet

a) die 5 Ergebnisse folgern aus 0,5kHz/100Hz ?

b) es wird auf 0Hz, 100Hz, 200Hz, 300Hz und 400Hz analysiert?

c) die ANZAHL der Ergebnisse ergeben sich direkt aus der Anzahl der 
Sample/2 ?

von Falk B. (falk)


Lesenswert?

@ Chefkoch (Gast)

>a) die 5 Ergebnisse folgern aus 0,5kHz/100Hz ?

Ja.

>b) es wird auf 0Hz, 100Hz, 200Hz, 300Hz und 400Hz analysiert?

500 Hz sind auch noch dabei sein.

>c) die ANZAHL der Ergebnisse ergeben sich direkt aus der Anzahl der
>Sample/2 ?

Sozusagen.

von Chefkoch (Gast)


Lesenswert?

>500 Hz sind auch noch dabei sein.

wenn die 1kHz Samplingrate mit 10 Datenpunkten zu 5 Werten führt und die 
Frequenz 0Hz mit Sicherheit dabei ist, müsste es doch bei 400Hz 
aufhören?
Oder lautet die Regel
- Auflösung = fs/N ;
- ANZAHL = ((fs/2)/Auflösung ) + 1
- bei obigem Gedamkenexperiment ANZAHL = 6 ?

>Sozusagen
bedeutet mathematisch nicht korrekt argumentiert, es läuft durch 
mathematische Zusammenhänge darauf hinaus?

von Detlef _. (detlef_a)


Lesenswert?

Hi,

1. Datenpunkt 0HZ = DC, rein reeler Wert
2. Datenpunkt 100Hz
3. Datenpunkt 200Hz
4. Datenpunkt 300Hz
5. Datenpunkt 400Hz
6. Datenpunkt 500Hz = Nyquist, rein reeler Wert
7. Datenpunkt conjuguiert complex zu 5. Datenpunkt
8. Datenpunkt conjuguiert complex zu 4. Datenpunkt
9. Datenpunkt conjuguiert complex zu 3. Datenpunkt
10.Datenpunkt conjuguiert complex zu 2. Datenpunkt

so is das
Cheers
Detlef

PS: Philosophie benötigt man bei der DFT nicht, die Mathematik reicht da 
aus.

: Bearbeitet durch User
von W.S. (Gast)


Lesenswert?

Chefkoch schrieb:
> Sehe ich es richtig, dass sich eine maximale Ausnutzung der Samplingrate
> erst ergibt, wenn Daten aus einem "1-Sekunden-Zeitraum" analysiert
> werden?

Ich schätze, du siehst das ziemlich falsch.
Ganz grob gesagt, sieht das bei der diskreten FT etwa so aus:

Man hat ein bestimmtes Zeitfenster vor sich, in welchem es eine Anzahl 
von Samples gibt, die den zeitlichen Verlauf der (eigentlich analogen) 
Eingangsspannung darstellen.

Mit der Fourier-Transformation will man nun bestimmen, wie man diesen 
Verlauf mittels überlagerter Sinus und Cosinus-Wellen darstellen kann.

Ausgangspunkt ist ein Sinus und ein Cosinus mit der Frequenz 
1/Zeitfensterlänge. Logisch, gelle?

Alle weiteren "Co- und Sinüsse" sind Vielfache dieser Grundfrequenz.

Aber das Steigern der "Oberwellen" bis zur Unendlichkeit ist Unsinn, 
denn die höchste darstellbare Frequenz ist die, deren Periode dem 
1/2fachen der Samplefrequenz entspricht.

Also kriegt man als Ergebnis ein Feld von Amplitudenwerten für all diese 
Co- und Sinuswellen heraus, das (mal abgesehen von der Frequenz NULL) 
von der Grundfrequenz (also 1/Fensterlänge) bis zur halben 
Samplefrequenz reicht. In Schritten der Grundfrequenz.

Wie grob oder fein das ausfällt, hängt nur davon ab, wieviele Samples 
(also Stützstellen) man in dem betrachteten Zeitfenster hat. Also wie 
lang das Fenster bei gegebener Samplefrequenz ist.

Wenn man nun aus den so ermittelten Amplitudenwerten der Sinus und 
Cosinus Wellen wieder die ursprünglichen Samples errechnen will, dann 
fällt dabei auf, daß in der nach Ablauf des Zeitfensters in der dazu 
benötigten Konvolution noch restliche Werte drinstecken, die quasi eine 
Art Rattenschwanz darstellen, der in das darauffolgende Zeitfenster 
hineinreichen. Entweder merkt man sich diese und addiert sie bei der 
nachfolgenden Wandlung oder es gibt eben ne Stoßstelle und damit ein 
Klirren.

W.S.

von Chefkoch (Gast)


Lesenswert?

>Sinüsse

Wie ein Mathelehrer mal sagte: "Der Sinus ist eine höfliche Beleidigung 
- Sie Nuss"

von Christian B. (casandro)


Lesenswert?

Die DFT geht immer von sich wiederholenden Signalen aus. Sprich sie tut 
immer so, als ob das Signal an den Enden sich wiederholen würde. Solch 
ein Signal kann nur Vielfache der Wiederholungsfrequenz enthalten, 
andere Frequenzen sind nicht möglich.

Du kannst Fensterfunktionen verwenden um das Problem zu dämpfen, aber 
Prinzipiell wirst Du immer das Problem bei der DFT/FFT haben.

von Lance (Gast)


Lesenswert?

Ein kleines Detail, das gerne verwirrt:

Um eine harmonische Schwingung darzustellen brauchst Du jeweils 3 
Informationen:
1
A * sin(w*t + phi)
2
mit A = Amplitude; w = 2*pi*f = omega = Kreisfrequenz; phi = Phasenwinkel

Bei der DFT ergeben sich nun die Frequenzen automatisch aus der 
Samplingfrequenz und der Anzahl der gesampelten Werte. Du brauchst pro 
Schwingung also nur noch 2 Informationen: Amplitude und Phase.

Angenommen, Du samplest N=10 Werte mit fs=1kHz.
Damit bekommst Du per DFT  ((N/2) + 1)  Wertepaare.
Aus diesen 10 Werten bekommst per DFT Du also 12 (!) Werte.
1
1.  Amplitude bei 0 * 1kHz / 10 =   0Hz
2
2.  Phase bei     0 * 1kHz / 10 =   0Hz
3
3.  Amplitude bei 1 * 1kHz / 10 = 100Hz 
4
4.  Phase bei     1 * 1kHz / 10 = 100Hz
5
5.  Amplitude bei 2 * 1kHz / 10 = 200Hz
6
6.  Phase bei     2 * 1kHz / 10 = 200Hz
7
7.  Amplitude bei 3 * 1kHz / 10 = 300Hz
8
8.  Phase bei     3 * 1kHz / 10 = 300Hz
9
9.  Amplitude bei 4 * 1kHz / 10 = 400Hz
10
10. Phase bei     4 * 1kHz / 10 = 400Hz
11
11. Amplitude bei 5 * 1kHz / 10 = 500Hz
12
12. Phase bei     5 * 1kHz / 10 = 500Hz

Die Information 2.) hat allerdings keinen Nutzen: was sagt Dir die Phase 
einer Schwingung mit 0Hz? Gar nichts!

Du kannst also den Gleichanteil (DC-Offset, 0Hz) sowie 5 harmonische 
Anteile darstellen.
Die Frequenzen dieser harmonischen Schwingungen sind ganzzahlige 
Vielfache von fs/N.

von Lance (Gast)


Lesenswert?

Ups, zu schnell, sorry!

Die Information 12.) (Phase bei 500Hz) ist immer 0, trägt also auch 
keinen Informationsgehalt. Warum ist das so? Weil die Frequenz dieser 
Schwingung bei genau halber Samplingfrequenz liegt und dort keine 
Phasenverschiebung mehr abgebildet werden kann.

von Detlef _. (detlef_a)


Lesenswert?

>>>
Damit bekommst Du per DFT  ((N/2) + 1)  Wertepaare.
Aus diesen 10 Werten bekommst per DFT Du also 12 (!) Werte.
<<<

Nein, bekommst Du nicht.

Die DFT macht aus n komplexen Eingangswerten n komplexe Ausgangswerte. 
Falls die Eingangswerte reel sind (Imaginärteil ist 0, Standard für 
gesampelte Zeitreihen), sind die Ausgangswerte so sortiert, wie ich das 
oben geschrieben habe: Die obere Hälfte der Ausgangswerte ist konjugiert 
komplex zur unteren Hälfte.

So ist das mit der DFT. Die FFT ist eine Berechnungsart für die DFT, da 
ändert sich an Obengesagtem nix.

Für rein reele Eingangssignale gibt es Verfahren, n reele samples mit 
einer n/2 komplexen FFT zu rechnen. Die obere Hälfte der Ausgangswerte 
ist, wie gesagt, konjugiert komplex zur unteren Hälfte, deswegen 
schmeisst man die weg. Damit passt dann das Ergebnis der FFT (n/2 
komplexe Werte) auf den Platz der Eingangswerte (n reele samples).

Das ist ein Spazialverfahren für reele Eingangswerte, DFT/FFT arbeiten 
auf komplexen Werten. Ohne letzteres kann man ersteres nicht kapieren.

Der erklärts' :
http://www.amazon.com/Fast-Fourier-Transform-Its-Applications/dp/0133075052

Cheers
Detlef

von Georg A. (georga)


Lesenswert?

Man kann es auch anders sagen: Die (komplexe) FFT ändert nichts am 
Informationsgehalt. Habe ich vorher n Samples, müssen es nachher auch n 
sein. Weil das komplexe Samples sind, sind es aber eigentlich n*2 
"Zahlenwerte", vorher wie nachher.

Wenn man nur reele Werte hat und die in die FFT steckt, sieht das 
oberflächlich betrachtet etwas komisch aus, weil da n (reele) Werte zu 
2*n Werten (real+imaginär) verdoppelt werden. Allerdings steckt die 
Info, dass die imaginären Eingangswerte alle 0 sind, in der Konjugation 
der Ausgangswerte drin. Die Info wird also nur redundant auf die 2*n 
verteilt.

IMO wird das ganze deutlich verständlicher, wenn man mal eine kleine 
komplexe FFT (16er oder sowas) nimmt und mal etwas mit den 
Eingangswerten rumspielt (sin und/oder cos, reel und oder imaginär) und 
dann schaut, wie und wo die Grundfrequenzen im Ergebnis auftauchen...

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.