Quelle est la différence entre une transformation de Fourier et une transformation en cosinus?


75

En reconnaissance vocale, le système frontal traite généralement les signaux pour permettre l'extraction des caractéristiques du flux audio. Une transformée de Fourier discrète (DFT) est appliquée deux fois dans ce processus. La première fois, c'est après le fenêtrage. Après cela, Mel est appliqué, puis une autre transformation de Fourier.

J'ai toutefois remarqué qu'il est courant dans les systèmes de reconnaissance vocale (le frontal par défaut dans CMU Sphinx , par exemple) d'utiliser une transformation en cosinus discrète (DCT) au lieu d'une transformation DFT pour la deuxième opération. Quelle est la différence entre ces deux opérations? Pourquoi voudriez-vous faire DFT la première fois et ensuite un DCT la deuxième fois?


Plusieurs ont donc expliqué la différence entre les deux processus. Est-ce que quelqu'un sait pourquoi la dft et la dct sont utilisées à des moments différents dans la reconnaissance vocale? La sortie de la première dft est-elle considérée comme symétrique? Ou bien la compression de la dct est-elle adaptée pour stocker plus d’informations dans les 13 premiers points (le traitement de la parole n’utilise généralement que ceux-là)?
Nate Glenn

Votre question concerne -t-elle le cepstrum de fréquence Mel , qui a été posé dans une autre question ?
Rwong

Ma question était double: la différence entre DCT et DFT et la raison pour laquelle la DCT est souvent utilisée pour le traitement du signal après l'application de DFT et de Mel Binning au lieu d'une autre DFT.
Nate Glenn

pourquoi en traitement d'image, nous n'utilisons pas de transformée en sinus discrète au lieu d'une transformée en cosinus discrète?

Bonjour rimondo, c’est une bonne question, mais vous l’avez affichée comme réponse. Vous devriez créer une nouvelle question à poser.
Nate Glenn

Réponses:


48

Les transformées de Fourier discrète (DFT) et de transformée de cosinus discrète (DCT) remplissent des fonctions similaires: elles décomposent toutes les deux un vecteur à temps discret de longueur finie en une somme de fonctions de base mises à l'échelle et décalées. La différence entre les deux est le type de fonction de base utilisé par chaque transformation; la DFT utilise un ensemble de fonctions exponentielles complexes liées de manière harmonique, tandis que la DCT utilise uniquement des fonctions cosinus (à valeurs réelles).

La DFT est largement utilisée pour les applications générales d’analyse spectrale qui s’inscrivent dans divers domaines. Il est également utilisé comme élément de base pour les techniques qui tirent parti des propriétés de la représentation du domaine fréquentiel des signaux, telles que les algorithmes de convolution rapide avec recouvrement et ajout-chevauchement.

Le DCT est fréquemment utilisé dans les applications de compression de données avec pertes, telles que le format d'image JPEG. La propriété de la DCT qui la rend tout à fait adaptée à la compression est son degré élevé de "compactage spectral"; au niveau qualitatif, la représentation DCT d'un signal tend à concentrer davantage son énergie dans un petit nombre de coefficients par rapport à d'autres transformations telles que la transformation DFT. Ceci est souhaitable pour un algorithme de compression; Si vous pouvez représenter approximativement le signal d'origine (dans le domaine temporel ou spatial) à l'aide d'un ensemble relativement petit de coefficients DCT, vous pouvez réduire vos besoins en stockage de données en ne stockant que les sorties DCT contenant des quantités d'énergie significatives.


4
@JasonR "au niveau qualitatif, la représentation DCT d'un signal tend à concentrer davantage son énergie dans un petit nombre de coefficients par rapport à d'autres transformations comme la transformation DFT." Hmmmm ... je ne suis pas sûr d'être complètement d'accord avec vous sur ce point - ne serait-ce que parce que la TFD inclut déjà un cosinus sur lequel un signal va être projeté - comment une DFT peut-elle alors ne pas montrer autant de la force de cette projection et un bidon DCT? Merci.
Spacey

3
C’est une caractéristique très connue de la DCT, ce qui explique son utilisation dans de nombreux algorithmes de compression. Je crois que cela a à voir avec les conditions aux limites supposées par la DCT aux bords du signal, qui sont différentes de celles de la DFT.
Jason R

23

J'ai constaté que certains détails du wiki DCT (également partagé par Pearsonartphoto) soulignent que le DCT est bien adapté aux applications de compression. La fin de section Aperçu informel est utile (les caractères gras sont les miens).

En particulier, il est bien connu que toute discontinuité dans une fonction réduit le taux de convergence de la série de Fourier ... plus la fonction est lisse, moins il faut de termes dans sa DFT ou sa DCT pour la représenter avec précision peut être compressé ... Cependant, la périodicité implicite de la TFD signifie que des discontinuités se produisent généralement aux limites ... Par contraste, une DCT dans laquelle les deux limites sont même toujours associées à une extension continue aux limites. C'est pourquoi les DCT ... fonctionnent généralement mieux que les DFT et les DST pour la compression du signal. En pratique, une DCT de type II est généralement préférée pour de telles applications, en partie pour des raisons de commodité de calcul.

De plus, vous pouvez trouver que cette réponse est également utile (de math.stackexchange.com). Il est dit:

Les transformées en cosinus ne sont rien de plus que des raccourcis permettant de calculer la transformation de Fourier d'une séquence présentant une symétrie particulière (par exemple, si la séquence représente des échantillons d'une fonction paire).


19

La transformation de Fourier appliquée à deux reprises lors du processus d'extraction de fonctionnalités s'explique par le fait que les fonctionnalités sont basées sur un concept appelé cepstrum. Cepstrum est un jeu de spectre de mots. L’idée est essentiellement de transformer un signal en domaine de fréquence par transformée de Fourier, puis d’effectuer une autre transformation comme si le spectre de fréquences était un signal.

Alors que le spectre de fréquences décrit l’amplitude et la phase de chaque bande de fréquences, le cepstre caractérise les variations entre les bandes de fréquences. Les caractéristiques dérivées du cepstre décrivent mieux la parole que les caractéristiques tirées directement du spectre de fréquences.

Il existe quelques définitions légèrement différentes. À l'origine, la transformée cepstrale était définie par la transformée de Fourier -> logarithme complexe -> la transformée de Fourier [1]. Une autre définition est transformée de Fourier -> logarithme complexe -> transformée de Fourier inverse [2]. La motivation de cette dernière définition réside dans sa capacité à séparer les signaux convolués (la parole humaine est souvent modélisée comme la convolution d’une excitation et d’un conduit vocal).

Un choix populaire qui s’est avéré efficace dans les systèmes de reconnaissance vocale est l’application d’une banque de filtres non linéaire dans le domaine fréquentiel (le mél binning dont vous parlez) [3]. L'algorithme particulier est défini comme étant une transformation de Fourier -> un carré de magnitude -> une banque de filtres mel -> un logarithme réel -> une transformation en cosinus discrète.

Ici, DCT peut être sélectionné comme seconde transformation, car pour une entrée à valeur réelle, la partie réelle de la DFT est une sorte de DCT. La préférence est donnée à DCT parce que la sortie est approximativement décorrélée. Les entités décorrélées peuvent être modélisées efficacement sous la forme d'une distribution gaussienne avec une matrice de covariance diagonale.

[1] Bogert, B., Healy, M. et Tukey, J. (1963). La série des séries chronologiques de Quefrency pour Echoes: Cepstrum, Pseudo-Autocovariance, Cross-Cepstrum et Saphe Cracking. Dans Actes du symposium sur l'analyse des séries chronologiques, p. 209-243.

[2] Oppenheim, A. et Schafer, R. (1968). Analyse homomorphique de la parole. Dans IEEE Transactions on Audio et Electroacoustics 16, p. 221-226.

[3] Davis, S. et Mermelstein, P. (1980). Comparaison des représentations paramétriques pour la reconnaissance de mots monosyllabique dans les phrases parlées en continu. Dans Transactions IEEE sur l'acoustique, le traitement de la parole et des signaux 28, p. 357-366.


Ré. PCA dans l'extraction de fonctionnalités: un vrai PCA serait inutile ici car il dépend des données! Si vous calculez la PCA des coefficients de journalisation mel-fréquence à partir d'un jeu de données, puis à partir d'un autre, vous obtiendrez une base différente - ce qui voudrait dire que si PCA était utilisé dans le processus d'extraction de caractéristiques, les caractéristiques extraites d'un signal ne 't "signifie la même chose" que les caractéristiques extraites sur l'autre signal. Faites maintenant cette expérience: calculez la PCA sur un ensemble de log Mel coef. extrait de 10 heures d'audio les plus diverses. La base que vous trouverez est étrangement similaire à la base DCT.
Pichenettes

3
En d'autres termes: pour être utile dans une application de reconnaissance, la transformation de décorrélation à la fin du processus d'extraction de caractéristiques doit être une sorte de compromis approprié pour "l'audio" en général, plutôt que pour des données spécifiques. Il s’avère que la base DCT est très proche de ce que vous obtenez lorsque vous exécutez une PCA sur un grand ensemble d’audio!
Pichenettes

J'ai récemment vu PCA utilisé à la fin du processus d'extraction de caractéristiques dans un système vocal expérimental. Ce système calcule la projection PCA à partir des données d'apprentissage et utilise ensuite la même base.
Seppo Enarvi

8

La différence entre une transformation discrète de Fourier et une transformation discrète en cosinus réside dans le fait que la DCT utilise uniquement des nombres réels, tandis qu'une transformation de Fourier peut utiliser des nombres complexes. L'utilisation la plus courante d'un DCT est la compression. Cela équivaut à une FFT de deux fois la longueur.


1
Il est cependant possible de concevoir le DCT / DST d'une séquence complexe, où l'on prend séparément le DCT / DST des parties réelle et imaginaire.

alors pouvons-nous dire que si je calcule DFT, je reçois DCT gratuitement, tout ce que j'ai à faire est de supprimer les parties imaginaires du vecteur. Corrigez-moi si j'ai tort, s'il-vous plait.
Marek

1
C'est un peu plus complexe que cela, mais il est possible de convertir assez facilement entre une FFT et une DCT.
PearsonArtPhoto
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.