Question

Je veux réaliser l'algorithme Mel-Frequency Cepstrum, mais il y a des choses que je ne comprends pas.

Une fois que la FTT est terminée, nous devons "mapper les puissances du spectre obtenu ci-dessus sur l’échelle mel, à l’aide de fenêtres se chevauchant triangulaires".

Je sais comment calculer les triangles et je sais aussi comment passer à l’échelle mel. Je ne sais tout simplement pas quoi faire avec eux.

Si les triangles sont définis, comment mapper la puissance du spectre obtenue ci-dessus sur l'échelle mel?

Est-ce que c'est comme ça: Faire la somme des fréquences à l’intérieur du triangle et le transmettre ensuite à l’échelle mel? ou Faites la somme des fréquences à l’intérieur du triangle en fonction d’une valeur de poids (définie par la hauteur du triangle à cet endroit), puis transmettez-la à mel scale? ou Passer toutes les fréquences à l’intérieur du triangle à l’échelle mel en fonction de la valeur de weith? Une autre chose?

Quelqu'un peut-il clarifier cela pour moi

Était-ce utile?

La solution

Je pense que cette étape du processus est un peu étrange et n'a pas de sens (pour moi de toute façon). Le centre des bandes de filtres est également espacé le long de l'échelle mel, mais il s'agit de triangles sur l'échelle linéaire, c'est-à-dire comme la figure ici .

Calculez ensuite la somme pondérée à l’aide de ce triangle le long de l’axe x linéaire. (Dans cette étape précédente, je pense que certaines approches se normalisent en fonction de la zone du filtre-triangle, et d'autres non, et honnêtement, je ne suis pas sûr des conséquences finales ici, bien que je suppose que cela ne signifie pas grand-chose, sauf pour modifier le Les interprétations finales sont toutes des comparaisons relatives: l’une maintient l’énergie totale et l’autre donne des contributions pondérées de manière égale par bande.) Prenez ensuite le journal de cette opération (qui convertit le facteur de volume global en offset).

Modifier: Pour être plus clair sur l’application des filtres ... Chaque triangle représente un filtre distinct, produisant une somme pondérée distincte. S'il y a vingt filtres dans votre banque de filtres, il y aura vingt triangles et vingt sommes pondérées à calculer. Pour appliquer chaque filtre, multipliez pour chaque valeur d'axe x la valeur du filtre à cet emplacement x par la valeur de la fonction à cet emplacement x, et ajoutez-la à la somme de ce filtre particulier. La plupart des valeurs de l’axe des x pour lesquelles deux filtres sont présents, ainsi chaque emplacement des x contribue à deux filtres.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top