je suis surement dans le même cas
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 ...
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
|
22 messages • Accèder à une page • 1, 2
|
Modérateurs: Modération Forum Installations, Modération Forum DIY, Le Bureau de l’Association HCFR • Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 19 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?)
- maxidcx
- Membre HCFR Contributeur
- Messages: 3105
- Inscription Forum: 25 Avr 2007 10:50
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)
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é
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)
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
- Messages: 3105
- Inscription Forum: 25 Avr 2007 10:50
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.ejθi
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
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
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
- Messages: 3105
- Inscription Forum: 25 Avr 2007 10:50
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;
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
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;
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
- Messages: 3105
- Inscription Forum: 25 Avr 2007 10:50
maxidcx, ça pourrait t’intéresser :
http://www.diyaudio.com/forums/vendors- ... 4-khz.html
http://www.diyaudio.com/forums/vendors- ... 4-khz.html
- pos
- Messages: 1996
- Inscription Forum: 07 Mai 2007 16:36
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 ) est amplement suffisant.
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 ) est amplement suffisant.
- maxidcx
- Membre HCFR Contributeur
- Messages: 3105
- Inscription Forum: 25 Avr 2007 10:50
|
22 messages
• Page 2 sur 2 • 1, 2
Retourner vers Discussions Générales
|