Modérateurs: Modération Forum Installations, Modération Forum DIY, Le Bureau de l’Association HCFR • Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 36 invités

Discussions générales sur le DIY Audio : choix des HP, comparaisons des principes : clos vs BR, etc

NOISE SHAPING 96KHZ (Meridian 518?)

Message » 29 Jan 2015 10:47

je suis surement dans le même cas :mdr:

Si j'ai bien compris, les courbes de N.S représente la distribution en frequence du bruit qui sera rajouté au signal.
et pour un master 16bits ce bruit est de l'ordre de -90db (a vue d'oeil) donc déjà pour entendre cela et être capable de différencier si le bruit et plus aigue ou mat, et avec un signal en superposition ... :ko:

cela étant, impossible de trouver facilement (google...) des polynômes H(z) qui représente les courbes de Meridian ou autre. Ca à l'air "secret".

Je vais partir sur le 6th ordre H(z) proposé dans le papier ARA ci dessus, ca fera une base, jusqu'à ce que quelqu'un m'explique comment générer ce genre de polynômes à partir d'une courbe cible ?

sinon quelqu'un peut il me recommander un process pour convertir un flux 16bit qui à subit un Noise shaping, en un flux de 24 bits avec le moins de bruit résiduel possible ? par défaut je ferais un filtre fs/2 mais quel ordre, quel Q, linéaire...? dans l'idéal faut il filtrer avec une réponse inverse du N.S ? Merci par avance
maxidcx
Membre HCFR Contributeur
Membre HCFR Contributeur
 
Messages: 3105
Inscription Forum: 25 Avr 2007 10:50
  • offline

Message » 29 Jan 2015 18:30

finalement j'ai trouvé les coefficient du FIR pour le Noise SHaper "E-Weigthed" dans le fameux papier de 1991 "Minimally Audible Noise Shaping" ...

et quelque part un code source dans lequel il y a aussi les coef "F-weigthed" que voici (c'est noel):

const float or9IEc[9] = {2.847f, -4.685f, 6.214f, -7.184f, 6.639f, -5.032f, 3.263f, -1.632f, 0.4191f};
const float or9Fc[9] = {2.412f, -3.370f, 3.937f, -4.174f, 3.353f, -2.205f, 1.281f, -0.569f, 0.0847f};

un petit coup de LTSpice est on voit bien les courbes pondérées. (Bleue = F / Vert = E)
Image

je vais tester tout cela dans l'adau1452 et comme je viens de recevoir la carte USBtreamer on va pouvoir visualiser le niveau de bruit résiduel...a+
Euh, Question de noob, quelqu'un peux me guider pour convertir les coefs d'un polynom Z-domain pour avoir la meme fonction de transfer avec une autre frequence d'echantillonage...?
EDIT, j'ai factoriser le polynôme, mais je ne suis pas plus avancé
maxidcx
Membre HCFR Contributeur
Membre HCFR Contributeur
 
Messages: 3105
Inscription Forum: 25 Avr 2007 10:50
  • offline

Message » 29 Jan 2015 22:24

maxidcx a écrit:finalement j'ai trouvé les coefficient du FIR pour le Noise SHaper "E-Weigthed" dans le fameux papier de 1991 "Minimally Audible Noise Shaping" ...
et quelque part un code source dans lequel il y a aussi les coef "F-weigthed" que voici (c'est noel):

Sinon, tu peux regarder les sources de sox , le couteau suisse open source pour fichier audio : http://sox.sourceforge.net/
Il fait entre autre du dithering et du noise shaping suivant plusieurs courbes sélectionnables : http://sox.sourceforge.net/SoX/NoiseShaping (avec une très bonne illustration graphique de comment agit un dither et un noise shaper)
Il fait aussi, conversion de format , filtres divers et variés, , mixage entre voies, et/ou fichiers, et .. et... et ... : http://sox.sourceforge.net/Docs/Features

maxidcx a écrit:Euh, Question de noob, quelqu'un peux me guider pour convertir les coefs d'un polynom Z-domain pour avoir la meme fonction de transfer avec une autre frequence d'echantillonage...?
EDIT, j'ai factoriser le polynôme, mais je ne suis pas plus avancé

Tu as fait le plus dur ....
Maintenant que tu as factorisé ton polynôme, tu as ses zéros.
sous la forme : (1-Z0.Z-1).(1-Z1.Z-1).(1-Z2.Z-1). ...
ou au choix : (Z-Z0).(Z-Z1).(Z-Z2). ...

Pour chaque zéro, tu peux alors calculer sa magnitude A et son argument θ(en radian) Zi=Ai.ei
Comme θ= 2*π*f/Fs (où f est la fréquence de ce zéro et Fs la fréquence échantillonnage).
Tu peut en déduire la fréquence de chaque zéro.
Il te suffit alors de recalculer les arguments avec la nouvelle Fs
Puis recalculer les nouveau zéros en prenant ces nouveaux argument et les magnitudes de départ.
Ca te donne un nouveau polynome en Z sous forme factorisé.
Tu le développes et tu as les coef de ton filtre .
Dernière édition par tcli le 31 Jan 2015 13:08, édité 1 fois.
tcli
 
Messages: 4077
Inscription Forum: 23 Nov 2009 22:40
Localisation: Complètement à l'ouest
  • offline

Message » 30 Jan 2015 23:50

mille merci pour tes retours tcli, je vais regarder les sources :)
ils ont surement prévu différentes fréquences d’échantillonnage... sinon j’essaierai la méthode avec les Zéros
Merci encore
maxidcx
Membre HCFR Contributeur
Membre HCFR Contributeur
 
Messages: 3105
Inscription Forum: 25 Avr 2007 10:50
  • offline

Message » 03 Fév 2015 10:49

Bonjour,

après moult essais, et des aller retour entre les courbes du pdf de Meridian, ltspice et sigmastudio, je pense avoir une implementation correcte du systeme de noise shaping et pre-emphasis qu'ils recommandent pour un signal 96khz.

j'ai convertit leur H(z) en 2 biquad (retadé de z-1) et intégré le Pre-emphasis sous forme du FIR, avec correction de son gain en amont:
il y a aussi un simple bessel 2 en sortie, pour refleter un futur filtre de reconstruction elementaire en sortie d'un 1865;
Sigmastudio_MeridianNoiseShape.png

En ramenant le signal d'entrée à 18bits et en appliquant un dither de 2 bits, on obtient une THD+N de 0.0016%, mais ca inclue le résiduel que l'on voit en bas à droite.

donc en clair ca ne devrait pas nuire à la qualité mais au contraire apporter une extension du SNR percue... let see, prochaine étape pratique quand j'aurais le dac r2r.

pour info, les coefs des 2 biquad N.S:
b0=1 b1=-1.375 b2=0.5625 a1=0.828069144 a2=-0.079532061
b0=1 b1=0 b2=0 a1=1.109430856 a2=0.785846602
et les 4 coefs du FIR
2.125, 1.4375, 0.125, -0.125
Dernière édition par maxidcx le 27 Mar 2020 13:16, édité 3 fois.
maxidcx
Membre HCFR Contributeur
Membre HCFR Contributeur
 
Messages: 3105
Inscription Forum: 25 Avr 2007 10:50
  • offline

Message » 19 Fév 2015 16:39

maxidcx, ça pourrait t’intéresser :
http://www.diyaudio.com/forums/vendors- ... 4-khz.html
pos
 
Messages: 1996
Inscription Forum: 07 Mai 2007 16:36
  • offline

Message » 24 Fév 2015 11:16

oui Pos, merci pour le lien, j'ai déjà regardé ce fil en détail :)
j'ai beaucoup de respect pour le dyier qui à fait cette carte il y a beaucoup de techno et d'idée (j'adore cette fifo et le quartz programmable)
cela étant j'avais remarqué que l'auteur n'est pas encore très mure sur les problématiques d'oversampling, dithering and N.S., qui je pense avec le peu de recul que j'ai, sont indispensables avec des dacs R2R2.

ce qui me bloque avec cette carte c'est que le firmware du stm et le vhdl ne seront pas open source, donc impossible d'envisager de faire mieux qu'un simple sigma-delta de haut vol, dans l'état actuel des développement.
je pense qu'avec de bon traitement numériques (up sampling 8x voire 4x + N.S.), un dac R2R-16 bits (mais super linéaire - ad1865 :hehe: ) est amplement suffisant.
maxidcx
Membre HCFR Contributeur
Membre HCFR Contributeur
 
Messages: 3105
Inscription Forum: 25 Avr 2007 10:50
  • offline


Retourner vers Discussions Générales

 
  • Articles en relation
    Dernier message