02 Jan
2011

Verfahren zur Bestimmung der Grundfrequenz

Grundfrequenz-Berechnung-an-Schwingung.png

3.2.1 AMDF-Verfahren

Beim AMDF-Verfahren (Average Magnitude Difference Function) werden die Funktionswerte eines Sprachsignals zeitversetzt subtrahiert und die Beträge als Summe zusammengefasst. Hierbei entstehen Minima, deren Abstände zueinander ganzzahlige Vielfache der Grundperiode darstellen [Nöth91, S. 101].
Am einfachsten lässt sich das AMDF-Verfahren an einem periodischen Signal erklären.
Wie in 3.2 erläutert, wird zuerst ein Teilbereich der Funktion - etwa 40 ms - aus- gewählt. Die kleinste noch zu erfassende Grundfrequenz (foK) liege bei 50 Hz und die größte Grundfrequenz (foG) bei 550 Hz. Die Konstante k bezeichnet den Umrechnungsfaktor von 1 Hz in x Abtastpunkte. foK' bzw foG' ist das Produkt aus foG bzw. foK und k. Die Variable d bezeichnet einen Wert foK' ≤ d ≤ foG' und macht zugleich eine Aussage über die Länge der Grundfrequenz in Abtastpunkten (wie viel Abtastpunkte 1 ms entsprechen muss vor einer Analyse definiert werden). f(i) bezeichnet den Funktionswert des Punktes i des zu analysierenden Sprachsignals.
Die AMDF-Funktion, in der die Minima die Vielfachen der Grundfrequenz darstellen lautet [Nöth91, S. 101]:

Gleichung des AMDF Verfahrens

Gleichung des AMDF Verfahrens


Als Obergrenze der Summe wurde d gewählt, da d der Grundfrequenz in Abtastwerten entspricht. Die Summe der Differenz bis d heißt also, dass, falls d wirklich die Grundfrequenz darstellt, alle Werte einmal voneinander abgezogen wurden. Würde man weiter subtrahieren, würden sich die Minuenden und Subtrahenden nur wiederholen.
Die Variable d muss nach jeder Ausführung um eins erhöht werden, um den vollständigen Kurvenverlauf und somit die auftretenden Minima sichtbar zu machen.

[img=http://www.simonrueger.de/uploads/Grundfrequenz-Berechnung-an-Schwingung.png]Ausschnitt einer periodischen Schwingung[/img]
Abb.5: Ausschnitt einer periodischen Schwingung. Gelbe bzw. blaue Punkte markieren die um d bzw. d' zeitversetzten Abtastpunkte von den roten Punkten.

Ist bei einem periodischen Signal d so groß, dass ADMF(d) = 0 ergibt, ist hier ein Minimum feststellbar. Aus Abb.5 wird deutlich dass der Betrag der Differenz, der Funktionswerte der roten und gelben Punkte immer eine Zahl größer 0 beträgt. Wird d allerdings auf d' erhöht, so werden immer gleiche Werte subtrahiert, womit man die Summe 0 erhält. Dies bedeutet bei einem periodischen Signal ein absolutes Minimum und die Grenze von zwei Grundperioden. Der Abstand zwischen zwei dieser Minima stellt demnach die Länge einer Grundperiode dar.
Bei quasiperiodischen Signalen, wie bei dem menschlichen Sprachsignal, kann ein Wert von 0 so gut wie nie erwartet werden. Stattdessen können absolute Minima beobachtet werden. Sofern die Leitamplitude¹ auf d=0 gesetzt wurde, stellen diese absoluten Minima Vielfache der Grundperiode dar. Entspricht der Abstand zwischen zwei absoluten Minima zum Beispiel 100 Abtastpunkten und es wurden 600 Abtastpunkte pro 40 ms Sekunden gewählt, so ist die Grundfrequenz dieser Grundperiode:

Gleichung zur Bestimmung der Grundfrequenz

Gleichung zur Bestimmung der Grundfrequenz

Um bei quasiperiodischen Signalen noch bessere Resultate zu erhalten kann das so genannte "Center Clipping" angewandt werden. Das Center Clipping ist ein Verfahren, mit dem die Formantstruktur² zerstört werden soll, ohne damit die Periodizitäten im Sprachsignal zu verändern [Nöth91 S. 97]. Das AMDF-Verfahren erlangt dadurch, dass die Resonanzfrequenzen, die im Vokaltrakt hervorgerufen werden, gelöscht werden, höhere Genauigkeit.


Seneff-Verfahren

Beim Seneff-Verfahren (benannt nach [Seneff78 S.358-364]) wird davon ausgegangen, dass die meisten Harmonischen³ im Spektrum enthalten sind [Nöth91, S. 102].
Das Spektrum kann durch Anwendung der kontinuierlichen Fourier-Transformation auf ein nicht periodisches (bei periodischen Signalen bietet sich die Fourier-Analyse an) Sprachsignal erhalten werden. Die kontinuierliche Fourier-Transformation einer Funktion ist definiert durch [Wikipedia Kontinuierliche Fourier-Transformation]:

Gleichung der Fournier Transformation

Gleichung der Fournier Transformation

Bei diesem Verfahren wird aus dem zeitlichen Sprachsignal das Frequenzspektrum berechnet, indem die Funktion in Sinus- bzw. Kosinusfunktionen zerlegt wird. Das Frequenzspektrum ist auf der Abszisse nach der Frequenz geordnet. Die Ordinate zeigt die Intensität, die auch als Maßstab für den Anteil dieser Frequenz im Sprachsignal herangezogen werden kann (je höher die Amplitude desto mehr Einfluss hat die Frequenz auf den Klang des Sprachsignals).
Da bei einem aufgenommenen Sprachsignal durch die Struktur des Vokaltrakts die Amplitudenhöhen der Harmonischen stark verändert werden und die Maxima (für Grundfrequenzberechnung notwendig), welche die Harmonischen kennzeichnen, nicht eindeutig sichtbar sind, muss das Sprachsignal vorerst mit zwei Verfahren bearbeitet werden. Zuerst wird das Sprachsignal tiefpassgefiltert [Nöth91, S. 96]. Bei der Tiefpassfilterung werden alle Frequenzen über einer festgelegten Grenzfrequenz eliminiert. Dabei ist bei einer Grenzfrequenz von ca. 1,1 kHz, welche dem Doppelten der maximalen Grundfrequenz entspricht, gewährleistet, dass mindestens zwei Harmonische im Spektrum enthalten sind. Nach dieser Tiefpassfilterung wird das Signal mit ca. 2 kHz neu abgetastet. Durch dieses Verfahren und die damit verbundene Datenreduktion kann die Fourier-Transformation schneller durchgeführt werden.
Um im Spektrum die durch Amplitudenmaxima gekennzeichneten Harmonischen besser sichtbar zu machen, wird meistens das Hamming-Fenster verwendet. Diese Fensterfunktion verstärkt die Hauptmaxima eines Signals und dämpft mögliche Nebenmaxima ab [Nöth91, S. 100].
Die Harmonischen werden durch die lokalen Maxima und die Grundfrequenz durch den Abstand zweier benachbarter lokaler Maxima im Spektrum dargestellt (Abb.6). In Abb.6 sind die Maxima nach der Amplitudengröße durchnummeriert. Nach eigenen Überlegungen ist der sicherste Weg, um auf die Grundfrequenz zu kommen, der
folgende: Der erste Schritt ist die Bestimmung des Abstands benachbarter Maxima. Dazu wird beim lokalen Maximum der niedrigsten Frequenz angefangen und immer der

[img=http://www.simonrueger.de/uploads/Seneff-Verfahren-Frequenzspektrum.png]Seneff Verfahren Frequenzspektrum[/img]
Abb.6: Ausschnitt aus dem Spektrum des Lauts "A". Die lokalen Maxima sind der Größe nach nummeriert. Bis auf das 7. und 9. Maximum handelt es sich um Harmonische. [Nöth91, S. 103]

Betrag der Differenz zur Frequenz des nächsthöheren lokalen Maximums berechnet und in ein Histogramm eingetragen. Der Quellcode eines Programms oder Scripts für die Berechnung der Werte des obigen Beispiels (Abb.6) könnte wie folgt aussehen (Frequenzen sind Schätzswerte):

<? php

$maximaFrequenzen = array('115','227','340','450','570','680','795','880','930','1025');
$anzahlMaxima = 10;
for($count = 1; $count < $anzahlMaxima-1; $count++){

$wert1 = $maximaFrequenzen[$count];
$wert2 = $maximaFrequenzen[$count+1];
$differenz = abs($wert1 - $wert2);

echo "Differenzen:".$differenz;
}
?>


Falsche Maxima oder fehlende Harmonische könnten bei diesem Verfahren falsche Werte verursachen. Allerdings sollte sich bereits eine Tendenz zu einem Wert zeigen. Daher kann dieser Wert mit einer definierten Abweichung als Maß genommen werden. Dieses Maß stellt einen Toleranzbereich dar. Liegt ein Wert, die im nächsten Schritt errechnetet werden, in diesem Toleranzbereich (Maß), dann wird er wiederum in das Histogramm eingetragen. Sollte er außerhalb des Maßes liegen, so wird der Wert verworfen und eventuell zur Überprüfung in einer anderen Tabelle gespeichert, um nachträglich Änderungen vorzunehmen. Im Histogramm erscheint er allerdings nicht.
Im nächsten Schritt können die Abstände zwischen einem Maximum und dem übernächsten Maximum errechnet werden. Dies kann beliebig weit fortgesetzt werden (Betrag vom ersten Maximum minus fünftes Maximum usw.). Danach wird das Ergebnis solange durch eine natürliche Zahl geteilt, die sich bei jedem Schritt um eins erhöht, bis das Ergebnis, auf Grund des vorher festgelegten Maßes, unter dem Minimum des Toleranzbereichs liegt und somit nicht mehr in das Histogramm eingetragen wird. Die vorher gesetzte Schwelle verhindert außerdem, dass zu große Werte eingetragen werden.



_________________
¹Die Auslenkung einer Schwingung, die im Sprachsignal immer wieder deutlich deutbar ist.
²"...Konzentration von akustischer Energie in einem bestimmten Frequenzbereich." [Wikipedia Formant]
³"Ganzzahliges Vielfaches einer Grundfrequenz." [Wikipedia Harmonische]

In der Kategorie Mustererkennung erschienen.
Noch kein Kommentar Kommentare zu "Verfahren zur Bestimmung der Grundfrequenz"
Kommentar verfassen
Bitte beantworte noch diese einfache mathematische Frage
rechtes menue hintergrund oben
rechtes menue hintergrund unten