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.