|
hifi.slovanet.sk
Bolo zavedene manualne potvrdzovanie registracii !!!
|
|
Zobraziť predchádzajúcu tému :: Zobraziť nasledujúcu tému |
Autor |
Správa |
miero Hifi inventar
Založený: 08 september 2010 Príspevky: 11428 Bydlisko: Praha
|
Zaslal: Ut október 23, 2018 13:56:31 Predmet: |
|
|
neviem ci pomiesaju, ale kod hlada bin s najvacsiou amplitudou ... a to teorieticky nemusi byt ten kde je presna faza tej harmonickej |
|
Návrat hore |
|
|
dustin Hifi inventar
Založený: 06 október 2006 Príspevky: 4857 Bydlisko: Plzeň
|
Zaslal: Ut október 23, 2018 21:09:03 Predmet: |
|
|
Detekce fáze první harmonické naměřeného signálu se zdá funguje poměrně přesně.
Grafy obrázku:
* amplituda FFT z prvních 50 period první harmonické (tj 50 x 48 = 2400 vzorků), vynulované malé hodnoty
* Fáze FFT taktéž - zbyde jen první harmonická
* Ze změřené fáze (v tomto případě -1.4135 rad) a známé frekvence měření (1kHz) se vygeneruje referenční sinus. V grafu je modře naměřený signál a červeně průběh referenčního signálu, ovšem na pozici 300 tis. vzorku. Fáze generována z prvních 2400 vzorků, toto je průběh 150x dál. Očividně to stále na sebe pasuje úplně přesně. |
|
Návrat hore |
|
|
dustin Hifi inventar
Založený: 06 október 2006 Príspevky: 4857 Bydlisko: Plzeň
|
Zaslal: Ut október 23, 2018 21:23:27 Predmet: |
|
|
A takhle vypadá kompenzace měření Juli pomocí referenčního signálu s přesně srovnanou fází vůči první harmonické měřeného signálu.
Polynom 5. řádu
kód: | -7.7380e-05 9.5185e-06 5.1638e-05 1.8140e-05 1.0626e+00 -8.3309e-06 |
Harmonické, opět pro měřený signál, vygenerovaný referenční, zkompenzovaný na referenční, zkompenzovaný ztlumený o 40dB
kód: | Recorded:
1000.74 Hz, -2.07 dB, 0.00 dg
2001.22 Hz, -101.95 dB, 338.47 dg
3000.97 Hz, -111.45 dB, 118.14 dg
4000.71 Hz, -125.56 dB, 281.07 dg
5001.19 Hz, -114.70 dB, 267.69 dg
6000.93 Hz, -129.02 dB, 275.29 dg
7000.68 Hz, -128.92 dB, 70.40 dg
8001.15 Hz, -130.24 dB, 18.81 dg
9000.90 Hz, -131.16 dB, 168.05 dg
0.00 Hz, -999.00 dB, 0.00 dg
Reference:
1000.74 Hz, -1.54 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
Calibrated:
1000.74 Hz, -1.54 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
3000.97 Hz, -120.28 dB, 46.76 dg
0.00 Hz, -999.00 dB, 0.00 dg
5001.19 Hz, -130.88 dB, 180.57 dg
6000.93 Hz, -128.49 dB, 275.28 dg
7000.68 Hz, -128.39 dB, 70.39 dg
8001.15 Hz, -129.71 dB, 18.81 dg
9000.90 Hz, -130.63 dB, 168.05 dg
0.00 Hz, -999.00 dB, 0.00 dg
Calibrated Attenuated -40dB:
1000.74 Hz, -41.54 dB, 0.00 dg
2001.22 Hz, -141.49 dB, 338.47 dg
3000.97 Hz, -150.92 dB, 118.14 dg
4000.71 Hz, -165.04 dB, 281.07 dg
5001.19 Hz, -154.18 dB, 267.69 dg
6000.93 Hz, -168.50 dB, 275.29 dg
7000.68 Hz, -168.39 dB, 70.40 dg
8001.15 Hz, -169.71 dB, 18.81 dg
9000.90 Hz, -170.63 dB, 168.05 dg
0.00 Hz, -999.00 dB, 0.00 dg |
Dovolím si vytáhnout srovnání:
kód: | Recorded:
1000.74 Hz, -2.07 dB, 0.00 dg
2001.22 Hz, -101.95 dB, 338.47 dg
3000.97 Hz, -111.45 dB, 118.14 dg
4000.71 Hz, -125.56 dB, 281.07 dg
5001.19 Hz, -114.70 dB, 267.69 dg |
kód: | Calibrated:
1000.74 Hz, -1.54 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
3000.97 Hz, -120.28 dB, 46.76 dg
0.00 Hz, -999.00 dB, 0.00 dg
5001.19 Hz, -130.88 dB, 180.57 dg |
Myslím, že je čas pustit se do route pluginu, aby se mohlo otestovat reálné chování. |
|
Návrat hore |
|
|
dustin Hifi inventar
Založený: 06 október 2006 Príspevky: 4857 Bydlisko: Plzeň
|
Zaslal: Ut október 23, 2018 21:31:41 Predmet: |
|
|
Syrový kód na detekci fáze měřeného signálu (předpokládá se, že wav nemá žádný pozvolný náběh - nejlépe odříznutý začátek měření).
kód: | # measured frequency (TODO - detect automatically)
measfreq = 1000;
[in, fs, nbits] = wavread("/home/pavel/recorded.wav");
if columns(x) > 1
% convert to mono
in = in(:,1);
end
offset = 0;
periods = 50;
x = in(offset + 1:offset + periods * fs/measfreq);
in = in(offset + 1:end);
ys = fft(x);
ys = fftshift(ys);
# remove frequency mirror
bins = length(x)/2;
ys = ys(bins + 1:length(x));
f = linspace(1, fs/2, bins);
th = 10;
ys(abs(ys) < th) = 0;
subplot(3,1,1);
stem(f,abs(ys));
xlabel 'Frequency (Hz)';
ylabel '|y|';
grid;
th = 1e-2;
ys(abs(ys) < th) = 0;
phs = angle(ys);
subplot(3,1,2);
stem(f,phs/pi)
xlabel 'Frequency (Hz)';
ylabel 'Phase / \pi';
grid;
phs(abs(phs) < 0.1) = [];
disp(phs);
t = 0:1/fs:length(in)/fs;
reference = cos(2*pi * measfreq * t + phs);
lowT = 300000;
highT = 300100;
subplot(3,1,3);
plot((lowT:highT), in(lowT:highT), "-", (lowT:highT), reference(lowT:highT), "*");
|
Pak pro výpočet kalibračního polynomu stačí vygenerovat reference:
kód: |
phs = -1.4135;
measfreq = 1000;
t = 0:1/fs:length(recorded)/fs;
t = t(1:length(recorded));
reference = cos(2*pi * measfreq * t + phs) * 0.9;
reference = reference';
polyCoeff = polyfit(recorded, reference, 5);
disp(polyCoeff);
|
Samozřejmě phs se bude měřit rovnou v tom samém skriptu, nyní to zatím kopíruju, abych se v tom vyznal. |
|
Návrat hore |
|
|
miero Hifi inventar
Založený: 08 september 2010 Príspevky: 11428 Bydlisko: Praha
|
Zaslal: Ut október 23, 2018 22:24:44 Predmet: |
|
|
miero napísal: | ... skusim nahrat lepsi signal (z ES9018) s roznymi hlasitostami na zvukovku notebooku. |
tak nakoniec sa mi to podarilo nahrat:
- 6 napatovych urovni po 6dB, tlmenych analogovo
- skreslenie samotneho DA prevodniku by mohlo byt pod -120dB mozno este menej
- http://mr.ieero.com/pub/temp2018/distcorr/ad_dist.zip |
|
Návrat hore |
|
|
miero Hifi inventar
Založený: 08 september 2010 Príspevky: 11428 Bydlisko: Praha
|
Zaslal: Ut október 23, 2018 23:08:03 Predmet: |
|
|
dustin, ten tvoj kod mi vobec nefunguje :-/
napr. phs je vektor 5 cisel, co robi potom neplechu pre generovani reference a polyfit
inak pozor, zlozky skreslenia v ad_dist suboroch sa vyrazne menia s amplitudou |
|
Návrat hore |
|
|
dustin Hifi inventar
Založený: 06 október 2006 Príspevky: 4857 Bydlisko: Plzeň
|
Zaslal: St október 24, 2018 08:19:28 Predmet: |
|
|
Detekce fáze je samozřejmě syrová a zatím vyžaduje ruční doladění, aby fungovala. K plné automatice máme ještě dost daleko U nekvalitnější zvukovky je potřeba zkrátit počet period, ze kterých se určuje, aby po odstranění malých čísel z vektoru zbyla jen jedna buňka - skalár. Pro tvou interní se ukázalo postačujících 20 period.
Hodiny interní zvukovky nejsou úplně přesné, musel jsem ručně doladit generovanou
1000Hz -> 1000. 0135Hz
I to by se dalo určitě nějak automatizovat.
Fáze vyšla -1.4447 rad. |
|
Návrat hore |
|
|
miero Hifi inventar
Založený: 08 september 2010 Príspevky: 11428 Bydlisko: Praha
|
|
Návrat hore |
|
|
dustin Hifi inventar
Založený: 06 október 2006 Príspevky: 4857 Bydlisko: Plzeň
|
Zaslal: St október 24, 2018 08:36:48 Predmet: |
|
|
Výsledky kompenzace pro nejsilnější signál 0dB a použití kalibračního polynomu 8. řádu pro -6 a -12dB.
kód: | 1.3098e-04 6.6407e-04 -2.6891e-04 -1.4998e-03 1.6069e-05 6.8758e-04 -1.6714e-04 9.4453e-01 1.0999e-04 |
Kompenzace pro signál, ze kterého se počítal kompenzační polynom, je samozřejmě skvělá - všechny harmonické do páté jsou nižší o 30dB.
kód: | 00:
1000.93 Hz, -0.48 dB, 0.00 dg
2000.87 Hz, -77.90 dB, 293.12 dg
3000.80 Hz, -83.96 dB, 228.36 dg
4000.73 Hz, -95.94 dB, 160.77 dg
5000.67 Hz, -94.14 dB, 96.03 dg
6000.60 Hz, -120.62 dB, 26.89 dg
7001.21 Hz, -102.35 dB, 323.27 dg
8001.14 Hz, -123.25 dB, 261.82 dg
9001.07 Hz, -122.25 dB, 355.27 dg
10001.01 Hz, -106.74 dB, 125.11 dg
Compensated 00:
1000.93 Hz, -0.97 dB, 0.00 dg
2000.87 Hz, -110.81 dB, 179.41 dg
3000.80 Hz, -122.49 dB, 80.27 dg
4000.73 Hz, -124.24 dB, 67.93 dg
5001.34 Hz, -123.31 dB, 158.29 dg
6003.96 Hz, -127.53 dB, 190.38 dg
7001.21 Hz, -125.75 dB, 280.45 dg
0.00 Hz, -999.00 dB, 0.00 dg
9001.07 Hz, -122.67 dB, 355.42 dg
10001.01 Hz, -107.24 dB, 125.10 dg
|
-6dB (tedy poloviční signál, než kalibrační) ještě jde, zlepšení u 2. a 3. harm o 10dB
-12dB už je víceméně bez vlivu, tam by to chtělo novou kalibraci.
Zkusím vymyslet, jak/zda by se dalo automaticky kalibrovat pro různé levely, aby to šlo snadno aplikovat při měření.
kód: |
00:
1000.93 Hz, -0.48 dB, 0.00 dg
2000.87 Hz, -77.90 dB, 293.12 dg
3000.80 Hz, -83.96 dB, 228.36 dg
4000.73 Hz, -95.94 dB, 160.77 dg
5000.67 Hz, -94.14 dB, 96.03 dg
6000.60 Hz, -120.62 dB, 26.89 dg
7001.21 Hz, -102.35 dB, 323.27 dg
8001.14 Hz, -123.25 dB, 261.82 dg
9001.07 Hz, -122.25 dB, 355.27 dg
10001.01 Hz, -106.74 dB, 125.11 dg
Reference:
1000.93 Hz, -0.97 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
Compensated 00:
1000.93 Hz, -0.97 dB, 0.00 dg
2000.87 Hz, -110.81 dB, 179.41 dg
3000.80 Hz, -122.49 dB, 80.27 dg
4000.73 Hz, -124.24 dB, 67.93 dg
5001.34 Hz, -123.31 dB, 158.29 dg
6003.96 Hz, -127.53 dB, 190.38 dg
7001.21 Hz, -125.75 dB, 280.45 dg
0.00 Hz, -999.00 dB, 0.00 dg
9001.07 Hz, -122.67 dB, 355.42 dg
10001.01 Hz, -107.24 dB, 125.10 dg
06:
1000.93 Hz, -6.43 dB, 0.00 dg
2000.87 Hz, -96.06 dB, 6.97 dg
3000.80 Hz, -97.77 dB, 194.23 dg
4000.73 Hz, -102.50 dB, 23.50 dg
5000.67 Hz, -126.23 dB, 229.90 dg
6000.60 Hz, -126.54 dB, 32.83 dg
0.00 Hz, -999.00 dB, 0.00 dg
8001.14 Hz, -121.79 dB, 238.50 dg
0.00 Hz, -999.00 dB, 0.00 dg
10001.01 Hz, -116.22 dB, 67.39 dg
Compensated 06:
1000.93 Hz, -6.93 dB, 0.00 dg
2000.87 Hz, -106.30 dB, 191.89 dg
3000.80 Hz, -107.28 dB, 190.34 dg
4000.73 Hz, -103.48 dB, 23.44 dg
5000.67 Hz, -113.44 dB, 216.37 dg
6000.60 Hz, -128.36 dB, 31.49 dg
0.00 Hz, -999.00 dB, 0.00 dg
8001.14 Hz, -122.25 dB, 238.49 dg
0.00 Hz, -999.00 dB, 0.00 dg
10001.01 Hz, -116.72 dB, 67.39 dg
12:
1000.93 Hz, -12.46 dB, 0.00 dg
2000.87 Hz, -104.09 dB, 180.26 dg
3000.80 Hz, -113.43 dB, 182.41 dg
4000.73 Hz, -118.67 dB, 3.10 dg
5001.34 Hz, -126.54 dB, 3.96 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
Compensated 12:
1000.93 Hz, -12.96 dB, 0.00 dg
2000.87 Hz, -99.52 dB, 180.41 dg
0.00 Hz, -999.00 dB, 0.00 dg
4000.73 Hz, -119.18 dB, 3.10 dg
5001.34 Hz, -125.95 dB, 3.78 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
|
|
|
Návrat hore |
|
|
dustin Hifi inventar
Založený: 06 október 2006 Príspevky: 4857 Bydlisko: Plzeň
|
Zaslal: St október 24, 2018 09:14:09 Predmet: |
|
|
Kalibrace pro naměřený signál -12dB, kompenzace pro -12, -18, -24
fáze -0.36037
Polynom 5. řádu
kód: | 5.1828e-03 -3.4523e-03 2.2052e-04 4.3075e-04 1.0481e+00 -7.9173e-06 |
Pro kalibrační signál je výsledek jasný:
kód: | Measured 12:
1000.93 Hz, -12.46 dB, 0.00 dg
2000.87 Hz, -104.09 dB, 180.26 dg
3000.80 Hz, -113.43 dB, 182.41 dg
4000.73 Hz, -118.67 dB, 3.10 dg
5001.34 Hz, -126.54 dB, 3.96 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
Compensated 12:
1000.93 Hz, -12.06 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
3999.39 Hz, -128.16 dB, 117.38 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg |
Použití kalibrace pro:
-18dB - zlepšení 2. harm o 9dB, zbytek víceméně stejný
-24dB - zlepšení 2. harm o 3dB, zbytek víceméně stejný
IMO se to chová slušně, nic nekazí. Samozřejmě to chce co největší signál, aby byl výpočetní prostor pro přesné výpočty.
kód: | 2:
1000.93 Hz, -12.46 dB, 0.00 dg
2000.87 Hz, -104.09 dB, 180.26 dg
3000.80 Hz, -113.43 dB, 182.41 dg
4000.73 Hz, -118.67 dB, 3.10 dg
5001.34 Hz, -126.54 dB, 3.96 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
Reference:
1000.93 Hz, -12.05 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
Compensated 12:
1000.93 Hz, -12.06 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
3999.39 Hz, -128.16 dB, 117.38 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
18:
1000.93 Hz, -18.47 dB, 0.00 dg
2000.87 Hz, -108.34 dB, 336.05 dg
3000.80 Hz, -121.43 dB, 120.69 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
7005.24 Hz, -127.96 dB, 109.60 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
Compensated 18:
1000.93 Hz, -18.06 dB, 0.00 dg
2000.87 Hz, -117.39 dB, 343.55 dg
3000.80 Hz, -122.37 dB, 120.04 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
7005.24 Hz, -127.56 dB, 109.60 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
24:
1000.93 Hz, -24.51 dB, 0.00 dg
2000.87 Hz, -114.07 dB, 298.35 dg
3000.80 Hz, -126.61 dB, 48.64 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
Compensated 24:
1000.93 Hz, -24.10 dB, 0.00 dg
2000.87 Hz, -117.43 dB, 300.11 dg
3000.80 Hz, -126.42 dB, 48.60 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg |
|
|
Návrat hore |
|
|
dustin Hifi inventar
Založený: 06 október 2006 Príspevky: 4857 Bydlisko: Plzeň
|
Zaslal: St október 24, 2018 09:42:55 Predmet: |
|
|
Miero, dáš si to na github, nebo to mám dát k sobě? Už bychom git potřebovali, máme spoustu kódu. |
|
Návrat hore |
|
|
miero Hifi inventar
Založený: 08 september 2010 Príspevky: 11428 Bydlisko: Praha
|
Zaslal: St október 24, 2018 10:07:11 Predmet: |
|
|
Daj si to k sebe. Aspon si to trochu uceses :-)) |
|
Návrat hore |
|
|
dustin Hifi inventar
Založený: 06 október 2006 Príspevky: 4857 Bydlisko: Plzeň
|
Zaslal: St október 24, 2018 10:18:44 Predmet: |
|
|
OK, zítra večer, dneska už to nestihnu. |
|
Návrat hore |
|
|
dustin Hifi inventar
Založený: 06 október 2006 Príspevky: 4857 Bydlisko: Plzeň
|
Zaslal: St október 24, 2018 13:18:31 Predmet: |
|
|
Přemýšlím o té automatické kalibraci aktuální úrovně. Něco jako:
Ve vstupním i výstupní chainu alsích zařízení běží monitorovací plugin meter (zrovna diskutujeme v https://www.diyaudio.com/forums/pc-based/328688-peppyalsa-alsa-plugin-vu-meters-spectrum-analyzers.html a https://www.diyaudio.com/forums/pc-based/291010-peppymeter-5.html + další), řídící python si z něj průběžně pamatuje aktuální levely výstupu i vstupu.
V artě dám měření, nastavím DUT, měřím bez nelineární kalibrace (koeficienty > 1. řád jsou nulové). Pak se rozhodnu, že toto konkrétní měření chci zpřesnit nelineární kalibrací. Vypnu v artě generátor/nahrávání a zmáčknu na měřicí stanici čudlík "kalibrovat".
Řídící python ví, jaká byla úroveň na vstupech i výstupech. Výstupní level se snadno nastaví na přesnou hodnotu přímo při generování kalibračního sinu.
Pro nastavení úrovně vstupního signálu by byl v kalibrační smyčce relátkový dělič (stejně tam již jsou) - třeba 4 relátka = 16 kroků po 1.5dB, tj rozsah 0 až -24dB. To na běžné měření stačí, menší měřená úroveň stejně vyžaduje předzesilovač (i ten tam už je připravený, kalibrovalo by se pro konkrétní konfiguraci - s či bez vloženého předzesilovače).
Řídící python zvolí dle poslední nasnímané hodnoty vstupu nejbližší vyšší rozsah děliče, nastaví relátka děliče a spustí pár sekund kalibrace (a třeba zahlásí použitý level, pro kontrolu). Zahlásí hotovo a mohu znovu pustit v artě generátor/měření (samozřejmě beze změny nastavení), tentokrát již zkalibrovanou cestou s chybou max. 1.5dB měřené úrovně vůči kalibrační, což je v mezích dost výrazného snížení zkreslení.
Stačilo by na to přidat 4 relátka (ke stávajícím 4) a pár 1% odporů (absolutní úroveň není kritická, virtuální symetriku lze kalibrovat napřímo bez děličů). Řídících linek bude dost, arduino nano za 50Kč se 14 GPIO piny + firmata https://www.instructables.com/id/Arduino-Installing-Standard-Firmata/ , pro python je parádní klient. Vše ostatní je záležitost pythonu a octave.
Není to úplně triviální, ale zcela proveditelné.
Ještě kdyby tak šlo z těch křížových kalibrací L/R výstupů proti L/R vstupům nějak spočítat polynomy pro jednotlivé výstupy a vstupy.... |
|
Návrat hore |
|
|
opa Hifi inventar
Založený: 24 február 2007 Príspevky: 11176 Bydlisko: Praha
|
Zaslal: St október 24, 2018 17:44:53 Predmet: |
|
|
Tak to vypadá, že se to posunulo do velmi užitečné podoby. Pro mé použití by naprosto stačilo určit nějaké ty koeficienty a provést korekci pro jednu jedinou pevnou hodnotu výstupního napětí. Pokud bych to chtěl vyzkoušet, bude časem k dispozici nějaký návod pro naprosté lamy krok za krokem, jak to udělat ? _________________ Cui bono ? |
|
Návrat hore |
|
|
dustin Hifi inventar
Založený: 06 október 2006 Príspevky: 4857 Bydlisko: Plzeň
|
Zaslal: St október 24, 2018 19:49:12 Predmet: |
|
|
Zatím pořád jen pracujeme s předem nahranými wavy. Použitelnost se ukáže, až se budou vzorky přepočítávat přímo při měření. Možná to s reálným streamem vůbec nebude fungovat, to se teprve uvidí.
Postup samozřejmě bude, pokud to bude reálně fungovat. |
|
Návrat hore |
|
|
dustin Hifi inventar
Založený: 06 október 2006 Príspevky: 4857 Bydlisko: Plzeň
|
Zaslal: Št október 25, 2018 07:42:22 Predmet: |
|
|
Teoretická obnova zkreslení -20dB pod nativním rozlišením smyčky:
Nativní zkreslení smyčky - nahraný wav z Juli
kód: | Recorded:
1000.74 Hz, -2.07 dB, 0.00 dg
2001.22 Hz, -101.95 dB, 338.47 dg
3000.97 Hz, -111.45 dB, 118.14 dg
4000.71 Hz, -125.56 dB, 281.07 dg
5001.19 Hz, -114.70 dB, 267.69 dg |
Zkalibrujeme polynomem na
kód: | Recovered:
1000.74 Hz, -2.63 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
3000.97 Hz, -121.37 dB, 46.76 dg
0.00 Hz, -999.00 dB, 0.00 dg
5001.19 Hz, -131.97 dB, 180.57 dg |
Nyní vyrobíme čebyševem polynomiální zkreslení -120dB na druhé harmonické:
kód: | distortpoly = leftpadz( db2mag(0) * chebyshevpoly(1,1) );
distortpoly += leftpadz( db2mag(-120) * chebyshevpoly(1,2)); |
Funkčnost zkreslujícího polynomu ověříme tím, že skrz něj proženeme referenční sinus:
kód: | Reference Distortion:
1000.74 Hz, -2.63 dB, 0.00 dg
2001.22 Hz, -124.63 dB, 159.01 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg |
Zkreslíme polynomem distortpoly nativní naměřený signál z Juli (aproximace vložení zkresleni do smyčky):
kód: | Recorded with Distortion:
1000.74 Hz, -2.07 dB, 0.00 dg
2001.22 Hz, -102.71 dB, 338.42 dg
3000.97 Hz, -111.45 dB, 118.14 dg
4000.71 Hz, -125.56 dB, 281.07 dg
5001.19 Hz, -114.70 dB, 267.69 dg |
Z toho samozřejmě nevidíme vůbec nic, harmonické se oproti měření bez vloženého zkreslení v podstatě nezměnily, jsou vysoko nad přidaným zkreslením.
A měření se zkreslením proženeme kompenzačním polynomem:
kód: | Recovered Distortion:
1000.74 Hz, -2.63 dB, 0.00 dg
2001.22 Hz, -126.08 dB, 167.27 dg
3000.97 Hz, -121.37 dB, 46.76 dg
0.00 Hz, -999.00 dB, 0.00 dg
5001.19 Hz, -131.97 dB, 180.57 dg
|
Třetí a pátá harmonické jsou úplně stejné jako u čisté zkalibrované smyčky (dopředu známá chyba měření), ovšem objevila se druhá -126dB. Takže zkalibrovaný řetězec změřil poměrně přesně -124 dB přidaného zkreslení, hluboko pod nativním zkreslením smyčky -102dB.
Takže teorie by fungovala. Jenže rozhoduje praxe. Pustím se do toho route pluginu. |
|
Návrat hore |
|
|
dustin Hifi inventar
Založený: 06 október 2006 Príspevky: 4857 Bydlisko: Plzeň
|
Zaslal: Pi október 26, 2018 21:24:02 Predmet: |
|
|
Interní zvukovka PC (8x xeon, 72GB RAM, 700W zdroj), konfigurace symetrického virtuálu:
kód: | pcm.symmetric_in {
type route
slave {
pcm "hw:0"
channels 2
}
ttable {
0.0 { polynom [-3.2787e-05 4.9206e-01 2.5843e-05 1.4382e-04 8.1172e-05 2.0301e-05 ] }
0.1 { polynom [ 6.7723e-06 -4.9254e-01 -1.1393e-06 -1.8654e-04 -9.9866e-05 3.8831e-05 ] }
1.0 { polynom [-3.2787e-05 4.9206e-01 2.5843e-05 1.4382e-04 8.1172e-05 2.0301e-05 ] }
1.1 { polynom [ 6.7723e-06 -4.9254e-01 -1.1393e-06 -1.8654e-04 -9.9866e-05 3.8831e-05 ] }
}
}
|
Měření smyčky smotanou 2m tkaničkou:
1. obr.: nesymetrika napřímo
2. obr.: virtuální symetrika, zkalibrovaná střední amplitudou (tj. offset a lineární prvek)
3. obr.: virtuální symetrika, zkalibrovaná polynomem 5. stupně |
|
Návrat hore |
|
|
opa Hifi inventar
Založený: 24 február 2007 Príspevky: 11176 Bydlisko: Praha
|
Zaslal: So október 27, 2018 11:17:18 Predmet: |
|
|
Úžasné ! Když už máš konkrétní měření, tak to znamená, že to chodí v reálu, žádná simulace.
Vysvětlím, proč tak jásám. Při měření bez korekcí je potřeba se držet amplitudy, kdy je zkreslení nejmenší, tedy např. -15 dB. To ovšem znamená, že o těch 15 dB vyleze šum, který se stane limitujícím činitelem. S tou korekcí by to mohlo fungovat pro větší amplitudy a tím se vzdálit od šumového dna. _________________ Cui bono ? |
|
Návrat hore |
|
|
dustin Hifi inventar
Založený: 06 október 2006 Príspevky: 4857 Bydlisko: Plzeň
|
Zaslal: So október 27, 2018 12:00:37 Predmet: |
|
|
Jo, je to normální měření v artě, akorát konfigurace byla ručně. I když je to jen o zkopírování parametrů, jenom jsem nahraný stereo wav prohnal kalibračním skriptem a vypadly koeficienty pravého a levého polynomu. Ty stačí překopírovat do konfiguračního souboru.
Když se podíváš na ty obrázky, šumové pozadí se nelineární kompenzací oproti lineárně zkompenzované symetrice nesníží, ale vykompenzují se nižší harmonické. Očividně ty jsou asi důsledkem nelineárního statického zkreslení. Vyšší harmonické se téměř nezměnily, tam asi budou větší dynamické vlivy, tj. vztahy mezi vzorky v různých časech.
I to by se možná dalo pořešit, možná by pomohla identifikace nelineárních modelů https://www.mathworks.com/help/ident/ug/about-nonlinear-model-identification.html . Ty funkce (nlarx a spol.) zatím v octave nejsou, jen v matlabu.
A nebo zkusit lineární dynamický model (larx), třeba by se chytil líp než polynom. Princip je úplně stejný - do identifikační funkce lezou naměřený průběh a ideální průběh (ten umíme celkem přesně z naměřených dat vyrábět), z funkce lezou rovnou parametry časových řad modelu. Jen by se změnil výpočet vzorků v route pluginu, musely by se pamatovat předchozí hodnoty. |
|
Návrat hore |
|
|
opa Hifi inventar
Založený: 24 február 2007 Príspevky: 11176 Bydlisko: Praha
|
Zaslal: So október 27, 2018 12:05:48 Predmet: |
|
|
dustin napísal: | Když se podíváš na ty obrázky, šumové pozadí se nelineární kompenzací oproti lineárně zkompenzované symetrice nesníží, ale vykompenzují se nižší harmonické. |
Samozřejmě, protože se měří při konstantní úrovni.
Ale pokud bych měl k dispozici fungující sw. kompenzaci zkreslení, můžu tu výchozí úroveň zvýšit a tím se vzdálit od šumového dna, jestli si rozumíme ? _________________ Cui bono ? |
|
Návrat hore |
|
|
dustin Hifi inventar
Založený: 06 október 2006 Príspevky: 4857 Bydlisko: Plzeň
|
Zaslal: So október 27, 2018 12:14:42 Predmet: |
|
|
Už to chápu. To by mělo fungovat, pokud je to zkreslení statického charakteru. Což by zkreslení typu limitace mohlo být. Chce to vyzkoušet. |
|
Návrat hore |
|
|
opa Hifi inventar
Založený: 24 február 2007 Príspevky: 11176 Bydlisko: Praha
|
Zaslal: So október 27, 2018 12:24:01 Predmet: |
|
|
dustin napísal: | Už to chápu. To by mělo fungovat, pokud je to zkreslení statického charakteru. Což by zkreslení typu limitace mohlo být. Chce to vyzkoušet. |
Bez limitace.
Místo toho, abych pracoval se signálem -15 dB, zvolím -3 dB, tedy stále s rezervou pod limitací. Budu mít o 12 dB lepší odstup šumu.
Zvýšené zkreslení při úrovni -3 dB oproti -15 dB doženu tou Tvojí sw. kompenzací. _________________ Cui bono ? |
|
Návrat hore |
|
|
dustin Hifi inventar
Založený: 06 október 2006 Príspevky: 4857 Bydlisko: Plzeň
|
Zaslal: So október 27, 2018 12:30:29 Predmet: |
|
|
Limitací jsem myslel nárůst zkreslení poblíž max. hodnoty - to které potřebuješ vykompenzovat. Uvidíme, ale asi jo. Vždy to bude otázka konkrétní zvukovky, zatím jsem to testoval jen na jedné. I když reálné výsledky se té simulaci dost blížily a dosavadní simulace jiných zvukovek dopadly docela dobře.
Teď to testnu na Juli, co to udělá. A musím vrazit kódy na github, aby to mohl testnout i miero. A pak ještě kuchat dýni na Halloween a trhat jablka |
|
Návrat hore |
|
|
miero Hifi inventar
Založený: 08 september 2010 Príspevky: 11428 Bydlisko: Praha
|
Zaslal: So október 27, 2018 12:36:09 Predmet: |
|
|
konecne spravna motivacia na vyskusanie linuxu :) |
|
Návrat hore |
|
|
dustin Hifi inventar
Založený: 06 október 2006 Príspevky: 4857 Bydlisko: Plzeň
|
Zaslal: So október 27, 2018 13:48:00 Predmet: |
|
|
No zrovna tohle není úplně triviální, cross kompilace upraveného alsa-libu pro i386 wine/artu na hostitelském amd64 není zrovna jednoduchá (na nic jednoduchého jsem nepřišel), pokud člověk nejede na source-based distribuci typu arch nebo gentoo. Ale třeba se podaří přesvědčit alsí adminy, že by bylo užitečné mít polynom v upstreamu. |
|
Návrat hore |
|
|
opa Hifi inventar
Založený: 24 február 2007 Príspevky: 11176 Bydlisko: Praha
|
Zaslal: So október 27, 2018 13:58:13 Predmet: |
|
|
Takže na windousech to nepůjde ? _________________ Cui bono ? |
|
Návrat hore |
|
|
dustin Hifi inventar
Založený: 06 október 2006 Príspevky: 4857 Bydlisko: Plzeň
|
Zaslal: So október 27, 2018 14:08:20 Predmet: |
|
|
Když najdeš komponentu, která bude na základě nějaké konfigurace v souboru přepočítávat vzorky audio streamu někde uvnitř windows, pak to snadno půjde i na windows. Můžeš si to doprogramovat třeba do nějakého open source driveru, ale pak to bude fungovat jen pro tu konkrétní zvukovku.
Windows není tvůj sluha, ale pán. Nicméně sis jej vybral dobrovolně a ještě za něj zaplatil
Mým cílem není obecný postup, ale konkrétní specializované zařízení pro měření. Windowsy by na něm neměly vůbec žádný přínos (kromě několika málo nepodporovaných zvukovek, jejichž výrobce zcela tají veškeré informace - např. Lynx). |
|
Návrat hore |
|
|
opa Hifi inventar
Založený: 24 február 2007 Príspevky: 11176 Bydlisko: Praha
|
Zaslal: So október 27, 2018 14:36:38 Predmet: |
|
|
O.K. Přesto děkuju za ten výzkum, protože ukázal, že taková kompenzace je možná a funguje. Jak to realizovat v konkrétním operačním systému je věc druhá. Když bude čas, můžu nějakou primitivní implementaci zkusit alespoň pro 2. a 3. harmonickou, to by mělo pro mé potřeby stačit.
Podotýkám, bez matematiky, polynomů a skriptů. Pouze hrubou silou. _________________ Cui bono ? |
|
Návrat hore |
|
|
dustin Hifi inventar
Založený: 06 október 2006 Príspevky: 4857 Bydlisko: Plzeň
|
Zaslal: Ne október 28, 2018 01:34:04 Predmet: |
|
|
ESI Juli, single-ended vstupy.
Pravý a levý vstup se trochu liší, levý má trochu větší zkreslení |
|
Návrat hore |
|
|
|
|
Nemôžete pridávať nové témy do tohto fóra. Nemôžete odpovedať na témy v tomto fóre. Nemôžete upravovať svoje príspevky v tomto fóre. Nemôžete mazať svoje príspevky v tomto fóre. Nemôžete hlasovať v tomto fóre. Nemôžete pripojiť súbory do tohto fóra. Nemôžete sťahovať súbory z tohto fóra.
|
|