Bienvenue, Invité
Nom d'utilisateur : Mot de passe : Clef secrete Se souvenir de moi

SUJET : Etat des lieux de la conversion AN/NA en 2014

Etat des lieux de la conversion AN/NA en 2014 il y a 4 ans 8 mois #1957

  • didier.breizh
  • Portrait de didier.breizh
  • Hors Ligne
  • Modérateur
  • Messages : 367
  • Remerciements reçus 29
funkakuchi écrit:
D'ailleurs, je me demandais Didier, apres recalage Matlab, tu peux avoir des fichiers differences?
(...)
Je me demandais Didier, avec Matlab, est-ce que l'on peut generer des petits executables crees à partir de code matlab?

Oui je calcule le fichier différence. Je pars du retard et des deux corrections de gain fournis par Audio DiffMaker pour les affiner en calculant à chaque itération le fichier différence et son niveau. Quand j'ai atteint le niveau minimum à mieux que 0.1 dB, avec une précision de 0.001 dB sur les gains et de 0.1 µs sur le retard, j'arrête. C'est moi qui choisit à chaque itération les nouvelles valeurs du retard et des gains. Je tape les intructions Matlab directement dans la fenêtre de commande. Voici une copie de ce que je viens de faire avec le 3ième fichier Motu 828mk3 (il manque les instructions de chargment des fichiers qui sont exéutées par double clic sur les noms de fichiers dans l'explorateur intégré à Matlab) :

>> Org_L=data(:,1);
>> N=2^ceil(log(size(data,1))/log(2))

N =

8388608

>> M = size(data,1)

M =

5340666

>> T=size(data,1)

T =

5472718

>> K = floor(min(M,T-653.4E-3*44100))

K =

5340666

>> Cop=fft(data(:,1),N);
>> clear data
>> Cop_t=ifft(Cop.*exp(1i*2*pi*[0:N/2-1,-N/2:-1]'/N*653.4E-3*44100),N);
>> 10*log10(mean((Org_L(1:K)-10^(6.115/20)*Cop_t(1:K)).^2))

ans =

-37.3154 + 0.0000i

>> Cop_t=ifft(Cop.*exp(1i*2*pi*[0:N/2-1,-N/2:-1]'/N*653.41E-3*44100),N);
>> 10*log10(mean((Org_L(1:K)-10^(6.115/20)*Cop_t(1:K)).^2))

ans =

-46.0196 - 0.0000i

>> Cop_t=ifft(Cop.*exp(1i*2*pi*[0:N/2-1,-N/2:-1]'/N*653.42E-3*44100),N);
>> 10*log10(mean((Org_L(1:K)-10^(6.115/20)*Cop_t(1:K)).^2))

ans =

-46.8276 - 0.0000i

>> Cop_t=ifft(Cop.*exp(1i*2*pi*[0:N/2-1,-N/2:-1]'/N*653.43E-3*44100),N);
>> 10*log10(mean((Org_L(1:K)-10^(6.115/20)*Cop_t(1:K)).^2))

ans =

-37.5688 + 0.0000i

>> Cop_t=ifft(Cop.*exp(1i*2*pi*[0:N/2-1,-N/2:-1]'/N*653.421E-3*44100),N);
>> 10*log10(mean((Org_L(1:K)-10^(6.115/20)*Cop_t(1:K)).^2))

ans =

-45.3168 - 0.0000i

>> Cop_t=ifft(Cop.*exp(1i*2*pi*[0:N/2-1,-N/2:-1]'/N*653.419E-3*44100),N);
>> 10*log10(mean((Org_L(1:K)-10^(6.115/20)*Cop_t(1:K)).^2))

ans =

-48.6191 - 0.0000i

>> Cop_t=ifft(Cop.*exp(1i*2*pi*[0:N/2-1,-N/2:-1]'/N*653.418E-3*44100),N);
>> 10*log10(mean((Org_L(1:K)-10^(6.115/20)*Cop_t(1:K)).^2))

ans =

-50.7755 - 0.0000i

>> Cop_t=ifft(Cop.*exp(1i*2*pi*[0:N/2-1,-N/2:-1]'/N*653.417E-3*44100),N);
>> 10*log10(mean((Org_L(1:K)-10^(6.115/20)*Cop_t(1:K)).^2))

ans =

-53.3363 - 0.0000i

>> Cop_t=ifft(Cop.*exp(1i*2*pi*[0:N/2-1,-N/2:-1]'/N*653.416E-3*44100),N);
>> 10*log10(mean((Org_L(1:K)-10^(6.115/20)*Cop_t(1:K)).^2))

ans =

-55.8946 - 0.0000i

>> Cop_t=ifft(Cop.*exp(1i*2*pi*[0:N/2-1,-N/2:-1]'/N*653.415E-3*44100),N);
>> 10*log10(mean((Org_L(1:K)-10^(6.115/20)*Cop_t(1:K)).^2))

ans =

-56.6256 - 0.0000i

>> Cop_t=ifft(Cop.*exp(1i*2*pi*[0:N/2-1,-N/2:-1]'/N*653.414E-3*44100),N);
>> 10*log10(mean((Org_L(1:K)-10^(6.115/20)*Cop_t(1:K)).^2))

ans =

-54.6318 - 0.0000i

>> Cop_t=ifft(Cop.*exp(1i*2*pi*[0:N/2-1,-N/2:-1]'/N*653.4151E-3*44100),N);
>> 10*log10(mean((Org_L(1:K)-10^(6.115/20)*Cop_t(1:K)).^2))

ans =

-56.6964 - 0.0000i

>> Cop_t=ifft(Cop.*exp(1i*2*pi*[0:N/2-1,-N/2:-1]'/N*653.4152E-3*44100),N);
>> 10*log10(mean((Org_L(1:K)-10^(6.115/20)*Cop_t(1:K)).^2))

ans =

-56.7340 - 0.0000i

>> Cop_t=ifft(Cop.*exp(1i*2*pi*[0:N/2-1,-N/2:-1]'/N*653.4153E-3*44100),N);
>> 10*log10(mean((Org_L(1:K)-10^(6.115/20)*Cop_t(1:K)).^2))

ans =

-56.7377 - 0.0000i

>> Cop_t=ifft(Cop.*exp(1i*2*pi*[0:N/2-1,-N/2:-1]'/N*653.4154E-3*44100),N);
>> 10*log10(mean((Org_L(1:K)-10^(6.115/20)*Cop_t(1:K)).^2))

ans =

-56.7073 - 0.0000i

>> Cop_t=ifft(Cop.*exp(1i*2*pi*[0:N/2-1,-N/2:-1]'/N*653.4153E-3*44100),N);
>> 10*log10(mean((Org_L(1:K)-10^(6.115/20)*Cop_t(1:K)).^2))

ans =

-56.7377 - 0.0000i

>> 10*log10(mean((Org_L(1:K)-10^(6.114/20)*Cop_t(1:K)).^2))

ans =

-56.7386 - 0.0000i

>> 10*log10(mean((Org_L(1:K)-10^(6.113/20)*Cop_t(1:K)).^2))

ans =

-56.7384 - 0.0000i

>> 10*log10(mean((Org_L(1:K)-10^(6.114/20)*Cop_t(1:K)).^2))

ans =

-56.7386 - 0.0000i

>> Cop=fft(data(:,2),N);
>> clear Org_L
>> Org_R=data(:,2);
>> clear data
>> Cop_t=ifft(Cop.*exp(1i*2*pi*[0:N/2-1,-N/2:-1]'/N*653.4153E-3*44100),N);
>> 10*log10(mean((Org_R(1:K)-10^(6.149/20)*Cop_t(1:K)).^2))

ans =

-58.0038 - 0.0000i

>> 10*log10(mean((Org_R(1:K)-10^(6.148/20)*Cop_t(1:K)).^2))

ans =

-58.0060 - 0.0000i

>> 10*log10(mean((Org_R(1:K)-10^(6.147/20)*Cop_t(1:K)).^2))

ans =

-58.0066 - 0.0000i

>> 10*log10(mean((Org_R(1:K)-10^(6.146/20)*Cop_t(1:K)).^2))

ans =

-58.0056 - 0.0000i

On pourrait bien évidemment écrire un code qui fasse ça automatiquement et s'initialise à partir de premières valeurs qui seraient déterminées directement à partir de l'original et de sa copie, puis transformer ce code Matlab en un .exe mais je n'ai pas l'outil pour cette dernière transformation que je n'ai jamais pratiquée.
Dernière édition: il y a 4 ans 8 mois par didier.breizh.
L'administrateur a désactivé l'accès en écriture pour le public.

Etat des lieux de la conversion AN/NA en 2014 il y a 4 ans 8 mois #1958

  • didier.breizh
  • Portrait de didier.breizh
  • Hors Ligne
  • Modérateur
  • Messages : 367
  • Remerciements reçus 29
Touf écrit:
J'ai vu la discussion. Il faut reconnaître que si la différence entre deux boucles issues du même test de convertisseur présentent une différence similaire à celle entre deux convertisseurs, le test n'est pas pertinent, l'entropie est trop forte.

D'abord ce n'est pas le cas. Et même si ça l'était, ça n'invalide pas le test car le résultat n'est pas le fichier différence mais son niveau RMS. Si la différence entre la copie et l'original est du bruit, ce n'est pas parce que le bruit n'est pas le même d'un test à l'autre que ça n'a pas de sens de mesurer son niveau RMS.

Les trois MOTU 828 mk2 testées donnent des différences par rapport à l'original de mêmes niveaux RMS à 0.1 dB près. Ça fait pas beaucoup d'entropie. :)
Dernière édition: il y a 4 ans 8 mois par didier.breizh.
L'administrateur a désactivé l'accès en écriture pour le public.

Etat des lieux de la conversion AN/NA en 2014 il y a 4 ans 8 mois #1959

  • funkakuchi
  • Portrait de funkakuchi
  • Hors Ligne
  • Pragmatic Platinum
  • Messages : 528
  • Remerciements reçus 28
Merci pour les details Didier. Je pense que pour te simplifier la vie, il faudrait automatiser tout ça...
Et je n'ai pas matlab...Matlab ne fourni pas une option pour générer un exe à partir de code matlab?

Je vais bientôt poster sur GS de nouveaux tests, et là, je pense que ce sera bien significatif!
L'administrateur a désactivé l'accès en écriture pour le public.

Etat des lieux de la conversion AN/NA en 2014 il y a 4 ans 8 mois #1960

  • funkakuchi
  • Portrait de funkakuchi
  • Hors Ligne
  • Pragmatic Platinum
  • Messages : 528
  • Remerciements reçus 28
Ayé, j'ai posté sur GS!
L'administrateur a désactivé l'accès en écriture pour le public.

Etat des lieux de la conversion AN/NA en 2014 il y a 4 ans 8 mois #1961

  • funkakuchi
  • Portrait de funkakuchi
  • Hors Ligne
  • Pragmatic Platinum
  • Messages : 528
  • Remerciements reçus 28
Sinon, pour l'exe 'Audio diff Matlab', ca n'a pas forcement l'air immédiat, mais possible:
matlab.developpez.com/faq/?page=compiler#exe_creer
et
fr.mathworks.com/support/2012b/compiler/...r.html?nocookie=true
Dernière édition: il y a 4 ans 8 mois par funkakuchi.
L'administrateur a désactivé l'accès en écriture pour le public.

Etat des lieux de la conversion AN/NA en 2014 il y a 4 ans 8 mois #1962

  • didier.breizh
  • Portrait de didier.breizh
  • Hors Ligne
  • Modérateur
  • Messages : 367
  • Remerciements reçus 29
funkakuchi écrit:
Matlab ne fourni pas une option pour générer un exe à partir de code matlab?

J'imagine que ça existe. Il y a au moins un traducteur en C en option. Passer du C à un exécutable ne doit pas être bien compliqué.
L'administrateur a désactivé l'accès en écriture pour le public.

Etat des lieux de la conversion AN/NA en 2014 il y a 4 ans 8 mois #1963

  • funkakuchi
  • Portrait de funkakuchi
  • Hors Ligne
  • Pragmatic Platinum
  • Messages : 528
  • Remerciements reçus 28
Tu as vu mes liens au dessus, a priori, c'est tout intégré.
Il y a un peu de boulot, mais cela serait plus simple ensuite, et on pourrait avoir l'exe qui raffine la diff et cree la difference finale. Car là, tu te tapes à chaque fois tout le boulot!...
L'administrateur a désactivé l'accès en écriture pour le public.

Etat des lieux de la conversion AN/NA en 2014 il y a 4 ans 8 mois #1964

  • didier.breizh
  • Portrait de didier.breizh
  • Hors Ligne
  • Modérateur
  • Messages : 367
  • Remerciements reçus 29
La fonction deploytool ne semble pas être intégrée à ma version de Matlab. Copie de la fenêtre de commande :

>> deploytool
Undefined function or variable 'deploytool'.

Il faut un compilateur optionnel. De toute façon, il faut commencer par écrire un code en Matlab qui remplace totalement Audio DiffMaker. Ce n'est pas bien compliqué, mais j'ai un peu la flemme de programmer en Matlab quand je suis à la maison. Tandis que la recherche du niveau minimum de différence en modifiant à la main les paramètres, je peux le faire sans réfléchir. C'est presque ludique. :)
Je ne dis pas que je ne le ferai pas mais je n'en ai pas l'envie pour le moment.
Dernière édition: il y a 4 ans 8 mois par didier.breizh.
L'administrateur a désactivé l'accès en écriture pour le public.

Etat des lieux de la conversion AN/NA en 2014 il y a 4 ans 8 mois #1972

  • funkakuchi
  • Portrait de funkakuchi
  • Hors Ligne
  • Pragmatic Platinum
  • Messages : 528
  • Remerciements reçus 28
Dommage que tu n'aies pas ça sous le coude...
Sinon, pour le reste, c'est toi qui voit! :P
L'administrateur a désactivé l'accès en écriture pour le public.

Etat des lieux de la conversion AN/NA en 2014 il y a 4 ans 8 mois #1974

  • didier.breizh
  • Portrait de didier.breizh
  • Hors Ligne
  • Modérateur
  • Messages : 367
  • Remerciements reçus 29
Je veux ! ;)


Et puis les zozos de Gearslutz, ils commencent par me les briser menu. Les cons, ça ose tout, c'est même à ça qu'on les reconnaît. (Michel Audiard)
Dernière édition: il y a 4 ans 8 mois par didier.breizh.
L'administrateur a désactivé l'accès en écriture pour le public.

Etat des lieux de la conversion AN/NA en 2014 il y a 4 ans 8 mois #1975

  • funkakuchi
  • Portrait de funkakuchi
  • Hors Ligne
  • Pragmatic Platinum
  • Messages : 528
  • Remerciements reçus 28
Oui, c'est pas faux!
L'administrateur a désactivé l'accès en écriture pour le public.

Etat des lieux de la conversion AN/NA en 2014 il y a 4 ans 8 mois #1983

  • funkakuchi
  • Portrait de funkakuchi
  • Hors Ligne
  • Pragmatic Platinum
  • Messages : 528
  • Remerciements reçus 28
Mada (en maître) de VJM
Merci Jean-Michel ! ;)
L'administrateur a désactivé l'accès en écriture pour le public.

Etat des lieux de la conversion AN/NA en 2014 il y a 4 ans 8 mois #1985

  • didier.breizh
  • Portrait de didier.breizh
  • Hors Ligne
  • Modérateur
  • Messages : 367
  • Remerciements reçus 29
Merci Jean-Michel ! :)

Voici le résultat :
parameters: -3,394msec, 3,645dB (L), 4,144dB (R)..Corr Depth: 27,8 dB (L), 30,9 dB (R) Difference -46.4 dBFS (L) , -49.7 dBFS (R)

Il s'agit bien du Forsell MADA-2 ?
L'administrateur a désactivé l'accès en écriture pour le public.

Etat des lieux de la conversion AN/NA en 2014 il y a 4 ans 8 mois #1986

  • vjm
  • Portrait de vjm
  • Hors Ligne
  • Pragmatic Gold
  • Messages : 364
  • Remerciements reçus 6
pas de quoi oui c'est un mada 2 placé en maitre via une interface avid I/O parce je tourne avec un protools HD
L'administrateur a désactivé l'accès en écriture pour le public.

Etat des lieux de la conversion AN/NA en 2014 il y a 4 ans 8 mois #1987

  • didier.breizh
  • Portrait de didier.breizh
  • Hors Ligne
  • Modérateur
  • Messages : 367
  • Remerciements reçus 29
L'administrateur a désactivé l'accès en écriture pour le public.

Etat des lieux de la conversion AN/NA en 2014 il y a 4 ans 8 mois #1992

  • loicm
  • Portrait de loicm
  • Hors Ligne
  • Administrateur
  • Messages : 468
  • Remerciements reçus 24
il est effectivement possible de générer des exe matlab.

Je peux le faire avec la version que je dois avoir au taf.

De mémoire, je crois qu'il faut quand même installer un package pour faire tourner l'exe. (une machine matlab) mais qui est gratuite et téléchargeable sur le site.

Je regarde ca.
L'administrateur a désactivé l'accès en écriture pour le public.

Etat des lieux de la conversion AN/NA en 2014 il y a 4 ans 8 mois #1993

  • loicm
  • Portrait de loicm
  • Hors Ligne
  • Administrateur
  • Messages : 468
  • Remerciements reçus 24
Didier, tu as quelle version de matlab ? J'ai la R2013a sous os X.
Donc version >7.0 et donc on peut compiler.
Mais il faut le matlab compiler que je n'ai pas installé.
Je vais le chercher.
L'administrateur a désactivé l'accès en écriture pour le public.

Etat des lieux de la conversion AN/NA en 2014 il y a 4 ans 8 mois #1998

  • didier.breizh
  • Portrait de didier.breizh
  • Hors Ligne
  • Modérateur
  • Messages : 367
  • Remerciements reçus 29
J'ai depuis peu la version R2014a après avoir longtemps utilisé la V5. Pour un usage perso, le coût de la licence reste abordable (< 200 €). Le compilateur est disponible ici.
Dernière édition: il y a 4 ans 8 mois par didier.breizh.
L'administrateur a désactivé l'accès en écriture pour le public.

Etat des lieux de la conversion AN/NA en 2014 il y a 4 ans 8 mois #2002

  • funkakuchi
  • Portrait de funkakuchi
  • Hors Ligne
  • Pragmatic Platinum
  • Messages : 528
  • Remerciements reçus 28
Ah ça serait bien cool Loïc! Je ne sais si Didier est encore prêt pour faire un joli .m matlab, mais si cela pouvait être convertit en .exe, on pourrait en profiter. Du coup, en ce moment, je regarde aussi du côté de scilab, car c'est gratuit.

Côté matlab, j'avais trouvé ça:
www.dsprelated.com/blogimages/MarkusNent...2/fitSignal_120825.m

Je ne sais pas si cela fait ce qu'on veut, mais ça avait l'air d'y ressembler...et comme j'ai pas Matlab...?
Dernière édition: il y a 4 ans 8 mois par funkakuchi.
L'administrateur a désactivé l'accès en écriture pour le public.

Etat des lieux de la conversion AN/NA en 2014 il y a 4 ans 8 mois #2008

  • didier.breizh
  • Portrait de didier.breizh
  • Hors Ligne
  • Modérateur
  • Messages : 367
  • Remerciements reçus 29
funkakuchi écrit:
je regarde aussi du côté de scilab, car c'est gratuit.

Côté matlab, j'avais trouvé ça:
www.dsprelated.com/blogimages/MarkusNent...2/fitSignal_120825.m

Je ne sais pas si cela fait ce qu'on veut, mais ça avait l'air d'y ressembler...et comme j'ai pas Matlab...?

Oui scilab est une bonne option pour faire ça qui ne nécessite que des opérations élémentaires et la fft.
Ce code matlab semble convenir pour un signal mono.
La dernière version est ici.

Je ne suis pas arrivé à le faire marcher :
>> Org_L=data(:,1);
>> Cop_L=data(:,1);
>> clear data
>> fitSignal_FFT(Cop_L,Org_L)
Error using .*
Matrix dimensions must agree.

Error in fitSignal_FFT (line 81)
u=u .* rotN;
Dernière édition: il y a 4 ans 8 mois par didier.breizh.
L'administrateur a désactivé l'accès en écriture pour le public.
Temps de génération de la page : 0.118 secondes
Propulsé par Kunena