Das Spektrogramm verständlich erklärt
Eine Sirene zieht ihren Ton nach oben. Wie zeichnet man auf, wann welche Tonhöhe erklang? Ein Bild aus Zeit und Tonhöhe kann das, aber es hat einen Preis: Die Länge der Aufnahme-Schnipsel entscheidet, was scharf wird. Diese Seite erklärt, warum.
Zuletzt aktualisiert:
Ein Wort unbekannt? Das Begriffsverzeichnis erklärt es in wenigen Sätzen.
Wann erklingt welcher Ton?
Eine Sirene fährt vorbei, und ihr Ton steigt gleichmäßig an. Sie möchten festhalten, wann welche Tonhöhe erklang. Ein Bild, das nur nennt, welche Töne in der ganzen Aufnahme vorkommen, verrät das nicht. Es kennt die Töne, aber nicht ihre Reihenfolge.
Besser ist ein Bild wie ein Notenblatt. Nach rechts läuft die Zeit, nach oben die Tonhöhe. Je lauter ein Ton gerade ist, desto heller leuchtet die Stelle. Die Sirene wird zu einer schrägen hellen Linie. Man nennt dieses Bild Spektrogramm. Fachleute sagen zur Tonhöhe Frequenz.
Wie das Bild entsteht
Der Computer schneidet die Aufnahme in kurze Schnipsel (Fachwort: Fenster). Jeder Schnipsel überlappt mit seinem Nachbarn, wie Dachziegel. Für jeden Schnipsel stellt eine Rechnung fest, welche Tonhöhen darin stecken. Das ergibt eine Spalte des Bildes. Alle Spalten nebeneinander bilden das Spektrogramm.
Das Programm zum Ausprobieren
Zu dieser Seite gehört ein Programm zum Ausprobieren im Browser, kurz Demo. Am Ende dieses Teils gibt es zwei Knöpfe. Der erste öffnet die Demo, der zweite führt zum zweiten Teil für Fachleute. Zum Verstehen brauchen Sie sie nicht.
Alle Aufnahmen darin sind künstlich erzeugt: ein steigender Ton, zwei parallel steigende Töne, ein Tonsprung, zwei kurze Knackser oder ein gleichbleibender Ton. So ist bekannt, was wirklich drinsteckt, und jede Abweichung des Bildes lässt sich messen. Die Aussagen in diesem Teil beschreiben dieses vereinfachte Rechenbild (Fachwort: Modell), nicht echte Aufnahmen.
Der Preis: die Länge der Schnipsel
Die Länge der Schnipsel bestimmt, was im Bild scharf wird. Beides zugleich geht nicht.
- Lange Schnipsel zeigen Tonhöhen scharf. Zwei dicht liegende Töne bleiben getrennt. Dafür weiß man nur, dass etwas irgendwo im Schnipsel geschah. Zwei Knackser kurz hintereinander verschmelzen zu einem.
- Kurze Schnipsel zeigen Zeitpunkte scharf. Zwei Knackser bleiben getrennt. Dafür verschwimmt die Tonhöhe, und zwei dicht liegende Töne verschmelzen zu einem.
Der Grund ist einfach. Eine Tonhöhe erkennt man erst, wenn der Ton mehrere Schwingungen lang erklingt. Ein kurzer Schnipsel fängt weniger Schwingungen ein, also bleibt seine Tonhöhe unschärfer. Dafür sagt er genauer, wann etwas geschah.
Die Demo misst beide Grenzen. Zwei helle Linien gelten als getrennt, wenn dazwischen die Helligkeit unter die Hälfte der schwächeren Linie fällt. Das ist eine Festlegung der Demo. Gemessen verbessert ein längerer Schnipsel die Trennung dicht liegender Töne und verschlechtert die Trennung dicht liegender Knackser. Schärfe in der Tonhöhe kauft man mit Schärfe in der Zeit.
Ein steigender Ton im Rauschen
Nun ist die Sirene in lauter Umgebung zu hören. Die Demo mischt dazu Rauschen unter einen gleichmäßig steigenden Ton (Fachwort: Chirp). Rauschen klingt wie ein Radio zwischen zwei Sendern. Dann prüft sie, wie genau die helle Linie im Bild der wahren Tonhöhe folgt.
Es zeigt sich: Es gibt eine beste Schnipsellänge. Sie ist weder die kürzeste noch die längste der geprüften, und sie war bei jeder der geprüften Rauschstärken dieselbe. Ein kurzer Schnipsel kennt die Tonhöhe nur grob, also kann das Rauschen die abgelesene Tonhöhe leicht verfälschen. In einem langen Schnipsel steigt der Ton schon während des Schnipsels. Die helle Linie ist dann nicht mehr dünn, und das Rauschen verfälscht die abgelesene Tonhöhe ebenfalls leichter.
Für eine schnellere oder langsamere Sirene hat die Demo die beste Länge nicht gemessen.
Zwei Sirenen nebeneinander
Jetzt steigen zwei Sirenen im festen Abstand nebeneinander. Das Bild soll zwei Linien zeigen. Das gelingt nur in einem mittleren Bereich von Schnipsellängen. Ist der Schnipsel zu kurz, sind beide Tonhöhen zu unscharf, und die Linien verschmelzen. Ist er zu lang, steigen beide Töne schon während des Schnipsels, und die Linien verschmieren.
Liegen die Sirenen weiter auseinander, trennen mehr Schnipsellängen sie. In der Messung trennten bei einem genügend großen Abstand alle geprüften Längen.
Wenn der Zufall wie ein Signal aussieht
Manchmal sucht man im Bild helle Stellen, die ein echtes Signal verraten. Reines Rauschen lässt aber zufällig einzelne Stellen aufleuchten. Wer dann ein Signal meldet, löst einen Fehlalarm aus.
Es ist wie bei einer Tombola: Wer viele Lose kauft, gewinnt eher einmal zufällig. Jede Stelle des Bildes ist ein Los. Je mehr Stellen, desto höher muss die Messlatte liegen, ab der man ein Signal meldet. Die Lose zu zählen ist heikel. Überlappende Schnipsel enthalten teils dieselbe Aufnahme, ihre Lose sind also keine unabhängigen Ziehungen.
Die Demo prüft das an reinem Rauschen. Wer jede Stelle als eigenes Los zählt, bekommt weniger Fehlalarme als vorgesehen. Wer nur Stellen ohne Überlappung zählt, bekommt bei starker Überlappung viel mehr.
Was hilft?
- Die Schnipsellänge zur Frage wählen. Geht es um Zeitpunkte, nimmt man kurze Schnipsel, geht es um dicht liegende Töne, lange. Der Preis: Das jeweils andere verschwimmt.
- Die schärfste Stelle nicht sofort für ein Signal halten. Man legt die Messlatte nach der Zahl der Stellen fest. Der Preis: Ein schwaches echtes Signal bleibt dann leichter unter der Messlatte.
- Verfahren ohne feste Länge verwenden. Wavelets nehmen für hohe und tiefe Töne verschiedene Längen. Die Demo zeigt sie nicht.
Häufige Missverständnisse
- „Mehr Rechenschritte machen das Bild schärfer.“ Nein. Der Computer kann zusätzliche Zwischenpunkte ins Bild rechnen, die es glätten. Das gleicht einem vergrößerten Foto: Es wirkt weicher, zeigt aber keine neuen Einzelheiten. Die Einzelheiten stecken in der Aufnahme.
- „Eine dicke helle Linie heißt, der Ton war unrein.“ Nein. Die Dicke hat zwei Ursachen in der Rechnung. Erstens: Bei kurzen Schnipseln wird auch ein reiner, gleichbleibender Ton zum dicken Streifen, weil die Tonhöhe unscharf bleibt. Zweitens: Ein steigender Ton wandert in einem langen Schnipsel schon, und das verschmiert seine Linie.
Woran Sie das im Alltag erkennen
- Sie sehen in einer App das Bild eines Vogelrufs oder einer Stimme, mit Zeit nach rechts und Tonhöhe nach oben. Das ist ein Spektrogramm. Ist ein gleichbleibender Pfiff ein dicker Streifen, waren die Schnipsel vermutlich kurz. Ist ein steigender Ruf zerfasert, waren sie vermutlich lang.
- Zwei Töne, die Sie hören, erscheinen als ein einziger Streifen. Dann waren die Schnipsel vielleicht zu kurz. Programme mit einstellbarer Fensterlänge zeigen mit längeren Schnipseln, ob es zwei sind.
Wie ernst ist das Rechenbild zu nehmen?
Alle Aufnahmen der Demo sind künstlich, und die Wahrheit ist bekannt. Echte Aufnahmen haben unbekannte, oft mehrere Anteile.
Was Sie mitnehmen:
- Fragen Sie bei einem Bild aus Zeit und Tonhöhe zuerst, wie lang die Schnipsel waren. Davon hängt ab, was scharf sein kann.
- Im gemessenen Beispiel war ein Mittelweg bei der Länge besser als jedes Extrem.
- Zählen Sie vor jedem Treffer, an wie vielen Stellen das Bild Gelegenheit zum Zufall bot.
Hinweis: Alle Demos rechnen mit synthetischen oder frei verfügbaren Beispieldaten und laufen auf einem externen Anbieter (Datenschutz). Bitte geben Sie darin keine vertraulichen oder personenbezogenen Daten ein. Die Ergebnisse gelten für die jeweilige Demo-Instanz und lassen sich nicht ungeprüft auf reale Fälle übertragen; für darauf gestützte Entscheidungen übernehme ich keine Gewähr.
Modell und Annahmen
Dieser Teil ist eigenständig lesbar. Alle Signale sind simuliert, damit die Wahrheit exakt bekannt ist. Zeit \(t = 0, \dots, n-1\), Abtastrate 1, Frequenzen in Zyklen je Abtastwert, Nyquist-Frequenz 0,5. Die Aufzeichnungslänge \(n\) reicht in der Demo von 256 bis 2048, die Fensterlänge \(L\) von 16 bis 512.
- Testsignale: ein linearer Chirp \(\cos\big(2\pi (f_0 t + (f_1 - f_0)\,t^2/(2(n-1)))\big)\) mit der wahren Frequenz \(f_0 + \kappa t\), \(\kappa = (f_1 - f_0)/(n-1)\); zwei Chirps mit gleicher Steigung im festen Abstand \(d_f\); ein Ton, der von \(f_1\) auf \(f_2\) springt; zwei Einzelimpulse; ein Ton.
- Rahmen und Fenster: Rahmen der Länge \(L\) im Abstand der Schrittweite \(h = L\,(1 - \text{Überlappung})\), nur vollständig in die Aufzeichnung passende Rahmen. Fenster Hann (periodisch) oder Rechteck, FFT mit Nullen aufgefüllt bis auf das 1- bis 8-Fache von \(L\). Die Zeit eines Rahmens ist seine Mitte. Dargestellt wird die Leistung \(|X|^2\) in dB gegen das Maximum.
- Kamm und Kurzzeitenergie: Der Kamm ist der Gipfel je Rahmen. Sind \(a, b, c\) die Logarithmen der Leistung \(|X|^2\) am größten Gitterpunkt \(i\) (Wert \(b\)) und seinen beiden Nachbarn (\(a\) links, \(c\) rechts), so verschiebt die Parabelverfeinerung den Gipfel um \((a-c)/\big(2(a-2b+c)\big)\) Gitterbreiten (Scheitel der Parabel durch die drei Punkte). Für zwei Chirps zählen die zwei höchsten Gipfel je Rahmen. Zwei Impulse trennt man in der Kurzzeitenergie bei Schrittweite 1.
- Rauschen: weißes Gauß-Rauschen mit der Varianz \(0{,}5/10^{\mathrm{SNR}/10}\), der Rauschabstand SNR ist also auf eine Linie der Amplitude 1 bezogen (Leistung 1/2).
- „Getrennt“ heißt: Der kleinste Wert zwischen den beiden Gipfeln liegt unter der Hälfte des kleineren Gipfels, linear gerechnet (nicht in dB), und zwar in der Leistung \(|X|^2\) eines Rahmens bei Tönen und in der Kurzzeitenergie bei Impulsen. Je Gipfel zählt der größte Wert in einer Umgebung der erwarteten Stelle mit dem halben Abstand beider Stellen als Radius. Das ist eine Festlegung der Demo und keine Naturkonstante; andere Festlegungen verschöben die gemessenen Grenzen. Bei zwei Chirps gilt ein anderes Kriterium (siehe Befunde).
- Messprotokoll: Die Experimente laufen über feste Zufallsströme: 200 Läufe mit zufälligen Phasen bei der Auflösung, 100 beim Chirp, 4000 bei der Korrelation und 3000 bei der Schwelle; die Paar-Messung kommt ohne Zufall aus. Der Kern ist selbst in NumPy geschrieben; SciPy dient nur als Gegenprobe.
Die Formeln
Die Kurzzeit-Fourier-Transformation (STFT) mit Fenster \(w\), Rahmenindex \(m\), Schrittweite \(h\), Gitterpunkt \(k\) (Frequenz \(k/N\)) und FFT-Länge \(N\) (mit Nullen aufgefüllt; ohne Auffüllen \(N = L\) und ein Gitterpunkt gleich einem Bin):
\[X_m[k] = \sum_{j=0}^{L-1} w[j]\,x[mh + j]\,e^{-2\pi i jk/N}\]
Die Zeit des Rahmens \(m\) ist \(mh + L/2\). Das periodische Hann-Fenster lautet
\[w[j] = \tfrac12(1 - \cos(2\pi j/L))\]
Sein Hauptlappen ist vier Bins breit, also \(4/L\), unabhängig von der Auffüllung. Zwei Grenzen beschreiben die Auflösung mit dem Hann-Fenster: Zwei gleich starke Töne sind ab dem Abstand \(2{,}5/L\) getrennt, zwei Impulse ab dem Abstand \(L/2 + 1\) Abtastwerten. Das Produkt beider Grenzen ist \((2{,}5/L)\,(L/2 + 1) = 1{,}25 + 2{,}5/L\), also etwa 1,25 und fast unabhängig von \(L\): Wer die Frequenz schärfer will, verliert Zeitauflösung.
Die Kurzzeitenergie ist \(E[s] = \sum_{j=0}^{L-1} \big(w[j]\,x[s+j]\big)^2\) bei Schrittweite 1; ohne Nullen ist sie bis auf den Faktor \(L\) die Summe der Leistung über alle Frequenzen (Parseval).
Die Schwelle dient dazu, aus dem höchsten Zellwert eines Spektrogramms zu entscheiden, ob er mehr als Rauschen ist; Falschalarm heißt, dass er bei reinem Rauschen die Schwelle übersteigt. Sei \(M\) die Zahl der inneren Zellen: Rahmen mal Bins \(1, \dots, L/2 - 1\) (ohne Gleichanteil und Nyquist-Bin), mit \(\lfloor (n - L)/h \rfloor + 1\) Rahmen. Geteilt durch die wahre mittlere Leistung ist die Zellleistung bei weißem Gauß-Rauschen (innere Bins, Standardergebnis aus dem Gedächtnis, nicht geprüft) exponentialverteilt mit Mittel 1. Die Demo teilt aber durch den Stichprobenmittelwert aller Zellen des Spektrogramms, die Verteilung ist dann nur näherungsweise exponential. Für das Maximum über \(M\) unabhängige solche Werte gilt \(P(\max \le z) = (1 - e^{-z})^M\). Die Šidák-Schwelle zum Niveau \(\alpha\) setzt dies gleich \(1 - \alpha\) und löst nach \(z\) auf: \(z_\alpha = -\ln\big(1 - (1-\alpha)^{1/M}\big)\).
Herleitungen Schritt für Schritt
Die folgenden Rechnungen sind Rechnungen dieser Seite. Wo die Demo dieselbe Aussage misst, steht es dabei.
Warum zwei Impulse beim Hann-Fenster erst ab \(L/2 + 1\) getrennt sind.
- Schritt 1: Bei Schrittweite 1 ist die Kurzzeitenergie für einen Impuls an der Stelle \(j\) des Rahmens \(w[j]^2\). Zwei Impulse im Abstand \(\Delta\) addieren zwei solche Höcker.
- Schritt 2: Für \(\Delta = L/2\) ist \(w[j] = (1 - \cos\theta)/2\) und \(w[j + L/2] = (1 + \cos\theta)/2\) mit \(\theta = 2\pi j/L\). Die Summe der Quadrate ist \((1 + \cos^2\theta)/2\): Sie steigt auf den Höchstwert 1 bei \(\cos\theta = \pm 1\) und fällt in der Mitte auf genau die Hälfte.
- Schritt 3: Der Einbruch erreicht damit die Hälfte, liegt aber nicht darunter. Also sind die Impulse bei \(L/2\) nach der Festlegung der Demo nicht getrennt. Die Demo prüft alle Abstände von klein an und nimmt den ersten getrennten; das ist \(L/2 + 1\), passend zu den gemessenen Werten 9 / 17 / 33 / 65 bei \(L = 16 / 32 / 64 / 128\). Dass kleinere Abstände nicht darunter fallen, zeigt diese Rechnung nicht, es ist nur der Messung entnommen. Die Zahl \(L/2 + 1\) ist damit eine Folge der Festlegung „unter der Hälfte“.
Warum das Rechteckfenster Impulse erst ab \(L + 1\) trennt. Mit \(w \equiv 1\) zählt die Kurzzeitenergie, wie viele Impulse im Rahmen liegen. Für Abstand \(\Delta < L\) enthalten manche Rahmen beide Impulse (Wert 2) und die übrigen einen (Wert 1); es gibt kein Tal zwischen zwei Gipfeln. Erst für \(\Delta > L\) liegt zwischen den beiden Plateaus ein Rahmen ohne Impuls. Das stimmt mit „erst ab \(L + 1\)“ überein.
Die Korrelation benachbarter Zellen bei weißem Rauschen, Hann, ohne Nullen.
- Schritt 1: Bei weißem Gauß-Rauschen sind die STFT-Werte komplexe Gauß-Größen. Die Korrelation zweier Leistungen ist das Betragsquadrat der komplexen Korrelation \(\rho\) (Standardergebnis, aus dem Gedächtnis, nicht geprüft).
- Schritt 2: Mit \(\theta = 2\pi j/L\) ist \(w[j]^2 = \tfrac38 - \cos\theta/2 + \tfrac18\cos 2\theta\). Die Summe \(\sum_j w[j]^2\) ist also \(3L/8\).
- Schritt 3 (Bins): Die Kovarianz benachbarter Bins ist proportional zu \(\sum_j w[j]^2 e^{-i\theta}\), im Betrag \(L/4\); damit \(\rho = (L/4)/(3L/8) = 2/3\) und \(\rho^2 = 4/9 \approx 0{,}44\). Bins im Abstand 2 geben \(\sum_j w[j]^2 e^{-2i\theta}\), im Betrag \(L/16\), also \(\rho = 1/6\) und \(\rho^2 \approx 0{,}03\).
- Schritt 4 (Rahmen): Rahmen im Abstand \(h\) teilen sich \(L - h\) Werte; \(\rho\) ist die Summe der Produkte \(w[j]\,w[j-h]\) über die gemeinsamen Werte, geteilt durch \(3L/8\). Bei \(h = L/2\) (50 % Überlappung) ergibt die Summe \(L/16\), also wieder \(\rho^2 \approx 0{,}03\); bei \(h = L\) ist sie null. Bei \(h = L/4\) (75 %) ist \(\rho = (\pi + 1)/(2\pi)\), also \(\rho^2\) nahe dem gemessenen Wert 0,436 (Rechnung dieser Seite).
- Abgleich: Die Demo misst 0,44 und 0,03 für benachbarte Bins und Bins im Abstand 2, und 0,002 / 0,028 / 0,436 für Schrittweite 64 / 32 / 16. Die Rechnung erklärt alle diese Werte bis auf den Stichprobenfehler.
Zellen zählen. Für \(n = 1024\), \(L = 64\) und Schrittweite 64 / 32 / 16 gibt die Formel für die Zahl der Rahmen mal 31 Bins die Zellzahlen 496 / 961 / 1891 der Demo.
Was die beiden Zählweisen der Schwelle zeigen. Die Schwelle über nur 496 Zellen überschreitet das Niveau 5 % bei den Schrittweiten 32 und 16 (Falschalarm 8,4 und 15,4 %): zu wenige Zellen gezählt, die wirksame Zahl ist dort größer als 496. Die Schwelle über alle Zellen liegt bei jeder Schrittweite unter dem Niveau (3,5 / 4,0 / 4,5 %). Das spricht für eine wirksame Zahl unter der Zahl aller Zellen, ist aber nur zum Teil ein Befund über korrelierte Zellen: Auch das Teilen durch den Stichprobenmittelwert senkt die Quote. Eine Nachrechnung dieser Seite mit dem wahren Mittelwert (derselbe Zufallsstrom) ergibt etwas höhere Quoten, bei der kleinsten Schrittweite etwa das Niveau (keine Messung der Demo). Bei Schrittweite 64 sind beide Zählweisen gleich; wie viel der 3,5 % auf korrelierte Bins und wie viel auf die Normierung entfällt, ist nicht getrennt gemessen.
Wann ein langes Fenster einen Chirp verschmiert. Die Frequenz ändert sich in einem Rahmen um \(\kappa L\) (Zyklen je Abtastwert), das sind \(\kappa L^2\) Bins der Breite \(1/L\). Diese Verschmierung in Bins wächst mit dem Quadrat der Fensterlänge, während der Hauptlappen immer vier Bins breit bleibt. Für den gemessenen Chirp von 0,1 bis 0,3 über \(n = 1024\) erreicht sie bei \(L = 128\) gut drei Bins und bei \(L = 512\) ein Vielfaches davon (Rechnung dieser Seite, keine Messung der Demo). Dass der Kamm trotzdem nicht um dieses Vielfache danebenliegt, ist plausibel: Er folgt dem Gipfel, und der liegt wegen der Fensterform nahe der Frequenz in der Rahmenmitte. Der Fehler bei langen Fenstern steigt erst mit dem Rauschen: Bei 60 dB liegt er laut Test für jede Länge unter dem Fehler der besten Länge bei 0 dB (0,0007). Das passt zur Deutung der Demo, dass ein breiter Gipfel dem Rauschen leichter nachgibt; getrennt gemessen ist das nicht.
Untere Länge für zwei parallele Chirps. Überträgt man die Tongrenze, so braucht die Trennung \(d_f \ge 2{,}5/L\), also \(L \ge 2{,}5/d_f\). Das ist nur eine grobe Richtschnur, denn das Kriterium bei Chirps (beide Kämme liegen innerhalb eines Viertels des Abstands neben der Wahrheit) ist ein anderes als der Einbruch unter der Hälfte. Die Tabelle zeigt es: Bei \(d_f = 0{,}04\) trennt \(L = 32\) nur in 32 % der Rahmen, \(L = 64\) in 100 %. Bei \(d_f = 0{,}06\) liegt \(L = 32\) mit knapp zwei Bins (Rechnung dieser Seite) unter der Tongrenze und trennt trotzdem in 88 %. Die obere Grenze folgt aus keiner einfachen Rechnung dieser Seite; die Verschmierung \(\kappa L^2\) erklärt nur die Richtung.
Befunde
Alle Zahlen stammen aus simulierten Signalen mit festen Zufallsströmen und gelten für das Hann-Fenster, soweit nicht anders vermerkt. Läufe und Bedingungen stehen in der Zeile.
| Frage | Befund |
|---|---|
| Wann sind zwei gleich starke Töne im Spektrum eines Rahmens getrennt? (Töne bei 0,2, Abstand in Bins zu \(1/L\), Nullen bis zum Achtfachen von \(L\), Hann) | Anteil der Läufe bei 1 / 1,5 / 2 / 2,5 Bins: 17,5 / 26 / 48,5 / 100 % (200 Läufe mit zufälligen Phasen, Standardfehler bis 3,5 Prozentpunkte), für jede Fensterlänge von 32 bis 256 gleich. Über ein Raster von 720 gleichmäßig verteilten Phasendifferenzen bei \(L = 32\): 19,6 / 31,9 / 49,9 / 100 %. Ab 2,5 Bins sind die Töne bei allen gemessenen Phasen getrennt; als Grenze gilt \(2{,}5/L\), der kleinste geprüfte Abstand mit 100 % (feiner gerechnet etwas darunter, siehe Grenzen). |
| Und beim Rechteckfenster? (Abstand 1,5 Bins) | 88 % der Läufe (100 Läufe); über das Raster 87,2 % bei \(L = 32\) und 85,4 % bei \(L = 64\). Das Rechteck trennt die Töne früher als Hann. |
| Wann sind zwei Impulse in der Kurzzeitenergie getrennt? | Hann: ab dem Abstand \(L/2 + 1\), das sind 9 / 17 / 33 / 65 Abtastwerte bei \(L = 16 / 32 / 64 / 128\), bei \(L/2\) selbst nicht. Rechteck: erst ab \(L + 1\). |
| Welche Fensterlänge verfolgt einen Chirp von 0,1 bis 0,3 in Rauschen am besten? (\(n = 1024\), 100 Läufe je Zeile) | Kammfehler (RMSE) für \(L = 16 / 32 / 64 / 128 / 256 / 512\): bei 0 dB 0,0740 / 0,0336 / 0,0078 / 0,0007 / 0,0038 / 0,0081; bei 10 dB 0,0042 / 0,0015 / 0,0005 / 0,0002 / 0,0013 / 0,0047. \(L = 128\) ist bei allen vier gemessenen Rauschabständen (0, 10, 20 und 60 dB) die beste der sechs gemessenen Längen. |
| Wann trennt das Spektrogramm zwei parallele Chirps? (ohne Rauschen, unterer Chirp von 0,1 bis 1/4, \(n = 1024\), Schrittweite \(L/4\), Nullen bis zum Achtfachen von \(L\)) | Anteil der Rahmen mit beiden Kämmen richtig, bei \(d_f = 0{,}02\) und \(L = 32 / 64 / 128 / 256 / 512\): 0 / 23 / 100 / 85 / 0 %. Bei \(d_f = 0{,}04\): 32 / 100 / 100 / 100 / 100 %. Bei \(d_f = 0{,}06\) trennt \(L = 32\) in 88 %, bei \(d_f = 0{,}10\) trennen alle Längen in 100 %. „Richtig“ heißt: beide Kämme liegen innerhalb eines Viertels des Abstands \(d_f\) neben der Wahrheit. |
| Wie stark sind benachbarte Zellen korreliert? (weißes Rauschen, Hann, \(L = 64\), ohne Nullen, \(n = 512\), 4000 Läufe) | Benachbarte Bins 0,44, Bins im Abstand 2: 0,03 (nur ohne Auffüllen; mit Auffüllen liegen benachbarte Gitterpunkte enger und sind stärker korreliert, nicht gemessen). Benachbarte Rahmen bei Schrittweite 64 / 32 / 16 / 8 (0 / 50 / 75 / 87,5 % Überlappung): 0,002 / 0,028 / 0,436 / 0,815. Bis 50 % Überlappung sind benachbarte Rahmen kaum korreliert, darüber wächst die Korrelation stark. |
| Wie viele Zellen zählt die Schwelle? (weißes Rauschen, Hann, \(n = 1024\), \(L = 64\), 3000 Läufe, Niveau 5 %; Zellleistung geteilt durch die mittlere Zellleistung des Spektrogramms) | Zellen bei Schrittweite 64 / 32 / 16: 496 / 961 / 1891. Falschalarm der Šidák-Schwelle mit allen Zellen: 3,5 / 4,0 / 4,5 %; mit nur den 496 Zellen der Schrittweite 64: 3,5 / 8,4 / 15,4 %. |
Was die Messung zeigt und wo die Grenzen liegen
Alle Befunde gelten für die genannten Bedingungen. Was daraus folgt und was nicht:
- Heimvorteil: Die Testsignale sind exakt bekannte Modelle. Echte Signale haben unbekannte, oft mehrere Komponenten. Die Demo bindet keine gemessenen Daten ein.
- Nur Hann gemessen: Die Grenzen \(2{,}5/L\) und \(L/2 + 1\) sind für das Hann-Fenster gemessen. Für das Rechteck liegen nur der Vergleich bei 1,5 Bins (100 Läufe, ein Zufallsstrom) und die Impulsgrenze vor.
- Gleich starke Töne: Die Tongrenze ist nur für zwei gleich starke Töne gemessen, nicht für ungleiche Amplituden.
- Raster der Grenze: Die Abstände wurden in Schritten von einem halben Bin geprüft. Die Zahl 2,5 ist der kleinste geprüfte Abstand mit 100 %. Eine Nachrechnung dieser Seite mit feinerem Abstandsraster und demselben Phasenraster findet die Grenze knapp unter 2,5 Bins (keine Messung der Demo).
- Festlegung „getrennt“: Die Impulsgrenze \(L/2 + 1\) ist, wie oben hergeleitet, gerade eine Folge der Festlegung „unter der Hälfte“; andere Festlegungen ergäben andere Werte.
- Fenster: Gemessen sind nur Hann und Rechteck; andere Fenster fehlen.
- Kamm bei Rauschen: Er folgt dem höchsten Gipfel je Rahmen und ist nur für einen Chirp oder Ton als Kammfehler ausgewertet. „Beste Länge“ heißt beste der sechs geprüften Längen; die Messung kennt keine Längen dazwischen. Der Rauschabstand wurde nur bei vier Werten geprüft, die Aussage gilt nicht für jeden Wert dazwischen.
- Parallele Chirps: Gemessen sind vier Abstände ohne Rauschen, mit einem Chirp-Paar fester Steigung und der Toleranz „Viertel des Abstands“. Für andere Steigungen, Amplituden und mit Rauschen ist die Trennung nicht gemessen.
- Šidák-Schwelle: Sie nimmt unabhängige Zellen an. Die Messung zeigt, wie sehr das bei Überlappung verletzt ist. Eine Schwelle für korrelierte Zellen ist nicht hergeleitet; gemessen ist nur der Falschalarm für weißes Rauschen bei drei Schrittweiten, mit der Normierung durch den Stichprobenmittelwert.
- Nicht gebaut: Rückrechnung (ISTFT) und Reassignment (verschärftes Spektrogramm, das die Schärfe ohne Änderung der Fensterlänge erhöht).
Wie der Kern geprüft ist. Von Hand gerechnet: Für \(x = (1, 2, 3, 4)\), \(L = 2\), Schrittweite 1 und Rechteck ergeben sich die Rahmenleistungen (9, 1), (25, 1) und (49, 1) bei den Mitten 1, 2 und 3 und die Kurzzeitenergien 5, 13 und 25. Als Gegenprobe dient SciPy: Die Leistung stimmt mit dem Spektrogramm von SciPy überein (mit dem Faktor 2 der einseitigen inneren Bins), das Hann-Fenster mit dem von SciPy, die Parabelverfeinerung ist für eine Log-Parabel exakt, die Šidák-Schwelle stimmt mit ihrer Definition überein und der kleinste getrennte Impulsabstand mit \(L/2 + 1\).
Erweiterungen und Verweise
Was das Spektrogramm mit fester Fensterlänge nicht leistet, behandeln andere Demos dieser Website:
- Ganze Aufzeichnung statt Zeitverlauf: Das Periodogramm zeigt, welche Frequenzen in der ganzen Aufzeichnung stecken.
- Ein Wert je Zeitpunkt: Die Demo zur Momentanfrequenz leitet eine Frequenz je Zeitpunkt aus dem analytischen Signal ab; bei zwei Komponenten ist diese Phasenableitung keine Frequenz mehr.
- Fensterform: Die Demo „Fenster und Linienlage“ untersucht, wie ein Fenster Auflösung gegen Leckage tauscht.
- Schärfer ohne andere Fensterlänge: Die Reassignment-Demo verschiebt die Energie jedes Spektrogrammpunkts an ihren Schwerpunkt.
- Länge nach Frequenz: Die Wavelet-Skalogramm-Demo nimmt statt eines Fensters fester Länge Wellen mit fester Periodenzahl, kurz bei hohen und lang bei tiefen Frequenzen.
Quellen
- Allen, J. B.; Rabiner, L. R.: A unified approach to short-time Fourier analysis and synthesis. Proceedings of the IEEE 1977.
- Harris, F. J.: On the use of windows for harmonic analysis with the discrete Fourier transform. Proceedings of the IEEE 1978.
- Cohen, L.: Time-Frequency Analysis. Prentice Hall 1995.
- Quelltext, Messreihen und Tests der Demo: github.com/sebastian-hanisch/spektrogramm-demo.
Die Demo vermerkt, dass die drei Quellen nicht gelesen wurden; ihre Formeln sind dort per Simulation, Handrechnung und gegen SciPy geprüft. Die Titel stehen nicht in der Demo und sind aus dem Gedächtnis, nicht geprüft.