Fourier-Analyse


Periodische Daten


 Sinus   Cosinus   Oberton
 Dreieck   Sägezahn
 Rechteck   Impuls 1:3
Wählen sie die Form der periodischen Daten.

Die X-Achse bezeichnet die Zeit in einem beliebigen Maßstab (z.B. 0..1ms für eine Audio-Schwingung von 1kHz)
Es wird angenommen, dass diese Daten periodisch wiederholt werden, d.h. dass die gleichen Daten in den Zeit-Intervallen 1..2, 2..3 usw. wiederholt werden.

Fourier-Analyse


So kann man ein Spektrum darstellen, welches mittels Fourier-Analyse berechnet wurde.

Die Zahlen der X-Achse bezeichnen Vielfache der Grund-Frequenz:
f[0] entspricht einem konstanten Faktor, f[1] der Grundfrequenz, f[2] der doppelten Grundfrequenz (1 Oktave) usw.
Die Y-Achse beschreibt die Amplitude der jeweiligen Welle.

Sinus-Faktoren werden blau dargestellt, Cosinus-Faktoren rot   (↓ Fourier‑Polynome)

Synthese


Hier wird gezeigt, wie man aus den Fourier-Faktoren wieder ein periodisches Signal zusammensetzen kann.

Um die Methode anschaulich darzustellen, werden hier nur wenige Faktoren verwendet. Wenn man 10 oder mehr Faktoren verwendet, würde man keinen Unterschied zwischen den vorgegebenen Daten und den mit Synthese berechneten Daten erkennen.

Tipp:  Das Kapitel ↓ Fourier‑Synthese bietet ein Live-Beispiel mit wesentlich mehr Möglichkeiten der Gestaltung.

Fourier-Analyse mit Tabellen-Kalkulation


Hier wird vorgestellt, wie man die Aufgabe mit 'Benutzer-definierten' Funktionen lösen kann. Die Anwendung erfordert lediglich Grundkenntnisse der Tabellen-Kalkulation.


Mit LibreOffice und OpenOffice gibt es leider erhebliche Probleme: Die Basic-Funktionen sind (nur) mit manchen älteren Versionen korrekt verwendbar.
Neuere Versionen von LibreOffice laden den Basic-Text, können jedoch damit nicht rechnen. Es scheint immerhin möglich, die Funktionen nach einigen Änderungen wieder richtig zu berechnen.
Neuere Versionen von OpenOffice bieten offenbar keine Unterstützung für das hier unverzichtbare Range-Objekt und sind daher auf absehbare Zeit für diese Aufgabe nicht verwendbar.



 ABC
1Daten
2tωty
30=A3*2*PI()=SIN(B3)
4=A3+1/100=A4*2*PI()=SIN(B4)
5=A4+1/100=A5*2*PI()=SIN(B5)
 ⇓⇓ ⇓⇓⇓⇓
 103 =A102+1/100=A103*2*PI()=SIN(B103)
In anderen Anwendungen wird oft eine bestimmte Anzahl von Daten verlangt, z.B. genau 63 oder genau 127 Daten. Das ist für das hier gezeigte Beispiel nicht notwendig.



Das Diagramm ist zur Berechnung nicht notwendig, dient jedoch zur Kontrolle der verwendeten Daten und später zum Vergleich mit den (mit Hilfe der Fourier-KJoeffizienten berechneten) ↓ Synthese-Daten.



Fügen sie den kompletten ↗ Basic-Text in das Modul ein.

Suchen sie die Zeile
Option VBASupport 1
In LibreOffice oder OpenOffice muss ein allfälliges Kommentar-Zeichen (Single quote) vom Beginn der Zeile entfernt werden.
In MS-Excel muss man an den Beginn dieser Zeile ein Kommentar-Zeichen setzen:
' Option VBASupport 1

Danach kann man die beiden Funktionen verwenden, so wie in den nächsten Absätzen gezeigt wird. Es empfiehlt sich, die Kalkulations-Datei zu speichern. In manchen Excel-Versionen muss man die Datei schließen und nochmals öffnen.


Fourier-Analyse

Hier wird gezeigt, wie man mit der Funktion PST_Fourier_Analyse() die Fourier-Koeffizienten beliebiger Daten berechnen kann.

Voraussetzung: Die Verwendung von → Basic-(Makro)-Funktionen wurde für diese Datei erlaubt und der ↗ Basic-Text wurde in ein Basic-Modul importiert.
 EFG
1Fourier-Koeffizienten
2kab
30 =PST_Fourier_Analyse($C$3:$C$103;$E3;1) =PST_Fourier_Analyse($C$3:$C$103;$E3;0)
4=E3+1 =PST_Fourier_Analyse($C$3:$C$103;$E4;1) =PST_Fourier_Analyse($C$3:$C$103;$E4;0)
5=E4+1 =PST_Fourier_Analyse($C$3:$C$103;$E5;1) =PST_Fourier_Analyse($C$3:$C$103;$E5;0)
 ⇓⇓ ⇓⇓⇓⇓
10=E9+1 =PST_Fourier_Analyse($C$3:$C$103;$E10;1) =PST_Fourier_Analyse($C$3:$C$103;$E10;0)

Formatieren sie die im Bereich F3:G10 berechneten Fourier-Koeffizienten zur besseren Übersicht mit 3-4 Nachkomma-Stellen.

Die Funktion PST_Fourier_Analyse() ist genauso zu verwenden wie jede andere (Standard)-Funktion der Tabellen-Kalkulation. Die Anwendung erfordert keinerlei fortgeschrittenen Kenntnisse.
Mit den oben angegeben Daten sollte für b[1] in Zelle G4 ein Wert nahe 1 berechnet werden, für alle anderen Faktoren Werte nahe 0


Fourier-Synthese

Wenn die Fourier-Koeffizienten vorgegeben sind oder berechnet wurden, dann kann man die Fourier-Analyse umkehren und daraus periodische Daten berechnen.

Programmieren sie die 'Zusammensetzung' der Daten so wie rechts gezeigt.
 IJK
1Fourier-Synthese
2tωty
30=I3*2*PI() =PST_Fourier_Synthese($G$3:$G$10;$F$3:$F$10;J3)
4=I3+1/100=I4*2*PI() =PST_Fourier_Synthese($G$3:$G$10;$F$3:$F$10;J4)
 ⇓⇓ ⇓⇓⇓⇓
103=I102+1/100=I103*2*PI() =PST_Fourier_Synthese($G$3:$G$10;$F$3:$F$10;J103)

Mit einem Diagramm kann man die Ergebnisse am besten beurteilen:
Erzeugen sie ein XY-Diagramm der Synthese-Daten so wie im ↑ Absatz 'Diagramm der Daten' in diesem Kapitel beschrieben.
Wenn das Beispiel funktioniert, kann man damit einige ↓ Experimente ausführen.

Experimente


Erfahrene AnwenderInnen können die Anzahl der untersuchten Datenpunkte und der berechneten Koeffizienten noch weit mehr vergrößern als hier vorgeschlagen.
Damit kann die Rechenzeit jedoch bis in den Minuten-Bereich wachsen, und je nach Programm und Betriebssytem können nicht vorhersagbare Probleme auftreten: Solche (und andere heikle) Experimente führt man daher am besten auf einem → Virtuellen PC aus.


Beispiele für Formeln zur Erzeugung verschiedener Test-Daten:
=SIN(B3)
=(SIN(B3)-SIN(5*B3))/2
=COS(2*B3)+SIN(3*B3)
=WENN(A3<1/2;1;0)
=WENN(A3<1/3;1;0)
=A3
=2*WENN(A3<1/2;A3;1-A3)
=4*WENN(A3<=1/4;A3;WENN(A3<=3/4;1/2-A3;A3-1))
=SIN(B3)+ZUFALLSZAHL()/2-0,25
=ZUFALLSZAHL()*2-1

Anregung: Interpretieren sie die Ergebnisse. Erfinden sie neue Formeln und versuchen sie, die Form der damit erzeugten Daten vorherzusagen.
Schmale Impulse mit langen Pausen stellen maximale Anforderungen (Härte-Test). Mit Fourier-Experimenten kann man herausfinden, warum das so ist.
Die Funktion ZUFALLSZAHL() wird mit Taste F9 neu berechnet.



So wird die Anzahl der Daten verringert:
Ändern sie die Formel in Zelle A4
=A3+1/50
und füllen sie die Formel nach unten bis zur letzten programmierten Zeile aus.
Ändern sie die Formeln in den Zellen F3 und G3
F3 = PST_Fourier_Analyse($C$3:$C$53;$E3;1)
G3 = PST_Fourier_Analyse($C$3:$C$53;$E3;0)
und füllen sie beide Formeln nach unten bis zur letzten Zelle (G10 oder G23) aus.

In der Praxis füllt man die Spalte C mit typischen Messdaten und variiert die Anzahl der Daten und der berechneten Koeffizienten so lange, bis die gewünschte Genauigkeit mit minimalem Aufwand geboten wird.



Berechnen sie mehr Faktoren als im ursprünglichen Beispiel vorgesehen:
Füllen sie die Formeln des Bereichs E4:G4 nach unten bis Zeile 23 aus: Nun werden alle Faktoren bis k=20 berechnet.
Ändern sie die Formel in Zelle K3:
=PST_Fourier_Synthese($G$3:$G$23;$F$3:$F$23;J3)
und füllen sie die Formel nach unten bis Zeile 103 aus: Nun werden alle Koeffizienten bis k=20 verwendet.

Mit zunehmender Anzahl von Faktoren kann man auch komplizierte Daten beliebig genau beschreiben.
Da die Fourier-Analyse oft (z.b: mit Audio-Daten) Live ausgeführt wird, muss man allerdings die Rechenzeit begrenzen. Im Extremfall ist es nicht sinnvoll, mehr Faktoren zu berechnen als Daten vorliegen.


Sägezahn:
Tragen sie diese Formeln ein
F3 = 1/2
G4 = -1/(E4*PI())
und füllen sie die Formel von G4 nach unten bis zum Ende des Bereichs aus.
Die Formeln in mathematischer Schreibweise:
a[0] = 1/2
b[k] = -1/(k*Pi)
Man kann auch einige andere Sägezahn-Funktionen definieren, z.B. fallend und/oder symmetrisch zur Null-Linie.

Einweg-Gleichrichter
Tragen sie diese Formeln ein
F3 = 1/PI()
G4 = 1/2
F5 = -REST(E5+1;2) * 2/((E5*E5-1)*PI())
und füllen sie die Formel von F5 nach unten bis zum Ende des Bereichs aus.
Die Formeln in mathematischer Schreibweise:
a[0] = 1/Pi
b[1] = 1/2
a[2,4,6,..] = -2/((k*k-1)*Pi)

Brücken-Gleichrichter
Tragen sie diese Formeln ein
F3 = 2/PI()
F5 = -REST(E5+1;2) * 4/((E5*E5-1)*PI())
und füllen sie die Formel von F5 nach unten bis zum Ende des Bereichs aus.
Die Formeln in mathematischer Schreibweise:
a[0] = 2/Pi
a[2,4,6,..] = -2/((k*k-1)*Pi)


Beispiele einer Live-Fourier-Analyse bieten u.a. viele Audio-Player-Programme, z.B. der Windows Media-Player mit Menü  Ansicht / Visualisierungen / Streifen und Wellen / Streifen

Interaktive Fourier-Synthese

a0 +0.000
a1 +0.000
a2 +0.000
a3 +0.000
a4 +0.000
a5 +0.000
a6 +0.000
a7 +0.000
a8 +0.000
a9 +0.000
b0 +0.000
b1 +0.000
b2 +0.000
b3 +0.000
b4 +0.000
b5 +0.000
b6 +0.000
b7 +0.000
b8 +0.000
b9 +0.000
Jeder Fourier-Koeffizient lässt sich mit einem Schieberegler steuern.
Mit diesen Tasten werden die Regler auf einfache bekannte Signale eingestellt:

(Diese Grafik wurde mit → SVG, → CSS und → Javascript programmiert)


Mit der Taste Störung kann man zufälliges Rauschen simulieren.
Nach einem Reset werden damit alle Faktoren verändert.
Wenn mindestens 1 Faktor ≠0 ist, dann werden alle verwendeten Faktoren verändert, die nicht verwendeten Faktoren bleiben =0
Die beiden AM-Tasten demonstrieren die Überlagerung von Wellen (  Amplituden-Modulation).


(Diese Formel wurde mit → MathML programmiert)



Der Faktor a[0] bezeichnet einen konstanten (von der Zeit t unabhängigen) Beitrag. An seiner Stelle ist in der Formel der Faktor a[0]/2 vor der Summe angegeben.


Die 'Steilheit' der Oberwellen nimmt mit k zu. Daher kann man mit mehr Elementen der Reihe immer schnellere Änderungen des Signals erzeugen.
Umgekehrt braucht man umso mehr Oberwellen (Elemente der Reihe), je steiler (abrupter) sich ein Signal ändern soll. Das kann man mit den Beispielen diese Seite gut ausprobieren:
Eine Sinus-Welle wird bereits mit 1 Element exakt (!) dargestellt.
Eine Dreiecks-Schwingung kann man schon mit 3-5 Elementen gut annähern.
Die steilen Anstiege von Rechtecks-, Sägezahn- und Impuls-Wellen lassen auch mit 10 Elementen noch Abweichungen erkennen.
Die höchsten Anforderungen stellen kurze, steile 'Nadel-Impulse' mit: Das ist nicht nur ein mathematischer Formalismus sondern physikalische Realität: Mit Nadel-Impulsen kann man Frequenzen erzeugen, die weit über die Wiederhol-Frequenz der Impulse hinausgehen.



Tragen sie die erste der unten angegeben Formeln in die Zelle K3 des Beispiels ein und füllen sie die Formel nach unten bis zum Ende der Tabelle (z.B. bis Zeile 103) aus:
Damit wird ein Fourier-Polynom bis k=1 (Grundwelle) berechnet.

= $F$3 + $G$4*SIN(J3) + $F$4*COS(J3)
= $F$3 + $G$4*SIN(J3) + $F$4*COS(J3) + $G$5*SIN(2*J3) + $F$5*COS(2*J3)
= $F$3 + $G$4*SIN(J3) + $F$4*COS(J3) + $G$5*SIN(2*J3) + $F$5*COS(2*J3) + $G$6*SIN(3*J3) + $F$6*COS(3*J3)
In der 3.Zeile wird die Formel für die ersten 3 Elemente der Fourier-Reihe angegeben. Nach dem Eintragen und Ausfüllen kann man im Diagramm der erzeugten Daten bereits deutlich die Wirkung erkennen.

Sie sind eingeladen, die Formel um weitere Elemente zu ergänzen. Gehen sie dabei langsam, sorgfältig und immer nur um 1 Element weiter, denn Eingabe-Fehler sind in langen Formeln schwer zu finden.