Bonjour à tous !
Je m'adresse à vous concernant un petit programme Matlab que je rédige en ce moment.
Je n'ai pas très bien compris la méthode de calcul des coefficients de corrélation de la fonction xcross ("cross correlation sequence" dans l'aide de MathWorks). Si quelqu'un avait quelques détails, je suis preneurs !
J'utilise cette fonction pour effectuer un test de ressemblance entre deux signaux audio. Mon objectif est, à partir d'une base de donnée de signaux audio (des mots), de pouvoir comparer un autre mot à cette base pour savoir quel est le mot correspondant en utilisant la valeur du coefficient de corrélation maximum.
Le problème c'est qu'en utilisant xcorr, j'obtiens des données brutes (je ne peux pas utiliser l'option coeff qui est réservée à l'autocorrélation). Au final, lorsque je compare deux mots identiques, le coefficient de correlation maximum varie de 0.5 à 3.5, et en comparant deux mots différents, cela varie entre 0.03 et 1.3. C'est le recoupement entre les deux intervalles qui m'embete pour pouvoir distinguer correctement mes signaux.
Donc ma question c'est est-ce qu'il existe une normalisation ou toute autre solution pour palier à ce problème ?
PS : j'ai conscience que cet méthode pour faire correspondre deux signaux est peut-être un peu dépassée, mais mon objectif réel est de coder cet algorithme proprement en C par la suite, pas d'avoir une solution qui marche à tous les coups.
PS2 : Je vous remercie de m'avoir lu !
Partager