Se connecter
Se connecter

ou
Créer un compte

ou

Sujet Master en 192/24 d'un WAV en 44.1/16

  • 113 réponses
  • 21 participants
  • 11 422 vues
  • 20 followers
Sujet de la discussion Master en 192/24 d'un WAV en 44.1/16
Salut salut !

Petite question technique, est-ce qu'il y auras repliement de spectre ou autres problème sur un Master analogique fait à partir d'un fichier 44.1/16 et réenregistré en 192/24 ?

Je me tâte à repasser mes enregistrement 44/16 dans une console haut de game pour chatouillé un peut les preamps et EQs et en faire des fichiers HD 192/24.

Bonne idée, ou fausse bonne idée ?

Bon après si on peut éviter le débat "ça sert à rien de monter plus haut que du 44.1/16 " ce serais cool ! D'ailleurs je n'y crois pas vraiment, mais comme j'aime bien l'idée de repasser mes enregistrement un peut "lofi" dans une console, j'me dit qu'exporter le résultat en 44/16 et en 192/24 ne mange pas de pain, et ça feras des heureux côtés consommateurs de HDaudio...

Merci !
Afficher le sujet de la discussion
31
Citation :
Le bruit de quantification est un bruit blanc dont la puissance totale s'étale sur toute la bande passante

C’est pas forcément un bruit blanc parfait. C'était d'ailleurs bien expliqué dans la vidéo Digital Show. Ci dessous, le bruit seul généré par le L2 en position type1 et normal.

484562noiseL2.gif

Le bruit est creusé dans la zone la plus audible vers 3/4Khz et largement boosté au dessus de 16Khz la ou il est quasiment inaudible. Un bruit blanc parfait aurait été une ligne parfaitement plate.

Citation :
si tu doubles la fréquence d'échantillonnage le plafond du bruit dans le spectre descend de 3dB mais la puissance totale reste la même (c'est ce qu'exploite un CAN delta-sigma en plus sophistiqué).

Oui c'est vrai, sauf que tu oublies une chose: ce qui est au dessus de 20Khz n'est pas audible, donc ce qui est au dessus de 20Khz n’est pas pris ne compte dans les standards de mesure. Il y a d'ailleurs la norme AES17 qui comporte, entre autres des standards de niveau, l'utilisation d'un filtre coupant tout ce qu'il y a au dessus de 20Khz (atténuation requise pour satisfaire à la norme: -60dB à 24Khz)
http://www.audiotech.com.tw/AES17%20Filter.htm

Citation :
Il faut la mesurer sur toute la bande, en partant de 0Hz ; ceci-dit, ça ne suffit pas à expliquer les dB qui manquent.

Non: La norme AES17 stipule un filtre qui réjecte les fréquences les plus basses.

Citation :
Ce qui m'étonne aussi ce sont les disto harmoniques sur une sinusoïde "parfaite" générée en numérique (je veux dire, sans saturation imputable à un étage analogique).

Ben apparemment tu n'as jamais vu ce qu'on peut obtenir avec de bons convertisseurs. Accroche toi parce que tu vas être choqué. Ci dessous c'est la mesure d'un processeur de sonorisation utilisant des convertisseurs AKM 24 bits (j'ai plus la référence en tête, mais on les retrouve aussi sur des cartes son RME), mesure en 24bits donc.

988784processeur.gif

Et ne me dis pas cette fois ci que c’est impossible, le magasine sonomag obtient des résultats qui sont comparables aux miens tout comme Jipihorn qui mesure sur un banc Audio Precision.

Citation :
Tu n'as pas besoin de passer par une FFT : Il suffit de calculer la puissance sur une moyenne temporelle de la différence entre les signaux quantifiés et "idéaux" (i.e avec une quantif très fine dont l'erreur est négligeable).

Pour le bruit de fonds, on peut se passer de FFT, mais pour le SNR et le THD, tous les logiciels de mesures utilisent la FFT. Je viens d'essayer de mesurer dans Wavelab le niveau du fichier ne présentant que le dithering du L2, Wavelab affiche bien un mini et maxi RMS, mais refuse d'afficher la moyenne. Donc pas si simple que cela.

Citation :
Le calcul théorique donne la limite "dans le meilleur des mondes" ; tu devrais te retrouver avec un SNR moins bon "dans la vraie vie" et certainement pas meilleur...

c'est ce que j'écrivais, je me cite:

Citation :
Evidemment, si on mesure la même chose en sortie d'un convertisseur 16 bits à partir du même fichier 16 bits, le SNR sera plus faible. Mais le but de la mesure dans un domaine strictement numérique est de mettre en évidence les défauts de la conversion 48/44.1Khz, pas les défauts d'un convertisseur.

[ Dernière édition du message le 15/04/2015 à 20:15:26 ]

32
Y'a que moi qui suis complètement largué ? :-D

33

Citation de Reno :

Y'a que moi qui suis complètement largué ? :-D

 Oui !

icon_diablotin.gif

34
Bon bein je vais me mettre au fond, près du radiateur.... :-D
35
Nan, c'est ma place. :furieux:
36
Citation :
C’est pas forcément un bruit blanc parfait. C'était d'ailleurs bien expliqué dans la vidéo Digital Show. Ci dessous, le bruit seul généré par le L2 en position type1 et normal.

484562noiseL2.gif

Le bruit est creusé dans la zone la plus audible vers 3/4Khz et largement boosté au dessus de 16Khz la ou il est quasiment inaudible. Un bruit blanc parfait aurait été une ligne parfaitement plate.

Ben c'est plutôt normal, puisque ce n'est pas juste un bruit blanc, mais un bruit de dithering filtré.
37
x
Hors sujet :
Avant de devenir trop pénible : Je ne cherche pas à t'emmerder mais juste à comprendre la méthode de mesure et les chiffres. -5dB pour le passage de 48kHz à 44.1kHz ça me semble beaucoup d'après mon expérience. J'ai conçu mieux en assez peu d'effort, sans être un surhomme avec mes petits bras, alors ça m'étonne pour un outil comme Wavelab.


Citation :
Le bruit est creusé dans la zone la plus audible vers 3/4Khz et largement boosté au dessus de 16Khz la ou il est quasiment inaudible. Un bruit blanc parfait aurait été une ligne parfaitement plate.
C'est parce que ce n'est pas un bruit de quantification mais un bruit ajouté au dithering (ou encore un bruit mis en forme par une modulation delta-sigma, mais là ça me semble trop important).
Dès que le signal quantifié dépasse à 4 ou 5 bits et que l'on ne tombe pas sur une fréquence tordue qui créerait des erreurs systématiques, l'erreur de quantification se comporte bien comme un bruit blanc.

Citation :
Non: La norme AES17 stipule un filtre qui réjecte les fréquences les plus basses.
Oui mais là c'est un peu hors sujet. On ne cherche pas à estimer ce qui est perçu mais ce qui est générer par les traitements (pour arriver à la conclusion que ce n'est pas perçu, finalement).

Citation :
Ben apparemment tu n'as jamais vu ce qu'on peut obtenir avec de bons convertisseurs.
Si si... Mais je ne comprends pas : Ton signal passe par un CAN où est-ce que tu ne fais que de la synthèse numérique comme tu le disais dans un post précédent (en tout cas c'est ce que j'ai cru comprendre) ?

Citation :
Pour le bruit de fonds, on peut se passer de FFT, mais pour le SNR et le THD, tous les logiciels de mesures utilisent la FFT.
Pour le SNR c'est justement le bruit de fond. Le THD je ne vois pas trop ce qu'il vient faire là si tu génères tout en numérique avec une pure sinusoïde de test (pourquoi les harmoniques alors ?).

Citation :
c'est ce que j'écrivais, je me cite:
Ta première mesure de SNRq sur une quantif à 16bits est proche de 100dB. Ce n'est pas anormal de trouver parfois quelques dixièmes au-dessus de la limite théorique (parce que le signal test n'est pas parfait, il y a des erreurs de calcul dans l'outil, si tu passes par une FFT il y a des biais, etc.) mais 2dB c'est beaucoup pour de la simu numérique.

2dB de plus que la limite théorique et -5dB pour le passage à 44.1kHz, je trouve ça étrange, d'où le questionnement.

Je termine un script de test sous MatLab et je reviens avec des données...
38
Voici ce que j'ai fait :
- Génération de 2 sinusoïdes de fréquence 1347Hz échantillonnées à 44,1kHz et 48kHz en double précision d'une durée de 10 secondes : Ce sont mes sinusoïdes de référence dont le pas de quantif est négligeable devant les pas des quantif 16 et 24 bits;
- Quantifications des sinusoïdes à 16bits et 24bits pleines échelles ;
- Calculs des erreurs par rapports aux sinusoïdes de test puis des SNR en dB en calculant le rapport des puissances sur le temps (on voit ce que ça donne par rapport à la théorie).

Ensuite :
- Interpolation (avec une méthode du pauvre) du signal 24bits @48kHz vers 16bits @44,1kHz avec une précision de calcul en double float;
- Calcul de l'erreur par rapport à la sinusoïde de test et SNR.


Je ne me suis pas occupé des filtres de repliement parce qu'à cette fréquence il n'y en a pas besoin.
Je ne simule pas de disto harmonique.
Pas de dithering parce qu'en pleine échelle et avec ce choix de fréquence il n'y en a pas besoin pour assurer un bruit de quantification uniforme.

Je ne m'intéresse donc qu'à la contribution de l'interpolation.

A noter que je n'utilise pas un bon interpolateur : Il faudrait utiliser celui de Shannon mais j'ai la flemme de me lancer dans son codage.

Je ne prends quand-même pas une interpolation "plus proche voisin" ou "linéaire" qui sont des insultes au traitement du signal audio (et là pour le coup on aurait un post d'erreur de plus de 30dB). J'ai donc choisi les splines, déjà implémentées, qui ont au moins le mérite de pouvoir "lisser" suivant les tangentes à la courbe (je ne vous ai pas menti, ce n'est pas très beau).
Je n'ai pas testé l'interpolation cubic mais avec le phénomène de Runge ça ne doit pas être fameux non plus.


J'ai scripté sous MatLab mais il n'y a pas de fonction exotique ; ça doit aussi tourner avec SciLab qui est gratuit, lui (mais je n'ai pas testé).


Voici les résultats :
SNR quantif 16 bits théorique = 98.0905 dB
SNR quantif 16 bits @44,1kHz = 98.0262 dB
SNR quantif 16 bits @48kHz = 98.1678 dB

SNR quantif 24 bits théorique = 146.2553 dB
SNR quantif 24 bits @44,1kHz = 146.2242 dB
SNR quantif 24 bits @48kHz = 146.2635 dB

SNR quantif 16 bits @44,1kHz à partir du signal 24 bits @48kHz = 97.9536 dB


Et le cadeau bonux :
SNR quantif 16 bits @44,1kHz à partir du signal 16 bits @48kHz = 95.3974 dB (tiens tiens...)
(ce n'est pas le bon ordre, il faut baisser la quantif après avoir sous-échantillonné, sinon on trimbale l'erreur sur le bit de poids faible des 16bits)

Si on ajoutait un bruit, l'interpolation par des splines ne passerait pas aussi bien ; il faudrait faire l'interpolation correcte avec l'interpolateur de Shannon.


Le code pour ceux qui veulent jouer avec (copier/coller) :
close all
clear all
clc

%% Paramètres
Duree = 10; % en secondes

Fe1 = 44100; % en Hz
Fe2 = 48000;

Q1 = 16; % en bits
Q2 = 24;

Freq = 1347; % Fréquence du signal de test en Hz ; choisie pour ne pas être un multiple des Fe

%% SNR Max Théoriques
SNRQ1Th = 10*log10((3/2)*2^(2*Q1));
SNRQ2Th = 10*log10((3/2)*2^(2*Q2));

%% Génération de la sinusoïde de test
NbEchantillons1 = Duree*Fe1;
NbEchantillons2 = Duree*Fe2;

SinusIdealeFe1 = sin((0:1:NbEchantillons1)*(2*pi*Freq/Fe1)); %64 float entre -1 et 1
SinusIdealeFe2 = sin((0:1:NbEchantillons2)*(2*pi*Freq/Fe2));

%% Quantification des sinusoïdes
SinusQ1Fe1 = round(2^(Q1-1)*SinusIdealeFe1)/2^(Q1-1); %Qx-1 car signé, le pas reste de 2^(-Qx).
SinusQ1Fe2 = round(2^(Q1-1)*SinusIdealeFe2)/2^(Q1-1);
SinusQ2Fe1 = round(2^(Q2-1)*SinusIdealeFe1)/2^(Q2-1);
SinusQ2Fe2 = round(2^(Q2-1)*SinusIdealeFe2)/2^(Q2-1);

%% Estimation des erreurs de quantif
ErrQ1Fe1 = SinusIdealeFe1-SinusQ1Fe1;
ErrQ1Fe2 = SinusIdealeFe2-SinusQ1Fe2;
ErrQ2Fe1 = SinusIdealeFe1-SinusQ2Fe1;
ErrQ2Fe2 = SinusIdealeFe2-SinusQ2Fe2;

%% SNR signal à bruit de quantif en dB et affichage des résultats
SNRQ1Th
SNRQ1Fe1 = 10*log10(sum(SinusIdealeFe1.^2)/sum(ErrQ1Fe1.^2))
SNRQ1Fe2 = 10*log10(sum(SinusIdealeFe2.^2)/sum(ErrQ1Fe2.^2))
SNRQ2Th
SNRQ2Fe1 = 10*log10(sum(SinusIdealeFe1.^2)/sum(ErrQ2Fe1.^2))
SNRQ2Fe2 = 10*log10(sum(SinusIdealeFe2.^2)/sum(ErrQ2Fe2.^2))

%% Interpolation Q2 bits Fe2 Hz => Q1 bits Fe1 Hz
%Interpolation avec la précision de calcul de la machine vers la fréquence cible
SinusFloatFe1Interp = interp1((0:1:NbEchantillons2)/Fe2,SinusQ2Fe2,(0:1:NbEchantillons1)/Fe1,'spline');

%Quantification à Q1 bits
SinusQ1Fe1Interp = round(2^(Q1-1)*SinusFloatFe1Interp)/2^(Q1-1);

%Erreur
ErrQ1Fe1Interp = SinusIdealeFe1-SinusQ1Fe1Interp;
SNRQ1Fe1Interp = 10*log10(sum(SinusIdealeFe1.^2)/sum(ErrQ1Fe1Interp.^2))

%% Interpolation Q1 bits Fe2 Hz => Q1 bits Fe1 Hz
%Interpolation avec la précision de calcul de la machine vers la fréquence cible
SinusFloatFe1Interp2 = interp1((0:1:NbEchantillons2)/Fe2,SinusQ1Fe2,(0:1:NbEchantillons1)/Fe1,'spline');

%Quantification à Q1 bits
SinusQ1Fe1Interp2 = round(2^(Q1-1)*SinusFloatFe1Interp2)/2^(Q1-1);

%Erreur
ErrQ1Fe1Interp2 = SinusIdealeFe1-SinusQ1Fe1Interp2;
SNRQ1Fe1Interp2 = 10*log10(sum(SinusIdealeFe1.^2)/sum(ErrQ1Fe1Interp2.^2))

[ Dernière édition du message le 15/04/2015 à 22:49:04 ]

39
Et pour répondre à Danbei :

Voici ce que l'on peut faire comme filtre analogique :
http://www9.dw-world.de/rtc/infotheque/digital_signal/digital_signal_conversion.html

C'est un exemple pour du 44kHz ; la pente tient dans la bande 20-22 kHz sans problème (figure 2.2.2). Il n'y a pas le digramme de phase mais a priori c'est à partir du début de l'atténuation que des bricoles arrivent.
En échantillonnant à 48kHz tu peux faire un filtre qui coupe à partir de 22kHz en atténuant correctement avant 24kHz sans problème (tu prends la même topo et tu calcules les valeurs des composants).

Tu peux numériser en 24bits @48kHz et tu finalises en numérique à 16bits @44kHz en bout de chaîne. L'interpolation introduit moins d'un poil de cu...antif comme erreur ; le filtre numérique est complètement raide avec une phase linéaire jusqu'au bout.

Bref, à l'arriver tu as un spectre nickel plein jusqu'à 22kHz (l'oreille c'est jusqu'à 17kHz, 20kHz pour les oreilles toutes neuves) et des bruits de quantification de l'ordre du pet de mouche.

Et pour ne plus entendre les pets de mouches il est toujours possible de les enfiler en choisissant de bosser en "HD" :bravo:
40
Arg vous m'avez perdu dans vos SNR et compagnie...

Sinon merci pour le lien, simple et instructif.
Citation :
Il n'y a pas le digramme de phase mais a priori c'est à partir du début de l'atténuation que des bricoles arrivent.
, Je pensais que c'était "autour" de la fréquence de coupure ? Donc ça que ça commençait un peu avant...