Question

La FFT typique pour l'audio est assez similaire à celle-ci, la plupart des actions ayant lieu à l'extrême gauche

http://www.flight404.com/blog/images/fft.jpg

Il l'a multiplié par une onde partielle en sinus pour le rendre au fond, mais l'article n'est pas trop spécifique sur cette partie de celle-ci. Cela semble aussi être un & "Assez bien &"; modification de l'ensemble de données, plutôt que celle basée sur une propriété. Je comprends que l’audition humaine est mieux adaptée aux fréquences les plus hautes. La plupart des morceaux de musique auront donc des graves amplifiés et des aigus atténués, ce qui nous donnera un son de force relativement égale.

Ma question est la suivante: quelles modifications faut-il apporter à la FFT pour compenser cette baisse standard?

for(i = 0; i < fft.length; i++){
     fft[i] = fft[i] * Math.log(i + 1); // does, eh, ok but the high
                                        // end is still not really "loud"
                                        // enough
}

EDIT ::

http://en.wikipedia.org/wiki/Equal-loudness_contour

Je suis tombé sur cet article, je pense que c'est peut-être la direction à prendre, mais il reste peut-être encore une propriété d'une FFT qui doit être contrecarrée.

Était-ce utile?

La solution

Tout d’abord, êtes-vous sûr de vouloir faire cela? Il est logique de compenser certaines choses, telles que la réponse du microphone n’est pas uniforme, mais pas la perception humaine. Les gens ont l'habitude d'entendre des sons avec le contenu spectral qu'ils ont dans le monde réel, et non selon des courbes perceptuelles de volume égal. Si vous jouez un son que vous avez modifié de la manière que vous suggérez, cela semblerait étrange. Peut-être que certaines personnes aiment la musique pour avoir des basses fréquences améliorées, mais c'est une question de goût, pas de psychophysique.

Ou peut-être que vous compensez pour une autre raison, par exemple, la prise en compte de la sensibilité plus faible aux basses fréquences pourrait améliorer un algorithme de compression. Est-ce l'idée?

Si vous souhaitez normaliser les courbes d'égale valeur, il convient de noter que la plupart des courbes et des équations sont exprimées en termes de niveau de pression acoustique (SPL). SPL est le log du carré de l'amplitude de la forme d'onde. Ainsi, lorsque vous travaillez avec des FFT, il est probablement plus facile de travailler avec leur carré (le spectre de puissance). (Ou, bien sûr, vous pouvez compenser d'autres manières, par exemple, en multipliant par sqrt (log (i + 1)) dans l'équation ci-dessus - en supposant que le journal est une approximation de la courbe inverse de la sonie inverse.)

Autres conseils

Je pense que le contour de volume égal est exactement la bonne direction. Cependant, sa forme dépend du niveau de pression absolue. En d’autres termes, la courbe de sensibilité de notre audition change avec la pression acoustique.

Il n'y a pas de " normalisation correcte " si vous n'avez aucune information sur les niveaux absolus. Si cela pose un problème, cela dépend de ce que vous voulez faire avec les données.

Le contour de la sonie est normalisé dans la norme ISO 226 mais ce document n’est pas librement disponible au téléchargement. Cela devrait cependant être dans une bibliothèque universitaire décente. Voici une autre source d'informations sur contours de volume

Vous essayez donc de relever le niveau des hautes fréquences? Cela ressemble à un filtre passe-haut avec un multiplicateur minimum qui pourrait fonctionner, afin de ne pas atténuer trop les signaux basse fréquence. Procurez-vous un bon livre sur la conception des filtres, avec cette applet

À l’époque des premiers échantillonneurs, c’était avant MOTU Boost :) ce n’était pas une FFT, mais une simple (Fairlight ou Roland d’abord, je pense) Normalisation effectuée sur le signal de domaine temporel original ou résultant (si vous êtes coupant en tranches de battement, style de recyclage); tu ne peux pas faire ça? Ou seulement opter pour la FFT après avoir compensé pour compenser?

Cela ressemble à une procédure en deux phases sinon, je laisserais personnellement FFT telle quelle pour la tâche.

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