Une conversion de fréquence d'échantillonnage augmente le niveau crête ?
- 146 réponses
- 18 participants
- 15 972 vues
- 25 followers

scare

Ce soir je finalisais des masters pour les mettre sur cd.
Mon projet est a 88,2 kHz, 24 bit, a l export du mastering, je sélectionne donc 44,1 et 16 bit.
Mes masters lors de la lecture dans Logic 9 modulent a -0,2 dB crête. Cependant logic en exportant en 44,1 16 bit me colle a 0 dB, ca clippe !!
Je fais le même export en 88,2 et ca marche, je retrouve bien mon signal modulant a -0,2 dB. Je n ai coche aucune option de normalisation ou quoi que ce soit ....
Logic ne sait pas passer de 88,2 a 44,1 .... C est pitoyable, je suis sur le cul
C est quoi ce bug !!!!!!
Construction du nouveau studio
Visitez le site THD STUDIO / page FB THD Studio
Dossier : Conversion analogique-numérique (pour les courageux)

Dr Pouet

Pourtant j'ai eu le meme probleme de crete en passant du 96khz a 48khz (en convertissant avec cubase et izotope)
Oui mais ce n'est pas le seul problème qu'il peut y avoir pendant la conversion.
Je t'invite à relire le message d'EraTom que j'ai mis en lien.
La conversion de fréquence (= ré-échantillonnage) se fait en 2 étapes :
1- d'abord filtrage passe-bas pour éviter le repliement / aliasing
2- ensuite la décimation = "calcul" des nouveaux échantillons à partir des anciens
A priori les problèmes de niveaux crêtes sont essentiellement dus à l'étape 1. Dans le cas d'une division de fréquence par 2 (96kHz -> 48kHz ou 88 -> 44kHz), les problèmes de niveaux crêtes sont uniquement dus à l'étape 1. C'est une partie des problèmes liés au ré-échantillonnage.
Les autres problèmes éventuels du ré-échantillonnage sont liés à l'étape 2. Si la fréquence d'échantillonnage (=FE) cible n'est pas une division entière de la FE initiale, il y a un calcul d'interpolation, qui n'est pas simple, et qui introduira de la distorsion, plus ou moins grande.
Donc en résumé : en choisissant des multiples de 2, comme 96 et 48kHz, ou 88 et 44kHz, certes ça ne simplifie pas l'étape 1, mais au moins ça simplifie le problème de l'étape 2.
J'espère que c'est plus clair comme ça

[ Dernière édition du message le 17/08/2011 à 11:34:19 ]

Anonyme

une petite question, quid du jitter lors d'une SRC?
J'ai cru comprendre en lisant le mémoire de christophe que selon la méthode utilisée et le rapport entre la Fe entrante et la Fe sortante, on pouvais y avoir droit?

Dr Pouet

(déjà je pense qu'on accorde au jitter une place très grande par rapport à la réalité audible du problème ; mébon, regardons la question d'un point de vue théorique)
Par ailleurs, il semble y avoir de gros problèmes d'encodages de caractères sur son site.
Le mémoire est orienté hardware, donc certains problèmes ( "il est fréquent que la fréquence d'échantillonnage en sortie de SRC ne puisse pas être verrouillée sur celle entrante"...) ne concernent pas le sujet qui nous occupe. J'ai juste parcouru le §1.6
Dans le cas de division entière de fréquence : la conversion n'ajoute pas de jitter.
Sinon, ben ça fait partie des distorsions apportées par l'interpolation effectuée lors de la décimation. Donc logiquement ça fait partie des défauts mis en évidence par http://src.infinitewave.ca/
C'est aussi ce qu'écrit Christophe :
Dans le cas où le facteur de conversion entre les deux fréquences d'échantillonnage est un nombre entier (par exemple passage de Fe=48kHz àFe=96kHz), on peut déterminer les tops d'échantillonnage sans erreur.
Cela dit, pour le cas qui nous occupe, il considère plutôt que c'est fait sans erreur:
Un SSRC n'admet que des fréquences d'échantillonnage fixes en entrée, il n'admet pas le varispeed et n'est pas sujet au jitter.
C'est comme les erreurs d'arrondi : on peut considérer que ce n'est pas une erreur ! C'est vrai que c'est généralement négligeable, surtout au vu de l'analogique en amont et en aval.
Évidemment, s'il y avait du jitter dans la ou les conversions qui ont créé le ou les fichiers initiaux, il y sera après conversion, additionné à celui du ré-échantillonnage.
[ Dernière édition du message le 17/08/2011 à 14:28:16 ]

scare

Sampling jitter et convertisseurs de fréquence d'échantillonnage (SRC)
Les convertisseurs de fréquence d'échantillonnage sont utilisés pour convertir un signal audionumérique de fréquence donnée en un signal de fréquence différente. La conversion induit de facto une interpolation (ou une décimation) entre les tops d'échantillonnage du signal audionumérique entrant et la génération de valeurs pour les nouveaux tops d'échantillonnage.
Dans le cas où le facteur de conversion entre les deux fréquences d'échantillonnage est un nombre entier (par exemple passage de Fe=48kHz à Fe=96kHz, facteur de conversion égal à 2), on peut déterminer les tops d'échantillonnage avec précision et sans erreur. Dans ce cas, il est possible d'effectuer la conversion sans sampling jitter, les flux entrant et sortant doivent cependant être synchronisés. A l'inverse, une conversion de 44,1kHz vers 96kHz, par exemple, peut être effectuée en utilisant un rapport mathématique de 320/147 ; ce qui signifie que pour 147 échantillons en entrée de SRC on obtient 320 échantillons en sortie. Les coefficients des filtres d'interpolation peuvent être basés sur cette relation mathématique. Ce type de SRC est appelé convertisseur de fréquence d'échantillonnage synchrone (Synchronous Sample Rate Converter SRC). Un SRC n'admet que des fréquences d'échantillonnage fixes en entrée, il n'admet pas le varispeed et n'est pas sujet au jitter.
A l'opposé, il est fréquent que la fréquence d'échantillonnage en sortie de SRC ne puisse pas être verrouillée sur celle entrante (à cause des rapports mathématiques entre les deux Fe). De plus, un certain nombre d'équipement est conçu pour conserver une grande flexibilité d'utilisation ; autrement dit pour faire face des rapports de conversion arbitraires entre les fréquences entrantes et sortantes. Dans ce cas, la conversion est beaucoup plus complexe (que pour le SSRC) et inclus un algorithme qui tente d'aligner les échantillons entrants et sortants en se basant sur leurs instants d'arrivée respectifs. Les filtres sont calculés régulièrement par l'algorithme et si besoin ajuster, au cas où l'appareil émetteur autorise le varispeed. Toutefois, le jitter de l'émetteur affectera le SRC et aura pour effet de réduire la largeur de l'image stéréophonique (de quelques degrés). Ce type de SRC est appelé convertisseur de fréquence d'échantillonnage asynchrone (Asynchronous Sample Rate Converter ASRC).
Aucun soucis de jitter en ce qui concerne nos conversions de de Fe courantes en audio.
Construction du nouveau studio
Visitez le site THD STUDIO / page FB THD Studio
Dossier : Conversion analogique-numérique (pour les courageux)
[ Dernière édition du message le 17/08/2011 à 14:23:27 ]

scare

Le mémoire est orienté hardware,
Si si il parle très bien du sujet, voir le post précédent.
Construction du nouveau studio
Visitez le site THD STUDIO / page FB THD Studio
Dossier : Conversion analogique-numérique (pour les courageux)

Dr Pouet


donc certains problèmes ne concernent pas le sujet qui nous occupe
ne veut pas dire :
"ce mémoire n'a aucun rapport avec le sujet qui nous occupe"
[ Dernière édition du message le 17/08/2011 à 14:32:51 ]

scare

Tu n'aurais pas édité ton message petit coquinou ? ou j'ai gégainé plus vite
Construction du nouveau studio
Visitez le site THD STUDIO / page FB THD Studio
Dossier : Conversion analogique-numérique (pour les courageux)
[ Dernière édition du message le 17/08/2011 à 14:37:02 ]

Dr Pouet

Le mémoire est orienté hardware, donc certains problèmes ( "il est fréquent que la fréquence d'échantillonnage en sortie de SRC ne puisse pas être verrouillée sur celle entrante"...) ne concernent pas le sujet qui nous occupe.
n'a pas bougé. Donc oui, tu as un peu lucky-luké sur ce coup !

Dr Pouet

Voici les pistes que j'ai pour l'instant:
Audacity utilise cette librairie : https://wiki.audacityteam.org/wiki/Libresample
dont les algos sont les mêmes que Secret Rabbit Code (= SRC, ste blague! ), également testé sur http://src.infinitewave.ca/ .
Sur la page web de SRC les algos utilisés ne sont pas non plus indiqués, ce n'est pas non plus écrit en gros dans les commentaires du code source (pas plus regardé) ! Par contre il y est dit que la meilleure méthode donne 96% de bande passante et 145dB de rapport signal/bruit.
Ces deux librairies sont basées là-dessus :
https://ccrma.stanford.edu/~jos/resample/ (version pdf complète de ces pages web)
Une solution est donc de lire posément le contenu de ces pages (je les ai juste survolées).
Une bonne page de référence globale :
http://wiki.hydrogenaudio.org/index.php?title=Resampling
Sinon dans cette discussion ils évoquent une page qui semble très intéressante, d'autant qu'elle est en français:
http://ldesoras.free.fr/prod.html
Lire tranquillement le document "À La Recherche Du Rééchantillonneur Parfait" doit fournir pas mal de réponses...

Dr Pouet

Dans la liste de src.infinitewave.ca je vois qu'il y a Zita-resampler qui est aussi un logiciel libre. Peut-être que cette page pourra t'aider dans tes recherches sur les algos utilisés pour les conversions :
http://kokkinizita.linuxaudio.org/linuxaudio/zita-resampler/resampler.html
L'algorithme est le même que celui de libsamplerate (=Secret Rabbit et donc Audacity), mais allégé pour engendrer moins de charge CPU. La page de présentation est un peu plus claire et mentionne notamment que l'algorithme est équivalent à :
- upsampling jusqu'à une fréquence commune aux 2 FE
- filtrage passe-bas
- sélection des samples de la fréquence de destination
(même si ce n'est pas programmé comme ça)
Les filtres sont des FIR.
A la fréquence de Nyquist, le filtre de Zita est à -60dB, tandis que côté Audacity c'est -100dB.
[ Dernière édition du message le 17/08/2011 à 17:54:02 ]

EraTom

Ne serait-il pas possible que des excitations de la bande haute-fréquence, rejetée par le processus de sous-échantillonnage, aient des interactions dans la bande basse-fréquence conservée perçues par des effets psycho-acoustiques ?
Par exemple, l'oreille (de l'orifice jusqu'au nerf) est un système qui possède quelques fréquences de résonances. Si j'applique une excitation à une fréquence multiples de l'une de ces fréquences de résonance, il est possible que je la perçoive (pas à la bonne fréquence, mais je la perçois quand-même).
"Mathématiquement" on cherche le filtre passe-bas parfait, en forme de porte dans le domaine fréquentiel, mais est-ce que l'introduction de certaines variations (ou une ré-injection pondérée de la bande rejetée après un décalage de fréquences, qui pourrait d'ailleurs être réalisée en jouant sur le recouvrement spectral qui intervient avec la décimation) ne permettrait pas d'améliorer la conversion en terme de qualité sonore perçue ?
Il me semble avoir lu quelques (rares) publications sur cette idée ; ça dit quelque chose à l'un d'entre-vous ?
[ Dernière édition du message le 17/08/2011 à 18:50:36 ]

Dr Pouet

"Mathématiquement" on cherche le filtre passe-bas parfait, en forme de porte dans le domaine fréquentiel, mais est-ce que l'introduction de certaines variations (ou une ré-injection pondérée de la bande rejetée après un décalage de fréquences, qui pourrait d'ailleurs être réalisée en jouant sur le recouvrement spectral qui intervient avec la décimation) ne permettrait pas d'améliorer la conversion en terme de qualité sonore perçue ?
Il me semble avoir lu quelques (rares) publications sur cette idée ; ça dit quelque chose à l'un d'entre-vous ?

J'ai un peu parcouru : http://ldesoras.free.fr/prod.html (À La Recherche Du Rééchantillonneur Parfait) mais son objectif est la lecture de samples pour sampler/synthétiseur, donc c'est un peu différent. Toutefois il semble tempérer l'intérêt des interpolations polynomiales :
Pour augmenter la qualité, il est nécessaire d'augmenter l'ordre du polynôme et le nombre de points utilisés. Malheureusement, les calculs nécessaires croissent beaucoup plus rapidement que les gains en qualité, ce qui limite l'intérêt de l'interpolation polynomiale.
Nous disposons également des convolutions par filtre FIR. Il s'agit de l'application directe du théorème d'échantillonnage, auquel on ajoute une fonction fenêtre pour limiter le terme sinc théoriquement infini.
Concernant le filtre, il écrit aussi :
Méthode de conception du filtre. Elle dépend des outils dont vous disposez ! Si vous
ne pouvez pas utiliser l'algorithme de Parks-McClellan, essayez un sinc fenêtré. Les
fenêtres classiques comme celles de Hanning ou de Blackman-Harris ont généralement
des lobes latéraux trop élevés. Préférez les fenêtres que vous pouvez paramétrer, comme
celle de Dolph-Chebyshev ou de Kaiser.
J'ai ensuite commencé à lire : http://ccrma-www.stanford.edu/~jos/resample/resample.pdf
l'algo semble basé sur le sinc, voir §3.3. D'après la page 11, il semble aussi que le filtrage se fasse par FIR.
Dans la discussion mentionnée plus haut, c'est aussi leur compréhension, et il y a un schéma pour l’illustrer.
Enfin, il semble que leur sinc ne soit pas calculé (j'aurais pensé qu'on commençait par le calculer en fonction des 2 FE et remplir une table avec les valeurs calculées) mais interpolé depuis une table statique.
Cela dit, comme c'est un peu dense, je peux avoir compris des trucs de travers.


EraTom


Dr Pouet

Mais la conclusion du résumé est rassurante :
Many options currently exist for sample rate conversion. With sample rate reduction playing an integral part in the modern production world, downsampling algorithm quality is more important than ever. This paper presents data exploring the differences in sample rate reduction algorithms. While certain tests clearly display differences in the quality of the algorithms, listening test data shows the average listener is unable to repeatedly discern the difference in sample rate reduction methods.


Zerosquare


Ça dépend effectivement de la réponse du filtre utilisé lors du réenchantillonnage.
[ Dernière édition du message le 18/08/2011 à 00:42:16 ]

Danguit

Citation :Existe-il des articles sur ce sujet ?Par exemple, l'oreille (de l'orifice jusqu'au nerf) est un système qui possède quelques fréquences de résonances. Si j'applique une excitation à une fréquence multiples de l'une de ces fréquences de résonance, il est possible que je la perçoive (pas à la bonne fréquence, mais je la perçois quand-même).
D'après ce que je sais, ces résonances se trouvent vers 2.5k et 6kHz.
Or quand je balaye lentement par exemple entre 14k et 21k (fréquences inaudibles pour des oreilles plus toutes jeunes), je n'entends pas de son vers 2.5k ou 6k alors que je suis passé sur des harmoniques de ces fréquences. Par conséquent la possibilité évoquée me laisse sceptique (mais je peux me tromper car cet aspect n'est pas vraiment dans mon domaine de compétence).
[ Dernière édition du message le 18/08/2011 à 17:48:32 ]

Zerosquare

Par contre, il existe effectivement de (légères) non-linéarités dans le système auditif humain. Ça a pour effet de créer des produits d'intermodulation, et ça serait une explication pour le fait qu'on peut parfois déceler la présence d'ultrasons alors qu'ils sont au-delà du domaine audible normal.

Danguit

Je pense que l'explication fournie est fausse

EraTom

les multiples d'une fréquence de résonance ne sont pas toujours des fréquences de résonance elles-mêmes
Et quand elles le sont, on les appelles des harmoniques.
C'est mathématique, un exemple classique est le phénomène de Gibbs.
Ah ben oui, le théorème de Dirichlet, c'est un "problème" auquel j'aurais dû penser tout de suite...
Illustration avec une petite animation qui donne la construction d'un signal carré en ajoutant des harmoniques de plus en plus hautes :

Il suffit d'imaginer ce que ça donne quand on fait l'inverse avec le filtre passe-bas...
Même si le filtre passe-bas est "parfait" (une porte), la suppression des harmoniques de hautes fréquences du signal initial donnera, de toute façon, des oscillations qui feront bouger la valeur max... La dynamique augmente.
[ Dernière édition du message le 19/08/2011 à 19:32:47 ]

redscreen

The Izotope preset pour passer à 44.1 kHz :
Filter steepness : 2000
cut off shift : 1.00
Pre-ringing : 1.0
(Post limiter décoché)
je converti des fichiers 96/24 en 44/16,
d'habitude j'utilise iZotope 64 src et je laisse les options par défaut car je n'y connait rien.
Et le "filter steepness" est à 32.
C'est mieux de le mettre à 2000 ?
Il n'y a pas de desavantage à ça ?
Si oui peux tu m'expliquer pourquoi ?
La doc est en anglais, je comprend à moitié,
je crois comprendre que lorqu'on met le filter steepness à fond, ça affecte le ringing ?? enfin je comprend pas.......
Merci d'avance.
[ Dernière édition du message le 03/12/2011 à 16:19:24 ]

blackbollocks

flag
#ALAPLAJ L'été n'est pas fini partout!

redscreen

Pour "Scare": j'ai vu que c'était toi qui parler de ce sujet,
aurais tu des précisions à m'apporter ?
Merci.
- < Liste des sujets
- Charte