Diskrete Fourier-Transformation

64 Abtastwerte eines Tons und ihre diskrete Fourier-Transformation. Schiebst du den Ton von einer ganzen Anzahl von Zyklen weg, verschmiert ein sauberer Balken über das gesamte Spektrum. Klick ein Bin an. Du siehst, wie es aus 64 aneinandergereihten Pfeilen entsteht. Schalte ein Fenster ein, um zu sehen, was es bringt und was es kostet.

Interaktive Simulation wird geladen...

Lektion

Die Theorie — Diskrete Fourier-Transformation

Die diskrete Fourier-Transformation von N Abtastwerten x0 … xN−1 ergibt N Zahlen Xk = Σn xn e−2πikn/N, eine pro Bin k. Jede misst, wie viel einer Welle das Signal enthält, die in den N Abtastwerten k Zyklen vollendet. Sie behandelt die Abtastwerte als eine Periode eines sich wiederholenden Signals. Daher ist sie exakt für Töne, die ganze Zyklen vollenden. Jeden anderen Ton verteilt sie über die Bins: Leckeffekt. Ein Fenster wn multipliziert zuerst die Abtastwerte, um die Nahtstelle abzumildern.

Was die einzelnen Symbole bedeuten

A_k
die von Bin k abgeleitete Amplitude, die die Balken zeigen: 2|Xk|/(N·G) für 0 < k < N/2, sowie |Xk|/(N·G) bei k = 0 und k = N/2, die kein Spiegel-Bin zum Teilen haben. Ein Ton mit Amplitude 1 auf einem Bin ergibt 1
G
der kohärente Gewinn des Fensters, also der Mittelwert von wn: 1 ohne Fenster, ½ für Hann
Setzt voraus
Jeder Ton beginnt an seiner Spitze als Kosinus. Die Werte an den fernen Flanken verschieben sich mit der Startphase. Bin 31 des Tons mit 10,5 Zyklen liegt bei einem Kosinus 26,3 dB unter dem höchsten Balken und bei einem Sinus 31,2 dB darunter. Die 81 % in den beiden nächsten Bins bewegen sich hingegen kaum. Das Hann-Fenster ist die periodische Form ½ − ½cos(2πn/N), deren Transformation exakt drei Bins umfasst.

Einen halben Bin daneben ergießt sich ein reiner Ton in jedes Bin 🖖

Klick Auf einem Bin: 64 Abtastwerte eines Tons, der exakt 10 Zyklen vollendet. Seine gesamte Energie sitzt in Bin 10, jeder andere Balken ist null. Klick nun Genau dazwischen. Der Ton ist derselbe, nur dass er 10,5 Zyklen vollendet. Das Spektrum wird jetzt in Dezibel angezeigt. Die Bins 10 und 11 halten zusammen 81,10 % der Energie. Der Rest hat sich überallhin verteilt. Bin 31 ist mehr als zwanzig Bins entfernt und liegt nur 26,3 dB unter dem höchsten Balken. Das entspricht etwa einem Zwanzigstel seiner Höhe. Kein einziger Balken ist irgendwo null. Betrachte die Nahtstelle im oberen Bereich. Die Transformation behandelt die 64 Abtastwerte wie eine Schleife, die sich unendlich wiederholt. 10,5 Zyklen schließen jedoch nicht bündig ab, sodass die Schleife an jeder Naht springt. Ein Sprung lässt sich nicht aus wenigen Frequenzen aufbauen. Er braucht sie alle. Klick bei jedem Preset Schleife abspielen und du wirst es hören: ein sauberes Pfeifen auf einem Bin, und bei der Einstellung genau dazwischen ein Kratzen bei 125 Hz, der Frequenz, mit der die Nahtstelle wiederkehrt.

Verschiebst du einen Ton um ein halbes Bin, zeigt der höchste Balken ein Drittel zu wenig an 🖖

Klick Die Pfeile biegen sich. Jeder Balken ist eine Summe aus 64 Pfeilen, einer pro Abtastwert. Pfeil n entspricht wnxn, gedreht um k·n/64 einer Umdrehung im Uhrzeigersinn. Ein negativer Abtastwert lässt ihn also in die entgegengesetzte Richtung zeigen. Der Balken gibt an, wie weit das Ende der Kette von ihrem Anfang entfernt ist. Ein Kosinus besteht aus zwei Hälften, die sich in entgegengesetzte Richtungen drehen. Wenn der Ton exakt k Zyklen vollendet, wird eine Hälfte jedes Pfeils wieder in dieselbe Richtung gedreht. Die Hälften reihen sich in einer geraden Linie der Länge 32 auf, und der Balken zeigt 100 %. Einen halben Bin daneben biegt sich diese Linie über die 64 Abtastwerte zu einem Halbkreis. Die Enden eines Halbkreises sind nur 2/π seiner Bogenlänge voneinander entfernt, also 63,7 %. Das ist der „Scalloping-Verlust“ von 3,92 dB in Fredric Harris' Fenstertabelle von 1978. Die andere Hälfte jedes Pfeils dreht sich 21,5-mal im Kreis und hebt sich fast auf. Das verschiebt den Wert auf die 64,61 %, die die Seite anzeigt. Der Ton ist so laut wie immer. Der höchste Balken zeigt ihn um ein Drittel zu niedrig an, nämlich mit −3,79 dB, rein aufgrund der Position seiner Frequenz. Verschiebst du ihn ein ganzes Bin, biegt sich die Linie zu einem vollen Kreis und schließt sich. Die schnelle Hälfte schließt sich mit ihr. Genau deshalb lässt ein Ton auf einem Bin jeden anderen Balken bei exakt null.

Das Ausblenden der Enden legt einen 316-mal leiseren Ton frei 🖖

Klick Ein leiser Nachbar. Das ist ein zweiter Ton, 50 dB schwächer und mit 316-mal kleinerer Amplitude, der exakt 20 Zyklen vollendet. Bin 20 liegt 22,7 dB unter dem höchsten Balken. Das ist jedoch das Leck des ersten Tons, und Bin 20 ragt nicht einmal über das benachbarte Bin 19 hinaus. Wechsle das Fenster zu Hann. Es blendet die Abtastwerte von null ein und wieder aus, sodass die Schleife keinen Sprung aufweist. Das Leck fällt in sich zusammen. Bin 31 sinkt von 26,3 dB unter dem Spitzenwert auf 98,9 dB darunter. Bin 20 erhebt sich als eigene Spitze und zeigt 0,32 % der Amplitude von Ton 1, was genau diesen 50 dB entspricht. Das Fenster fordert dafür einen Preis in der Breite. Ein Ton auf einem Bin deckt nun drei ab. Ein Ton exakt auf Bin 10 behält daher nur noch 66,67 % seiner Energie im eigenen Bin. Klick Auf einem Bin. Die Tabelle unter den Ergebnissen zeigt dies neben den 100 % des rechteckigen Fensters. Klick Zwei Töne, Hann: zwei gleiche Töne im Abstand von zwei Bins. Bin 11 dazwischen zeigt 100,00 % und ist damit so hoch wie die beiden anderen. Ohne das Fenster ist dieses Bin leer. Hann tauscht eine drei Bins breite Spitze gegen saubere Flanken ein. Das ist der richtige Tausch, wenn das Gesuchte schwach ist. Es ist der falsche, wenn es dicht daneben liegt.

Aufgabe vollständig gelöst

  1. Korrigiere einen Messwert und beseitige dann die Notwendigkeit dafür 4 Schritte

    Ein Analysator tastet 8.000-mal pro Sekunde ab und transformiert jeweils 64 Abtastwerte, ohne Fenster. Du speist einen Testton mit 1.312,5 Hz ein. Der höchste Balken zeigt 0,32 an. Wie groß ist die wahre Amplitude des Tons, und wie viele Abtastwerte pro Block würden den Ton exakt auf ein Bin setzen? Klick Die Pfeile biegen sich: Die Seite spielt einen Ton mit dieser Frequenz.

    Öffne diese Aufgabe im Tool

    1. Die Bins liegen 8.000/64 auseinander. Der Ton vollendet also 10,5 Zyklen pro Block, genau zwischen den Bins 10 und 11.

    2. Genau in der Mitte zeigt der höchste Balken der Seite 64,61 % des Tons an. Teile das heraus:

    3. Der Ton landet auf einem Bin, wenn ein Block eine ganze Anzahl seiner Zyklen enthält. Mit 128 Abtastwerten liegen die Bins 62,5 Hz auseinander:

    4. Hätte der Analysator ein Hann-Fenster auf die 64 Abtastwerte angewendet, hätte der höchste Balken 84,89 % des Tons angezeigt. Derselbe Ton ergäbe also:

    Antwort

    Etwa 0,495 und 128 Abtastwerte pro Block. Jedes Vielfache von 128 funktioniert ebenfalls, da 1.312,5 Hz genau 128 Abtastwerte benötigen, um eine ganze Anzahl von Zyklen (21) zu vollenden. Die Seite ist auf 64 fixiert. Der Fall mit 128 Abtastwerten liegt also jenseits dessen, was sie darstellen kann. Bei 128 zeigt der Balken die vollen 0,495 an. Das Fenster wäre dann nicht mehr nötig, um die Amplitude abzulesen. Du bräuchtest es nur noch, um die Flanke eines starken Tons von einem schwachen fernzuhalten.

Lernpfad

Die Fourier-Transformation in der Praxis

Quellen (2)