Was ist der Unterschied zwischen einer Fourier-Transformation und einer Cosinus-Transformation?


75

Bei der Spracherkennung führt das Front-End im Allgemeinen eine Signalverarbeitung durch, um eine Merkmalsextraktion aus dem Audiostream zu ermöglichen. Eine diskrete Fourier-Transformation (DFT) wird dabei zweimal angewendet. Das erste Mal ist nach dem Fenster; Danach wird Mel-Binning angewendet und dann eine weitere Fourier-Transformation.

Ich habe jedoch festgestellt, dass es in Spracherkennern (dem Standard-Front-End in CMU Sphinx zum Beispiel) üblich ist, für die zweite Operation eine diskrete Cosinustransformation (DCT) anstelle einer DFT zu verwenden. Was ist der Unterschied zwischen diesen beiden Operationen? Warum machst du das erste Mal DFT und dann das zweite Mal DCT?


So haben mehrere den Unterschied zwischen den beiden Prozessen erklärt. Weiß jemand, warum das dft und das dct zu unterschiedlichen Zeiten bei der Spracherkennung verwendet werden? Wird der Ausgang des ersten DFT als symmetrisch angesehen? Oder ist die Komprimierung des dct geeignet, um mehr Informationen in die ersten 13 Punkte zu packen (bei der Sprachverarbeitung werden im Allgemeinen nur diese verwendet)?
Nate Glenn

Steht Ihre Frage im Zusammenhang mit Mel-Frequenz-Cepstrum , das in einer anderen Frage gestellt wurde ?
Rwong

Meine Frage bestand aus zwei Teilen: dem Unterschied zwischen DCT und DFT und warum DCT häufig für die Signalverarbeitung verwendet wird, nachdem DFT und Mel Binning anstelle einer anderen DFT angewendet wurden.
Nate Glenn

Warum verwenden wir in der Bildverarbeitung keine diskrete Sinustransformation anstelle einer diskreten Cosinustransformation?

Hallo rimondo, das ist eine gute Frage, aber du hast sie als Antwort gepostet. Sie sollten eine neue Frage erstellen, um sie zu stellen.
Nate Glenn

Antworten:


48

Die diskrete Fourier-Transformation (DFT) und die diskrete Kosinustransformation (DCT) führen ähnliche Funktionen aus: Beide zerlegen einen zeitdiskreten Vektor mit endlicher Länge in eine Summe von skalierten und verschobenen Basisfunktionen. Der Unterschied zwischen den beiden ist die Art der Basisfunktion, die von jeder Transformation verwendet wird. Die DFT verwendet eine Reihe harmonisch zusammengehöriger komplexer Exponentialfunktionen, während die DCT nur (reelle) Kosinusfunktionen verwendet.

Die DFT wird häufig für allgemeine Spektralanalyseanwendungen verwendet, die in eine Reihe von Bereichen Einzug halten. Es wird auch als Baustein für Techniken verwendet, die die Eigenschaften der Frequenzdomänendarstellung von Signalen nutzen, z. B. die schnellen Faltungsalgorithmen "Überlappung speichern" und "Überlappung hinzufügen".

Die DCT wird häufig in verlustbehafteten Datenkomprimierungsanwendungen wie dem JPEG-Bildformat verwendet. Die Eigenschaft der DCT, die sie für die Komprimierung gut geeignet macht, ist ihr hoher Grad an "spektraler Verdichtung"; Auf qualitativer Ebene konzentriert sich bei der DCT-Darstellung eines Signals im Vergleich zu anderen Transformationen wie der DFT ein größerer Teil seiner Energie auf eine kleine Anzahl von Koeffizienten. Dies ist für einen Kompressionsalgorithmus wünschenswert; Wenn Sie das ursprüngliche (zeit- oder raumbezogene) Signal mit einem relativ kleinen Satz von DCT-Koeffizienten näherungsweise darstellen können, können Sie Ihren Datenspeicherbedarf reduzieren, indem Sie nur die DCT-Ausgänge speichern, die erhebliche Energiemengen enthalten.


4
@JasonR "Auf qualitativer Ebene konzentriert sich bei der DCT-Darstellung eines Signals im Vergleich zu anderen Transformationen wie der DFT ein größerer Teil seiner Energie auf eine kleine Anzahl von Koeffizienten." Hmmmm ... Ich bin nicht sicher , ob ich mit Ihnen auf dieses ganz zustimmen - wenn auch nur , weil die DFT bereits enthält einen Cosinus , auf das ein Signal gegen projiziert werden wird - wie kann eine DFT dann nicht so viel von der Kraft dieser Projektion zeigen und ein DCT kann? Vielen Dank.
Spacey

3
Dies ist eine sehr bekannte Eigenschaft der DCT, die ihre Verwendung in so vielen Kompressionsalgorithmen erklärt. Ich glaube, es hat mit den von der DCT angenommenen Randbedingungen an den Rändern des Signals zu tun, die sich von den DFT unterscheiden.
Jason R

23

Ich fand heraus, dass einige Details im DCT-Wiki (auch von Pearsonartphoto geteilt) darauf hinweisen, dass das DCT gut für Kompressionsanwendungen geeignet ist. Das Ende des Abschnitts Informelle Übersicht ist hilfreich (Fettdruck ist meins).

Insbesondere ist bekannt, dass jegliche Diskontinuitäten in einer Funktion die Konvergenzrate der Fourier-Reihe verringern. Je glatter die Funktion ist, desto weniger Terme in ihrer DFT oder DCT sind erforderlich, um sie genau darzustellen, und desto mehr kann komprimiert werden ... Die implizite Periodizität der DFT bedeutet jedoch, dass Diskontinuitäten normalerweise an den Grenzen auftreten ... Im Gegensatz dazu ergibt eine DCT, bei der beide Grenzen sogar immer eine kontinuierliche Erweiterung an den Grenzen sind. Dies ist der Grund, warum DCTs ... bei der Signalkomprimierung im Allgemeinen eine bessere Leistung erbringen als DFTs und DSTs. In der Praxis wird für solche Anwendungen üblicherweise eine Typ-II-DCT bevorzugt, teilweise aus Gründen der Rechenfreundlichkeit.

Außerdem ist diese Antwort möglicherweise auch nützlich (von math.stackexchange.com). Es sagt aus:

Cosinustransformationen sind nichts anderes als Abkürzungen für die Berechnung der Fouriertransformation einer Sequenz mit spezieller Symmetrie (z. B. wenn die Sequenz Abtastwerte einer geraden Funktion darstellt).


19

Der Grund, warum die Fouriertransformation beim Merkmalsextrahierungsprozess zweimal angewendet wird, besteht darin, dass die Merkmale auf einem Konzept namens Cepstrum basieren. Cepstrum ist ein Spiel mit dem Wortspektrum - im Wesentlichen besteht die Idee darin, ein Signal durch Fouriertransformation in einen Frequenzbereich zu transformieren und dann eine weitere Transformation durchzuführen, als ob das Frequenzspektrum ein Signal wäre.

Während das Frequenzspektrum die Amplitude und Phase jedes Frequenzbandes beschreibt, kennzeichnet Cepstrum Variationen zwischen den Frequenzbändern. Von Cepstrum abgeleitete Merkmale beschreiben Sprache besser als Merkmale, die direkt aus dem Frequenzspektrum entnommen wurden.

Es gibt ein paar leicht unterschiedliche Definitionen. Ursprünglich wurde die Cepstrumtransformation als Fouriertransformation -> komplexer Logarithmus -> Fouriertransformation definiert [1]. Eine andere Definition ist Fouriertransformation -> komplexer Logarithmus -> inverse Fouriertransformation [2]. Die Motivation für die letztere Definition liegt in der Fähigkeit, gefaltete Signale zu trennen (menschliche Sprache wird häufig als die Faltung einer Erregung und eines Stimmtrakts modelliert).

Eine beliebte Wahl, die sich in Spracherkennungssystemen als gut erwiesen hat, ist die Anwendung einer nichtlinearen Filterbank im Frequenzbereich (das Mel Binning, auf das Sie sich beziehen) [3]. Der spezielle Algorithmus ist definiert als Fourier-Transformation -> Betragsquadrat -> Mel-Filterbank -> Realer Logarithmus -> Diskrete Cosinustransformation.

Hier kann DCT als zweite Transformation ausgewählt werden, da der Realteil der DFT für eine reelle Eingabe eine Art DCT ist. Der Grund, warum DCT bevorzugt wird, ist, dass die Ausgabe ungefähr dekorreliert ist. Dekorrelierte Merkmale können effizient als Gaußsche Verteilung mit einer diagonalen Kovarianzmatrix modelliert werden.

[1] B. Bogert, M. Healy und J. Tukey (1963). Die Frequenz-Alanysis von Zeitreihen für Echos: Cepstrum, Pseudo-Autokovarianz, Cross-Cepstrum und Saphe-Cracking. In den Proceedings des Symposiums zur Zeitreihenanalyse, p. 209-243.

[2] Oppenheim, A. und Schafer, R. (1968). Homomorphe Analyse der Sprache. In IEEE Transactions on Audio and Electroacoustics 16, p. 221-226.

[3] Davis, S. und Mermelstein, P. (1980). Vergleich parametrischer Darstellungen für die einsilbige Worterkennung in kontinuierlich gesprochenen Sätzen. In IEEE-Transaktionen zu Akustik, Sprach- und Signalverarbeitung 28, S. 29. 357-366.


Re. PCA in der Merkmalsextraktion: Eine echte PCA wäre hier sinnlos, weil sie datenabhängig wäre! Wenn Sie die PCA der Mel-Frequenz-Log-Koeffizienten aus einem Datensatz und dann aus einem anderen Datensatz berechnen, finden Sie eine andere Grundlage - was bedeutet, dass bei Verwendung der PCA im Merkmalsextraktionsprozess die aus einem Signal extrahierten Merkmale nicht zutreffen würden Nicht "gleichbedeutend" mit den Merkmalen des anderen Signals. Führen Sie nun dieses Experiment durch: Berechnen Sie die PCA auf einem Satz von log Mel coef. extrahiert aus 10 stunden verschiedenster audio. Die Basis, die Sie finden, ist der DCT-Basis auf unheimliche Weise ähnlich.
Pichenettes

3
Mit anderen Worten: Um in der Erkennungsanwendung nützlich zu sein, muss die Dekorrelationstransformation am Ende des Merkmalsextraktionsprozesses eine Art Kompromiss sein, der eher für "Audio" im Allgemeinen als für datenspezifische geeignet ist. Es stellt sich heraus, dass die DCT-Basis dem sehr nahe kommt, was Sie erhalten, wenn Sie eine PCA mit einer großen Menge an Audio ausführen!
Pichenettes

Ich habe kürzlich PCA gesehen, das am Ende des Merkmalsextraktionsprozesses in einem experimentellen Sprachsystem verwendet wurde. Dieses System berechnete die PCA-Projektion aus den Trainingsdaten und verwendete anschließend dieselbe Basis.
Seppo Enarvi

8

Der Unterschied zwischen einer diskreten Fourier-Transformation und einer diskreten Cosinus-Transformation besteht darin, dass die DCT nur reelle Zahlen verwendet, während eine Fourier-Transformation komplexe Zahlen verwenden kann. Die häufigste Verwendung einer DCT ist die Komprimierung. Dies entspricht einer doppelt so langen FFT.


1
Es ist jedoch möglich, sich die DCT / DST einer komplexen Sequenz vorzustellen, bei der man die DCT / DST des Real- und Imaginärteils getrennt nimmt.

So können wir sagen, dass ich, wenn ich DFT berechne, DCT kostenlos bekomme, alles, was ich tun muss, ist, die imaginären Teile des Vektors zu entfernen. Bitte korrigieren Sie mich, falls ich falsch liege.
Marek

1
Es ist etwas komplexer als das, aber es ist ziemlich einfach möglich, zwischen einer FFT und einer DCT zu konvertieren.
PearsonArtPhoto
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.