Main menu:

Site search

Categories

juin 2008
L M M J V S D
 1
2345678
9101112131415
16171819202122
23242526272829
30  

Archive

Analyse spectrale des fichiers mp3

J’aurais pu mettre aussi comme titre: influence du taux de compression sur la largeur du spectre. En effet, je ne me suis, ici, intéressé uniquement à la coupure haute du spectre en fonction du taux de compression. Une des techniques utilisées dans le codage mp3 pour comprimer le son est de supprimer les fréquences hautes soit-disant inaudibles. Plus on compresse et plus la fréquence de coupure est basse et donc moins le spectre est large. C’est ce qu’on va voir ici.

En analogique, pour connaître la fréquence de coupure haute d’un équipement, on l’alimente avec un bruit blanc (densité spectrale constante pour toutes les fréquences) ou un bruit rose (densité spectrale inversément proportionnelle à le fréquence) et on mesure le spectre résultant. Dans le cas d’un algorithme de compression, il n’est pas possible de procéder ainsi. Un bruit blanc est un signal qui s’apparente à un signal aléatoire et est incompressible. Pour pouvoir tout de même mesurer cette fréquence haute, je me suis servi d’un court morceau de musique contenant un spectre suffisamment étendu dans l’aigu. Il s’agit d’un extrait du morceau Brothers in arms de Dire Straits.

Pour rappel, le spectre d’un signal s’étend en général jusqu’à 20 kHz dans les fréquences hautes. Plus les fréquences hautes sont coupées plus le son ressemble à un son téléphonique. Même si ces fréquences hautes sont inaudibles pour l’homme, elles participent à l’ensemble du son et sont nécessaires. Couper ces fréquences revient à détériorer la qualité du son.

Ci-dessous, le diagramme représente le spectre de l’extrait de musique sans compression. C’est le spectre obtenu après rippage en wav de l’extrait de musique.

sans compression

Ci-dessous, les diagrammes représentent le spectre pour des taux de compression de 64, 128, 192, 224 et 320 kbits/s. La compression a été obtenue au moyen de l’encodeur lame qui est réputé pour sa bonne qualité. Voyez comme le spectre est réduit dans les fréquences hautes pour des taux de compression élevés. Les graphes sont dessinés avec gnuplot et avec l’abscisse linéaire plutôt que logarithmique pour bien faire ressortir les différences.

mp3 64kbits/s
mp3 128kbits/s
mp3 192kbits/s
mp3 224kbits/s
mp3 320kbits/s

A 64 kbits/s, le spectre dans les hautes fréquences dépasse difficilement les 10kHz. Plus le taux de compression diminue (plus le bitrate augmente) et plus la fréquence de coupure haute s’approche de celle du spectre original.
En ce qui concerne la taille des fichiers obtenus, à 64 kbits/s, le fichier est 21x plus petit que l’original. A 128 kbits/s, le fichier est 15x plus petit, à 192 kbits/s 7x plus petit, à 224 kbits/s 6x plus petit et à 320 kbits/s le fichier est 4x plus petit.
On peut donc estimer que 192 kbits/s est un bon compromis pour un spectre pas trop raboté et un poids du fichier sensiblement réduit. Si vous privilégiez la qualité sur la taille du fichier obtenu, 320 kbits/s est certainement la valeur à choisir comme taux de compression.

Comments

Comment from Emmanuel
Time: 6 juillet 2008, 11 h 45 min

Quel logiciel as-tu utilisé pour récupérer le spectre?
Le spectre est moyenné sur l’extrait?

Comment from admin
Time: 6 juillet 2008, 19 h 23 min

Oui, le spectre est moyenné sur l’ensemble de l’extrait. Ce n’est pas un spectre instantané.
Dans ce cas-ci, le programme que j’ai utilisé pour obtenir le spectre est la fonction FFT d’audacity qui est capable de donner une liste de valeur utilisable par un autre logiciel pour l’affichage. Ici gnuplot.
J’ai fait une analyse plus poussée pour mon boulot sur des encodeurs MPEG2 utilisés pour la DVB-T (TNT) et les résultats sont sensiblement équivalents en ce qui concerne le spectre.