Komplexe Signale aus natürlichen Schwingungen

Fourier-Reihe, Fourier-Analyse und Fourier-Synthese

Man kann ein Signal mit beliebig komplizierter Signalform aus einfacheren Signalformen zusammensetzen. Nennen wir das zusammengesetzte Signal ein komplexes Signal und die Teile, aus denen wir es zusammen setzen die Partialschwingungen. Die Fourier-Analyse soll als Ergebnis zeigen, welche Partialschwingungen im untersuchten komplexen Signal stecken.

Das mathematische Verfahren dieser Analyse geht auf den französischen Mathematiker Jean Baptiste Joseph Fourier zurück, der 1807 in seinem Aufsatz Mémoire sur la propagation de la chaleur dans les corps solide über die Wärmeleitung zu der – damals ziemlich umstrittenen – Annahme gelangt ist, dass man jede auch noch so komplexe Schwingung aus einfachen Sinus- bzw. Cosinus-Signalen zusammensetzen kann. Diesen Vorgang der Generierung eines komplexen Signals aus einfachen Bauelementen nennt man Fourier-Synthese. Bevor wir mit der praktischen Untersuchung abgetasteter Signale im Computer fortfahren, wollen wir uns kurz die mathematischen Hintergründe (so stark vereinfacht wie möglich) ansehen.

Das Werkzeug der Fourier-Synthese ist die Fourier-Reihe. Eine mathematische Reihe ist aus dem Mathematik-Unterricht bekannt: das ist eine Vorschrift, nach der man eine Zahl errechnet. Ein Beispiel für eine solche Reihe ist die Berechnung der Kreiszahl Pi:

\(\frac{1}{1}-\frac{1}{3}+\frac{1}{5}-\frac{1}{7}+\frac{1}{9}- \dots = \frac{\pi}{4}\)

Dieses Verfahren hat der Mathematiker Gottfried Wilhelm Leibniz 1682 beschrieben. Man kann damit Pi beliebig genau berechnen. Auf rund zwei Milliarden Stellen sind Computer-Freaks schon gekommen. Die Methodik der Reihenentwicklung war indischen Mathematikern bereits im 15. Jahrhundert bekannt. Natürlich scheuen Mathematiker die mit länglichen Reihen verbundene Schreibarbeit und schreiben deshalb solche Ausdrücke viel kürzer auf; die Formel für obige Reihe lautet dann:

\(\frac{\pi}{4} = \sum_{n=0}^{\infty} \left[ (-1)^n \cdot \frac{1}{2n+1} \right]\)

Man kann solche Reihen auch verwenden, um als Ergebnis statt einer einzelnen Zahl (hier: Pi-Viertel) eine Funktion zu erzeugen. Wenn es sich bei dem gewünschten Ergebnis um periodische Funktionen wie die von uns untersuchten Signale handeln soll, dann macht es einen gewissen Sinn, auch als Elemente der Reihe periodische Funktionen zu verwenden. Sinus und Cosinus sind solche Funktionen. So lässt sich jede beliebige periodische Funktion mit der Periodendauer T als Summe von (unendlich vielen) trigonometrischen Funktionen darstellen. Die Elemente der Reihe werden als Partialsummen bezeichnet.

Wenn eine solche periodische Funktion als Luftdruckschwankung physikalisch hörbar gemacht wird, dann bezeichnen wir sie als „Klang“ – auch wenn man umgangssprachlich häufig vom „Ton“, zum Beispiel eines Musikinstrumentes, spricht. In Instrumenten entsteht nämlich normalerweise kein einzelner sinusförmiger Ton, sondern ein Grundton gemischt mit einer Vielzahl von harmonischen Oberschwingungen. Dieses Gemisch klingt dann mehr oder weniger gut, sorgt aber dafür, dass der Ton C gespielt von einer Trompete anders klingt als von einer Geige. Insofern kann man auch von einer Klang-Synthese (die Zusammensetzung eines komplexen Klangs aus einfachen Schwingungen) und von einer Klang-Analyse (die Analyse, welche einzelnen Schwingungen mit welcher Stärke in einem Klang vorhanden sind) sprechen.

Nach Fourier ist es nun möglich, ein beliebiges periodisches Signal – zum Beispiel den Klang einer Trompete – aus einfachen Sinus- und Cosinus-Signalen zusammen zu setzen. Eine solche Fourier-Reihe (oder in der englischen Literatur Fourier-Series) sieht als mathematischer Ausdruck ziemlich kompliziert aus, ist aber auch nur eine Vorschrift, um den Funktionswert x(t) für einen bestimmten Zeitpunkt t zu errechnen:

\( x(t) = A_0 + A_1 \cdot \cos \left( 1 \cdot \frac{2 \pi t}{T} \right) + A_2 \cdot \cos \left( 2 \cdot \frac{2 \pi t}{T} \right) + \dots + A_k \cdot \cos \left( k \cdot \frac{2 \pi t}{T} \right) \\ + B_1 \cdot \sin \left( 1 \cdot \frac{2 \pi t}{T} \right) + B_2 \cdot \sin \left( 2 \cdot \frac{2 \pi t}{T} \right) + \dots + B_k \cdot \sin \left( k \cdot \frac{2 \pi t}{T} \right) \)

Weil es sich bei Sinus und Cosinus um trigonometrische Funktionen handelt, spricht man von einer trigonometrischen Reihe. Die für unsere Zwecke geeignete unabhängige Variable ist die Zeit t, weil wir Signale erzeugen, die sich in der Zeit ändern – zum Beispiel Wechselspannungen oder Schall. Wir bewegen uns mit anderen Worten im Zeitbereich oder in der Time-Domain, d.h. die x-Achse oder Abszisse ist in t geeicht.

Die Frequenz f der erzeugten Schwingung ergibt sich mit f = 1/T als Kehrwert der gewählten Periode T, nach der sich die Signalform wiederholt. Außer der Grundschwingung oder 1. Harmonischen, deren Cosinus-Anteil in der Fourier-Reihe durch das Element

\( A_1 \cdot \cos \left( 1 \cdot \frac{2 \pi t}{T} \right) \)

berechnet wird, gehören auch noch Oberschwingungen oder 2. und weitere Harmonische zum Signal; bei der Fourier-Reihe sind das immer ganzzahlige Vielfache der Grundschwingung. In der Formel wird der Cosinus-Anteil der 2. Harmonische mit dem Element

\( A_2 \cdot \cos \left( 2 \cdot \frac{2 \pi t}{T} \right) \)

errechnet. Die Oberschwingungen haben immer Frequenzen, die ganzzahlige Vielfache (mit dem Faktor k, wobei k eine natürliche Zahl ist) der Grundfrequenz sind.  Deshalb passt immer genau ein ganzzahliges Vielfaches der Oberschwingung in die Periode der Grundschwingung – also zum Beispiel zweimal die 2. Harmonische. Alle Harmonischen sind daher ebenfalls in der Periode T periodisch. Deshalb heißen sie auch Harmonische.

Zusätzlich zu jedem Cosinus-Anteil gibt es einen Sinus-Anteil mit gleicher Frequenz, der bei Bedarf für eine Phasenverschiebung sorgt. Im Argument (das ist der Ausdruck in der Klammer hinter cos und sin) stellen die Faktoren 2π/T oder 2πf die Kreisfrequenz ω Omega dar. Wenn wir ω in unsere Fourier-Reihe einsetzen, wird die ganze Sache schon ein wenig übersichtlicher. Dabei entspricht

\( (k \cdot \omega \cdot t)\quad \text{wegen} \quad \omega = \frac{2\pi}{T} \quad \text{genau} \quad \left( k \cdot  \frac{2 \pi t}{T} \right)\) \( x(t) = A_0 + A_1 \cdot \cos \left( 1 \cdot \omega \cdot t \right) + A_2 \cdot \cos \left( 2 \cdot \omega \cdot t \right) + \dots + A_k \cdot \cos \left( k \cdot \omega \cdot t \right) \\ + B_1 \cdot \sin \left( 1 \cdot \omega \cdot t \right) + B_2 \cdot \sin \left( 2 \cdot \omega \cdot t \right) + \dots + B_k \cdot \sin \left( k \cdot \omega \cdot t \right) \)

Um ein beliebiges komplexes Signal mit höchster Genauigkeit zu erzeugen, sind unendlich viele Oberschwingungen – und damit entsprechende Partialsummen – in der Fourier-Reihe erforderlich: diesen Umgang mit dem Unendlichen überlassen wir aber den Mathematikern und setzen unsere Signale in der Praxis aus einer endlichen Zahl von N Partialsummen zusammen. Der Preis dafür ist, dass unser Ergebnis nur noch eine Annäherung, eine Approximation des gewünschten Signals darstellt – je größer N wird, umso genauer ist diese Approximation. Natürlich ist es unbequem, eine große Zahl von Partialsummen nacheinander aufzuschreiben, deshalb gibt es dafür die allgemeine Form der Fourier-Reihe:

\( x_N(t) = A_0 + \sum_{k=1}^N \left( A_k \cdot \cos (k \omega t) + B_k \cdot \sin (k \omega t) \right) \)

Der Index k bei der Funktion markiert, dass es sich um die endliche Teilsumme 1 bis N handelt. Grundschwingung und jede Oberschwingung kommen im zusammengesetzten Signal in einer bestimmten Stärke vor, die durch die Amplitude ausgedrückt wird. In der angegebenen Fourier-Reihe sind die Amplituden der Cosinus-Partialsummen mit A bezeichnet – die Amplitude der Grundschwingung entsprechend mit A1, die der zweiten Harmonischen mit A2 u.s.w. Die Amplituden der Sinus-Partialsummen mit B, also B1 für die Grundschwingung, B2 u.s.w. bis zur Amplitude BN. Man kann ein komplexes Signal daher beschreiben, indem man seine Periodendauer T angibt und außerdem die Amplituden A1, A2 … AN und B1, B2 … BN seiner Partialschwingungen. Diese Amplitudenwerte werden üblicherweise als die Koeffizienten der Fourier-Reihe bezeichnet. Die Frequenzen der entsprechenden Partialschwingungen ergeben sich automatisch als k-fache Vielfache der Grundfrequenz; dieses k bezeichnet als Index den jeweiligen Koeffizienten; der maximale Wert des Index k ist N. Liegt zum Beispiel die Frequenz wegen einer Periodendauer von T = 1 ms bei

\( f = \frac{1}{T} = \frac{1}{1 \cdot 10^{-3}s} = 1000 Hz \)

bei 1000 Hz, dann liegt die 2. Harmonische bei 2000 Hz und die k-te Harmonische bei k*1000 Hz. Halt, ein Koeffizient aus der Fourier-Reihe fehlt uns noch, A0. Wie man erkennt, steht hinter diesem Koeffizienten (den es zudem nur als A-Ausführung gibt) kein Sinus- oder Cosinus-Faktor – hier schwingt also nichts. A0 ist das sogenannte konstante Glied der Reihe; physikalisch beschreibt es den Gleichspannungsanteil des Signals.

Nachdem wir nun wissen, wie man mit Hilfe der Fourier-Synthese nach der Vorschrift einer Fourier-Reihe ein bestimmtes komplexes Signal erzeugt, ist es ja auch interessant, die Koeffizienten eines unbekannten Signals zu ermitteln, um seine Zusammensetzung zu erforschen. Das leistet die Fourier-Analyse. Fouriers begnadeter Trick besteht darin, die Funktion des komplexen Signals, ausgedrückt durch eine Fourier-Reihe

\( x(t) = A_0 + \sum_{k=1}^N \left( A_k \cdot \cos (k \omega t) + B_k \cdot \sin (k \omega t) \right) \)

nacheinander mit einem zusätzlichen Cosinus- und einem Sinus-Signal cos(nt) und sin(nt) mit n = 1,2,3 … zu multiplizieren und über eine Signalperiode T zu integrieren. Damit ist die Fourier-Analyse definitiv keine einfache Mathematik mehr – es ist aber auch keine gänzlich unverständliche Geheimwissenschaft. Wir wollen deshalb den Versuch machen, die mathematischen Grundlagen von Fouriers Vorgehensweise zumindest im Ansatz zu verstehen und die Rechenschritte nachvollziehen.

Dabei wird vorausgesetzt, dass das Prinzip der hier mehrfach verwendeten Integration bekannt ist: das Integral einer Funktion berechnet innerhalb ggfs. angegebener Grenzen die Fläche zwischen der Funktion f(x) und der x-Achse.

Sollte die Funktion innerhalb der Integrationsgrenzen die x-Achse schneiden, dann muss das Integral für die Flächenberechnung an den Nullstellen der Funktion aufgeteilt werden. Das ist zum Beispiel bei Sinus- und Cosinus-Funktionen der Fall, weil sie ja Teile oberhalb und unterhalb der x-Achse haben. Flächen oberhalb der x-Achse ergeben positive Werte, Flächen unterhalb der x-Achse negative. Die (mathematische) Existenz negativer Flächen ist eine sehr wichtige Feststellung, denn daraus folgt, dass eine Funktion durchaus jede Menge Fläche aufweisen kann, ihr Integral in einem bestimmten Intervall aber trotzdem Null ergibt, weil die positiven und negative Flächen gerade gleich groß sind. So ist die Gesamtfläche einer kompletten Sinus-Periode beispielweise Null, weil sich die positive Fläche oberhalb der x-Achse und die negative Fläche unterhalb der x-Achse gleich groß sind und sich deshalb gerade aufheben.

Im Prinzip berechnet das Integral für jeden Funktionswert der Funktion f(x) eine unendlich schmale Säule zwischen x-Achse und Funktionswert und addiert die Flächen dieser Säulen. Mit dem Integral kann der genaue Wert der Fläche errechnet werden, wenn die Funktion bekannt ist. YouTube verspricht, dass man die Grundbegriffe der Integralrechnung in 10 Minuten lernen kann.

Damit die Sache nicht komplizierter und unübersichtlicher als vermeidbar wird, verabschieden wir uns für die Herleitung der Formeln vorübergehend von allem physikalen Ballast wie Zeit und Frequenz und verwenden statt dessen eine rein mathematische Größe als unabhängige Variable – ich habe Phi φ gewählt; das rein mathematische an diesem φ ist, dass es alles und nichts bedeuten kann – und eben auch t mal irgendwas. Da Sinus und Cosinus trigonometrische Funktionen sind, bezeichnet φ im Argument dieser Funktionen einen Winkel, und zwar in Radian-Darstellung von 0 bis 2π. Entsprechend wird auch die vollständige Periode bei der Integration nicht durch eine konkrete Zeit T, sondern als 0 bis 2π dargestellt. Mit dieser Vereinfachung notieren wird die zu untersuchende Fourier-Reihe

\( x(\varphi) = A_0 + \sum_{k=1}^N \left( A_k \cdot \cos (k \varphi) + B_k \cdot \sin (k \varphi) \right) \)

Betrachten wir zur Bestimmung der Ak-Koeffizienten zunächst den Cosinus-Fall. Dazu wird die Fourier-Reihe mit cos(nφ) mit n = 1,2,3 … multipliziert und über eine Periode 0 bis 2π integriert. Manchmal wird auch in den Grenzen von –π bis +π integriert – das spielt keine Rolle, solange die Integrationsperiode genau 2π bleibt. Das liefert uns

\(
\underbrace{ \int_0^{2\pi} x(\varphi) \cdot \cos (n\varphi) d\varphi }_{(1)} = \underbrace{ A_0 \int_0^{2\pi} \cos (n\varphi) d\varphi }_{(2)} + \sum_{k=1}^N \left[ \underbrace{ A_k \int_0^{2\pi} \cos (k\varphi) \cdot \cos (n\varphi) d\varphi }_{(3)} + \underbrace{ B_k \int_0^{2\pi} \sin (k\varphi) \cdot \cos (n\varphi) d\varphi }_{(4)} \right]
\)

Das Ergebnis unserer Multiplikation und Integration sieht kompliziert aus, reduziert sich aber, wenn man die drei Summanden auf der rechten Seite der Gleichung nacheinander abarbeitet; die Ziffern (1) bis (4) unterhalb der Gleichung sollen für Übersicht bei den zugehörigen Erklärungen sorgen:

(1) Den Ausdruck auf der linken Seite der Gleichung lassen wir zunächst einmal, wie er ist.

(2) Die Gesamtfläche einer trigonometrischen Funktion ist bei der Integration über exakt eine vollständige Periode (Intervall von 0 bis 2π oder von –π bis +π) gerade Null, weil Sinus und Cosinus unterhalb und oberhalb der Nulllinie gleich große Flächen aufweisen:

\( \int_0^{2\pi} \cos (n\varphi) d\varphi = 0 \)

Das Integral über diese beidenTeilflächen liefert daher den Faktor Null. Durch die Multiplikation mit Null verschwindet der A0-Koeffizient aus der Formel.

(3) Das Integral des Produktes zweier Cosinus-Funktionen ist Null, wenn die Argumente der beiden Funktionen ungleich sind. Nur in dem Fall, dass die Argumente der beiden Funktionen gleich sind, ergibt das Integral einen anderen Wert; im Fall der Integration im Intervall von 0 bis 2π ist das Ergebnis π. Mathematisch aufgeschrieben sieht das so aus:

\( \int_0^{2\pi} \cos (k\varphi) \cdot \cos (n\varphi) d\varphi = \left\{ {0 \quad \text{für} \quad k \not= n} \atop {\pi\quad \text{für} \quad k = n} \right. \)

Außerdem gelten noch die folgenden beiden Regeln:

\( \int_0^{2\pi} \sin (k\varphi) \cdot \sin (n\varphi) d\varphi = \left\{ {0 \quad \text{für} \quad k \not= n} \atop {\pi\quad \text{für} \quad k = n} \right. \) \( \int_0^{2\pi} \cos (k\varphi) \cdot \sin (n\varphi) d\varphi = 0 \quad \text{für alle k, n} \)

Wer wissen will, warum das so ist, muss in die Rechenregeln für die Produkte von Winkel­funktionen schauen. Diese Eigenschaften haben wir der Tatsache zu verdanken, dass zwischen Sinus und Cosinus ein Winkel von 90 Grad liegt. Man könnte auch sagen, dass sie im rechten Winkel zueinander stehen oder dass sie orthogonal sind. Sie werden deshalb auch als Orthogonalitätsrelation bezeichnet – ein Ausdruck, der aus der Vektorgeometrie stammt.

Angewendet auf unseren Summanden Nummer (3) heißt das, dass das Integral in

\( \sum_{k=1}^N A_N \int_0^{2\pi} \cos (k\varphi) \cdot \cos (n\varphi) d\varphi \)

für alle Fälle mit n ≠ k Null wird und ausschließlich dann ein Ergebnis hat, wenn n = k ist. Dieses Ergebnis ist π. Deshalb ergibt sich für die Summe

  \( A_N \int_0^{2\pi} \cos (k\varphi) \cdot \cos (n\varphi) d\varphi = \pi \cdot A_n\)

(4) Beim dritten Summanden wird die Produktregel für sin(kφ)·cos(nφ) angewendet. Demnach kann man schreiben:

\( \sum_{k=1}^N A_N \int_0^{2\pi} \sin (k\varphi) \cdot \cos (n\varphi) d\varphi \)

Weil das Produkt für jede Kombination aus k und n immer Null ist, selbst dann, wenn n = k ist, verschwindet das Integral diesmal praktischerweise ganz.

Zusammengefasst bleibt von der anfangs so komplizierten Formel (linke und rechte Seite der Gleichung) deshalb lediglich

\( \int_0^{2\pi}  x(\varphi) \cdot \cos (n\varphi) d\varphi = \pi \cdot A_n\)

übrig, was man jetzt leicht nach dem gesuchten Koeffizienten An umstellen kann:

\( A_n = \frac{1}{\pi} \int_0^{2\pi}  x(\varphi) \cdot \cos (n\varphi) d\varphi \quad \text{ mit n = 1, 2, 3 …}\)

Damit haben wir (und lange vor uns der geniale Fourier) eine Formel für die Bestimmung eines beliebigen Koeffizienten An der Fourier-Reihe einer unbekannten Funktion x(φ) gefunden.

Für die Bestimmung der Bn-Koeffizienten wird das gesamte Spiel mit der Multiplikation mit sin(nφ) und anschließender Integration wiederholt. Das brauchen wir jetzt nicht nochmals schrittweise nachzuvollziehen (wer Lust hat, kann es auf einem Blatt Papier ausprobieren). Es ergibt sich:

\( B_n = \frac{1}{\pi} \int_0^{2\pi}  x(\varphi) \cdot \sin (n\varphi) d\varphi \quad \text{ mit n = 1, 2, 3 …}\)

Was noch fehlt ist der Gleichspannungs-Koeffizient A0. Dazu wird im Prinzip der Mittelwert der gesamten Funktion im Intervall 0 bis T berechnet. Wir haben ja die Fourier-Reihe bereits mit cos(nφ) multipliziert und unter Nummer (2) festgestellt, dass

\( A_0 \int_0^{2\pi} \cos (n\varphi) d\varphi = 0 \quad \text{für alle n > 0} \)

für n = 1,2,3 u.s.w. immer Null ergibt und aus der Gleichung heraus fällt, weil das Integral über eine oder mehrere komplette Perioden eines Cosinus stets gleich große Flächen unterhalb und oberhalb der x-Achse hat, also Null ergibt. Was passiert eigentlich, wenn wir n = 0 einsetzen? Weil cos(0) = 1 ist, ergibt das Integral im Intervall 0 bis 2π in diesem Fall 2π und die Gleichung verkürzt sich auf

\( \int_0^{2\pi} x(\varphi) d\varphi = 2\pi \cdot A_0 \quad \text{für n = 0} \)

Umgestellt ergibt sich für A0:

\( A_0 = \frac{1}{2\pi} \int_0^{2\pi} x(\varphi)d\varphi \)

Das entspricht einer ganz normale Mittelwertbildung, deren Ergebnis auf die Länge des Integrationsintervalls, nämlich 2π, normiert wird. Wir haben gesehen, dass der Index der Koeffizienten die Frequenz darstellt, A2 meint die doppelte Frequenz der Grundschwingung. Das stimmt auch hier: A0 gilt für 0 Hertz, also den Gleichspannungsanteil des untersuchten Signals.

Zum Schluss können wir unserer mathematisch neutralen Variablen φ ihre physikalische Bedeutung zurück geben und setzen an ihrer Stelle ω·t ein. Auch die Integrationszeit benennen wird wieder nach der Periode T um. Da T = 2π ist, wird aus dem Faktor 1/π jetzt 2/T. Damit sind also die Formeln für die Fourier-Koeffizienten der unbekannten Funktion x(t) komplett:

\(
\begin{eqnarray}
A_0 &=& \frac{1}{T} \int_0^T x(t)dt \\
A_n &=& \frac{2}{T} \int_0^T x(t) \cdot \cos (n \omega t) dt\\
B_n &=& \frac{2}{T} \int_0^T x(t) \cdot \sin (n \omega t) dt \quad \text{ mit n = 1, 2, 3 …}
\end{eqnarray}\)

Mathematisch wird bei der Fourier-Analyse durch die Approximation dafür gesorgt, dass das mittlere Fehlerquadrat zwischen einer beliebigen periodischen Funktion und der Summe der Cosinus- und Sinus-Partialschwingungen minimiert wird. Physikalisch interpretiert stellen die Koeffizienten die Amplituden von Cosinus- und Sinus-Schwingungen dar, aus denen das komplexe Signal zusammengesetzt ist. So etwas kann man – und hat man – rein mechanisch mit Getrieben, Rädern und Hebeln aufgebaut, zum Beispiel um Ebbe und Flut zu simulieren.

Wer sich die Hintergründe der Fourier-Analyse viel ausführlicher und genauer ansehen will, als wir das hier gemacht haben, der sollte sich die Einführung von Heinzpeter Hablützel und Ulrich Gysel zur Darstellung und Analyse periodischer Signale ansehen.

Was wir von diesem Ausflug in die „analoge“ Berechnung von Funktionen mitnehmen, ist der Fourier’sche Ansatz, durch Multiplikation mit einer geeigneten Sinus- oder Cosinus-Basisfunktion das gesuchte Teilsignal aus einem komplexen Gesamtsignal herauszufischen.