|
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: 11503 Bydlisko: Praha
|
Zaslal: St november 07, 2018 22:01:54 Predmet: |
|
|
ok, tak prasarna^2 :-D
kód: | function [x] = argv()
switch (program_name())
case "octave-gui"
x = { "../cal.wav", "2" };
otherwise
x = builtin("argv");
endswitch
endfunction
|
|
|
Návrat hore |
|
|
dustin Hifi inventar
Založený: 06 október 2006 Príspevky: 4857 Bydlisko: Plzeň
|
Zaslal: St november 07, 2018 23:02:07 Predmet: |
|
|
A co něco takhle jednoduchého:
kód: | if exist('config.m', 'file')
load('config.m');
else
vsechny srandy s argvar...
end |
|
|
Návrat hore |
|
|
miero Hifi inventar
Založený: 08 september 2010 Príspevky: 11503 Bydlisko: Praha
|
Zaslal: St november 07, 2018 23:16:53 Predmet: |
|
|
jj, kludne to tak uprav :) |
|
Návrat hore |
|
|
dustin Hifi inventar
Založený: 06 október 2006 Príspevky: 4857 Bydlisko: Plzeň
|
Zaslal: St november 07, 2018 23:25:45 Predmet: |
|
|
Otestoval jsem interpolaci přes interp1() i odečítání harmonických.
Interpolace s vygenerovaným sinem (sineReference) a sinem se všemi otočenými harmonickými (reference), 48 tis. vzorků. Interpoluje se konec nahrávky, kalibrace na 1 sekundě probíhala od začátku nahrávky.
kód: | recovered = interp1(sineReference, reference, recorded(200000:end), 'linear', 'extrap'); |
Interpolace sjednotí všechny harmonické k -130, druhá neměřitelná:
kód: | Recorded:
1000.97 Hz, -3.44 dB, -21.02 dg
2000.94 Hz, -106.03 dB, 137.80 dg
3000.91 Hz, -118.14 dB, 144.21 dg
4000.87 Hz, -127.89 dB, 93.91 dg
5000.84 Hz, -124.75 dB, -110.18 dg
0.00 Hz, -999.00 dB, 0.00 dg
7000.78 Hz, -131.59 dB, -123.20 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
Recorded:
1001.00 Hz, -3.44 dB, -21.02 dg
2001.00 Hz, -106.07 dB, 138.08 dg
3001.00 Hz, -118.32 dB, 139.84 dg
4001.00 Hz, -127.41 dB, 86.37 dg
5001.00 Hz, -124.92 dB, -104.22 dg
0.00 Hz, -999.00 dB, 0.00 dg
7001.00 Hz, -128.94 dB, -148.02 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
Ref 10:
1001.00 Hz, -3.44 dB, -21.02 dg
2001.00 Hz, -106.07 dB, -41.92 dg
3001.00 Hz, -118.32 dB, -40.16 dg
4001.00 Hz, -127.41 dB, -93.63 dg
5001.00 Hz, -124.92 dB, 75.78 dg
0.00 Hz, -999.00 dB, 0.00 dg
7001.00 Hz, -128.94 dB, 31.98 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
Recovered:
1000.99 Hz, -3.44 dB, -148.52 dg
0.00 Hz, -999.00 dB, 0.00 dg
3000.96 Hz, -130.36 dB, 97.77 dg
4000.95 Hz, -130.37 dB, 105.93 dg
5000.93 Hz, -130.23 dB, 165.42 dg
6000.92 Hz, -130.28 dB, 170.92 dg
7000.90 Hz, -126.34 dB, -157.52 dg
8000.89 Hz, -128.25 dB, -103.52 dg
9000.88 Hz, -129.44 dB, -102.22 dg
10000.86 Hz, -133.27 dB, -95.98 dg |
Zeslabení (mismatch) měřicího signálu na 0.8 bez změny interpolačních polí - ještě pořád by to šlo:
kód: | Recovered:
1000.99 Hz, -5.38 dB, -148.52 dg
2000.97 Hz, -117.64 dB, -117.00 dg
3000.96 Hz, -127.00 dB, -155.04 dg
0.00 Hz, -999.00 dB, 0.00 dg
5000.93 Hz, -124.86 dB, -32.27 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 |
K tomuto nesouladu by dojít nemělo, měřené vzorky v poli od zvukovky bychom naškálovali na normované RMS.
Není to špatné, výhodou je předpočítání interpolačních dat při kalibraci a v každém kole se jen načtené vzorky ze zvukovky přepočítají na normované rms (v rozumných mezích) a proženou interp1. Aktuální fáze, délka pole, nic nás nezajímá, interpolace jede pro každý vzorek samostatně.
Vliv délky předpočítaných polí se sinem a sinus+harmonické:
kód: | Recovered for 48000:
1000.99 Hz, -3.44 dB, -148.52 dg
0.00 Hz, -999.00 dB, 0.00 dg
3000.96 Hz, -130.30 dB, 97.71 dg
4000.95 Hz, -130.31 dB, 106.03 dg
5000.93 Hz, -130.16 dB, 165.30 dg
6000.92 Hz, -130.22 dB, 170.98 dg
7000.90 Hz, -126.30 dB, -157.48 dg
8000.89 Hz, -128.20 dB, -103.61 dg
9000.88 Hz, -129.39 dB, -102.13 dg
10000.86 Hz, -133.20 dB, -95.65 dg
Recovered for 96000:
1000.99 Hz, -3.44 dB, -148.52 dg
0.00 Hz, -999.00 dB, 0.00 dg
3000.96 Hz, -132.07 dB, 69.86 dg
0.00 Hz, -999.00 dB, 0.00 dg
5001.60 Hz, -134.09 dB, 21.41 dg
6000.92 Hz, -131.99 dB, 168.90 dg
7000.90 Hz, -130.23 dB, -154.23 dg
8000.89 Hz, -129.53 dB, -100.81 dg
9000.88 Hz, -130.62 dB, -104.02 dg
0.00 Hz, -999.00 dB, 0.00 dg
Recovered for 192000:
1000.99 Hz, -3.44 dB, -148.52 dg
0.00 Hz, -999.00 dB, 0.00 dg
3000.96 Hz, -128.38 dB, 82.06 dg
4000.95 Hz, -130.52 dB, 116.30 dg
5000.93 Hz, -128.69 dB, 153.69 dg
6000.92 Hz, -129.56 dB, 171.64 dg
7000.90 Hz, -128.03 dB, -146.19 dg
8000.89 Hz, -127.69 dB, -104.58 dg
9000.88 Hz, -128.20 dB, -100.57 dg
10000.86 Hz, -132.42 dB, -92.22 dg |
V tomto případě dává nejlepší čísla 96 tis. předgenerovaných vzorků. |
|
Návrat hore |
|
|
miero Hifi inventar
Založený: 08 september 2010 Príspevky: 11503 Bydlisko: Praha
|
Zaslal: St november 07, 2018 23:41:30 Predmet: |
|
|
slusne :) ak to bude stihat pocitat i v realnom case, tak mozeme pouzit :) |
|
Návrat hore |
|
|
dustin Hifi inventar
Založený: 06 október 2006 Príspevky: 4857 Bydlisko: Plzeň
|
Zaslal: St november 07, 2018 23:45:46 Predmet: |
|
|
Metodu odečítání vygenerovaných vyšších harmonických - nabráno v první sekundě, aplikováno na pátou sekundu:
kód: | Recorded - 1st second
1001.00 Hz, -3.44 dB, -21.02 dg
2001.00 Hz, -106.07 dB, 138.08 dg
3001.00 Hz, -118.32 dB, 139.84 dg
4001.00 Hz, -127.41 dB, 86.37 dg
5001.00 Hz, -124.92 dB, -104.22 dg
0.00 Hz, -999.00 dB, 0.00 dg
7001.00 Hz, -128.94 dB, -148.02 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
Recovered - 5th second
1001.00 Hz, -3.44 dB, -21.02 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
5003.00 Hz, -133.15 dB, -11.08 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 |
Trochu náročnější na výpočet v každém cyklu, ale ne o moc, stačí fáze z prvních pár period. |
|
Návrat hore |
|
|
dustin Hifi inventar
Založený: 06 október 2006 Príspevky: 4857 Bydlisko: Plzeň
|
|
Návrat hore |
|
|
dustin Hifi inventar
Založený: 06 október 2006 Príspevky: 4857 Bydlisko: Plzeň
|
Zaslal: Št november 08, 2018 00:03:22 Predmet: |
|
|
Ještě citlivost odečítání harmonických na změnu měřeného levelu, bez změny kompenzačních harmonických:
kód: |
Recorded:
1001.00 Hz, -3.44 dB, -21.02 dg
2001.00 Hz, -106.07 dB, 138.08 dg
3001.00 Hz, -118.32 dB, 139.84 dg
4001.00 Hz, -127.41 dB, 86.37 dg
5001.00 Hz, -124.92 dB, -104.22 dg
0.00 Hz, -999.00 dB, 0.00 dg
7001.00 Hz, -128.94 dB, -148.02 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
Recovered for recorded * 0.9:
1001.00 Hz, -4.36 dB, -21.02 dg
2001.00 Hz, -128.16 dB, -37.97 dg
0.00 Hz, -999.00 dB, 0.00 dg
0.00 Hz, -999.00 dB, 0.00 dg
5003.00 Hz, -134.07 dB, -11.08 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
Recovered for recorded * 0.8:
1001.00 Hz, -5.38 dB, -21.02 dg
2001.00 Hz, -120.92 dB, -40.40 dg
3001.00 Hz, -131.88 dB, -38.98 dg
0.00 Hz, -999.00 dB, 0.00 dg
5003.00 Hz, -135.09 dB, -11.07 dg
0.00 Hz, -999.00 dB, 0.00 dg
7001.00 Hz, -134.51 dB, 2.13 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 |
Bude se nabírat fáze, takže se amplituda stejně zjistí. Stejně se pravý a levý kanál budou zarovnávat na shodné RMS kvůli virtuální symetrice, takže se to vždycky srovná na nějaký fixní krok (třeba krok 0.1, tj. max. korekce amplitudy 1dB) |
|
Návrat hore |
|
|
dustin Hifi inventar
Založený: 06 október 2006 Príspevky: 4857 Bydlisko: Plzeň
|
Zaslal: Št november 08, 2018 00:27:03 Predmet: |
|
|
Ještě jsem opravil interpolaci - otočil jsem směr na správný - od sinu se shodnými harmonickými směrem k přesnému sinu. To výsledky trochu zlepšilo, pro 48tis. i 96 tis. interpolačních bodů jsou téměře úplně stejné - zde pro 48 tis: :
kód: | Recorded:
1001.00 Hz, -3.44 dB, -21.02 dg
2001.00 Hz, -106.07 dB, 138.08 dg
3001.00 Hz, -118.32 dB, 139.84 dg
4001.00 Hz, -127.41 dB, 86.37 dg
5001.00 Hz, -124.92 dB, -104.22 dg
0.00 Hz, -999.00 dB, 0.00 dg
7001.00 Hz, -128.94 dB, -148.02 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
Ref 10:
1001.00 Hz, -3.44 dB, -21.02 dg
2001.00 Hz, -106.07 dB, 138.08 dg
3001.00 Hz, -118.32 dB, 139.84 dg
4001.00 Hz, -127.41 dB, 86.37 dg
5001.00 Hz, -124.92 dB, -104.22 dg
0.00 Hz, -999.00 dB, 0.00 dg
7001.00 Hz, -128.94 dB, -148.02 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
Recovered:
1000.99 Hz, -3.44 dB, -148.52 dg
0.00 Hz, -999.00 dB, 0.00 dg
3000.96 Hz, -131.99 dB, 99.39 dg
0.00 Hz, -999.00 dB, 0.00 dg
5000.93 Hz, -131.77 dB, 168.51 dg
0.00 Hz, -999.00 dB, 0.00 dg
7000.90 Hz, -127.33 dB, -158.43 dg
8000.89 Hz, -133.99 dB, -86.68 dg
9000.88 Hz, -130.87 dB, -104.44 dg
0.00 Hz, -999.00 dB, 0.00 dg
Recovered from 0.8 * recorded:
1000.99 Hz, -5.38 dB, -148.52 dg
2000.97 Hz, -117.64 dB, -117.00 dg
3000.96 Hz, -127.00 dB, -155.03 dg
0.00 Hz, -999.00 dB, 0.00 dg
5000.93 Hz, -124.86 dB, -32.27 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 |
Tak nevím, taky se to chová docela pěkně a bude to daleko méně náchylné na xruny, posuny fází apod. než generování harmonických a jejich odečítání v každém cyklu. Ale to má zase daleko lepší výsledky, přeci jen tohle je jenom interpolace. |
|
Návrat hore |
|
|
miero Hifi inventar
Založený: 08 september 2010 Príspevky: 11503 Bydlisko: Praha
|
|
Návrat hore |
|
|
dustin Hifi inventar
Založený: 06 október 2006 Príspevky: 4857 Bydlisko: Plzeň
|
Zaslal: Št november 08, 2018 22:23:58 Predmet: |
|
|
Miero, díky moc.
Takže fft se bude počítat z nejbližšího celého násobku fs?
Co kdybychom přešli na radiány a vynechali všude ty konverze na stupně? IMO zbytečný kód a příležitost k chybám.
Při generování toho referenčního signálu jsem narazil na to, že potřebuji znát i fázi první harmonické. S tím souvisí posuny ostatních - nejsem si jist, že stačí odečíst posun první. Tak jsem nic neodečítal a vracel všechny fáze tak, jak odpovídají vzorkům. A funguje to OK. Tak bych to vyhodil.
Ještě jednou díky. |
|
Návrat hore |
|
|
miero Hifi inventar
Založený: 08 september 2010 Príspevky: 11503 Bydlisko: Praha
|
Zaslal: Št november 08, 2018 23:59:09 Predmet: |
|
|
fft z najvacsieho celého násobku fs ... ak chces menej, orez hned na vstupe
vydelil som novu funkciu findHarmonics, ktora uz nepocita fft, ale len hlada harmonicke, a vracia ne-decibely a radiany.
a hned ju aj vyuzil v tretom okne vylepseneho playrec skriptiku spectrum_analyser.m, ktory som rovno pridal do naseho gitu :-) |
|
Návrat hore |
|
|
dustin Hifi inventar
Založený: 06 október 2006 Príspevky: 4857 Bydlisko: Plzeň
|
Zaslal: Pi november 09, 2018 08:28:52 Predmet: |
|
|
Super. Neuděláme getHarmonics jen tiskovou/konverzí metodu pro peaks z findHarmonics, který jen zkonvertuje v peaks db a stupně? A rovnou by to mohlo tisknout - takže třeba printHarmonics nebo rovnou printPeaks? Dva podobné kódy na hledání harmonických je trochu náročnější na správu.
Třeba
peaks = findHarmonics(data)
printPeaks(peaks)
printHarmonics() - uvnitř jen printPeaks(getHarmonics)
Pushnu metody na generování výsledné harmonické reference z peaks. Ty by se ukládaly do souboru s výsledky kalibrace jako součást nějakého structu přes save/load.
Bude se dát spoléhat na frekvenci v peaks?
Neuděláme jeden z repozitářů sdílený pro push? https://help.github.com/articles/permission-levels-for-a-user-account-repository/#collaborator-access-on-a-repository-owned-by-a-user-account |
|
Návrat hore |
|
|
miero Hifi inventar
Založený: 08 september 2010 Príspevky: 11503 Bydlisko: Praha
|
Zaslal: Pi november 09, 2018 11:50:30 Predmet: |
|
|
jj, treba to trosku ucesat :-)
prizval som ta k sebe ako spolutvorcu a povolil issues - mozeme si taketo implementacne requesty pisat cez github a tu prezentovat len vysledky.
k frekvencii ... ak ju treba presne, tak dat tam co najviac dat -> uzky bin ... ale uplne presne to s fft nebude, napr. na najdenie rozdielu frekvencie z ineho DACu ako som dal tu nahravky na zaciatku, bude treba chytrejsi algoritmus ... napr. korelaciu + nejake binarne delenie
ale v aktualnej findHarmonics som uz snad opravil +/-1 chyby a uz to detekuje presnych 1000Hz spravne |
|
Návrat hore |
|
|
dustin Hifi inventar
Založený: 06 október 2006 Príspevky: 4857 Bydlisko: Plzeň
|
Zaslal: Pi november 09, 2018 12:24:09 Predmet: |
|
|
Díky, večer se k tomu dostanu.
Možná bychom mohli zaokrouhlovat na celé Hz, pak by to s detekcí nemělo mít problém.
Zafunguje detekce harmonických pro vzorky nezarovnané na celou periodu (např. pro 1350Hz)? |
|
Návrat hore |
|
|
PMA Pavel Macura
Založený: 18 január 2007 Príspevky: 20456
|
Zaslal: Pi november 09, 2018 12:36:49 Predmet: |
|
|
Ale treba Arta generuje pro optimalni analyzu kmitocty na neinteger cisla, desetinna. A nejen Arta. _________________ mám rád hifi, ale víte, jak je to dál ..... |
|
Návrat hore |
|
|
miero Hifi inventar
Založený: 08 september 2010 Príspevky: 11503 Bydlisko: Praha
|
Zaslal: Pi november 09, 2018 12:44:55 Predmet: |
|
|
Nemaj obavy. S poctom binov zarovnanych na Fs to teraz deteguje celociselne] frekvencie a ich amplitudy a fazy naozaj luxusne... signal 1111Hz + 2. a 3. harmonicka s Fs 44100Hz.
kód: | Signal:
1111.00 Hz, -1.00 dB, 0.00 dg
2222.00 Hz, -100.00 dB, 45.00 dg
3333.00 Hz, -120.00 dB, 130.00 dg
4444.00 Hz, -285.32 dB, 197.53 dg
5555.20 Hz, -283.16 dB, 139.30 dg
6666.20 Hz, -292.30 dB, 184.42 dg
7777.00 Hz, -296.17 dB, 228.27 dg
8888.00 Hz, -298.85 dB, 234.38 dg
9999.20 Hz, -300.49 dB, 219.77 dg
11110.00 Hz, -290.65 dB, 231.67 dg
12221.00 Hz, -304.71 dB, 214.02 dg
13332.20 Hz, -290.50 dB, 64.45 dg
14442.80 Hz, -307.28 dB, 262.65 dg
0.00 Hz, -301.14 dB, 319.10 dg
16664.80 Hz, -308.75 dB, 197.77 dg
0.00 Hz, -281.74 dB, 178.72 dg
18887.20 Hz, -306.45 dB, 186.18 dg
0.00 Hz, -280.66 dB, 12.68 dg
0.00 Hz, -304.08 dB, 308.84 dg
|
Naposledy upravil miero dňa Pi november 09, 2018 12:48:08, celkom upravené 1 krát. |
|
Návrat hore |
|
|
miero Hifi inventar
Založený: 08 september 2010 Príspevky: 11503 Bydlisko: Praha
|
Zaslal: Pi november 09, 2018 12:47:31 Predmet: |
|
|
PMA, samozrejme i to nase vie generovat cokolvek. Neskusis si to nainstalovat? :-) |
|
Návrat hore |
|
|
dustin Hifi inventar
Založený: 06 október 2006 Príspevky: 4857 Bydlisko: Plzeň
|
Zaslal: Pi november 09, 2018 12:55:07 Predmet: |
|
|
Miero, paráda.
To nulování první fáze - IMO když se první posune o 30°, druhá bude o 2x30, 3. o 3x30 atd - časové zpoždění stejné, ale násobná frekvence.
Ale stejně potřebujeme konkrétní čísla, ne od nuly. |
|
Návrat hore |
|
|
miero Hifi inventar
Založený: 08 september 2010 Príspevky: 11503 Bydlisko: Praha
|
Zaslal: Pi november 09, 2018 13:01:34 Predmet: |
|
|
Jasne, toto je rezim spatnej kompatibility, kde sa to este odcitava (a na overenie ze sedi s generatorom) :-)
Este motivacny obrazok pre PMA: |
|
Návrat hore |
|
|
PMA Pavel Macura
Založený: 18 január 2007 Príspevky: 20456
|
Zaslal: Pi november 09, 2018 13:14:51 Predmet: |
|
|
miero napísal: | PMA, samozrejme i to nase vie generovat cokolvek. Neskusis si to nainstalovat? |
Oceňuju co děláte, líbí se mi to, ale nevidím pro to v audiu praktické využití. Jestli jou složky zkreslení H2, H3 -90dB nebo -130dB se nijak nepromítne do slyšitelnosti, takže nevím, na co bych to využil, kromě tvorby pěkných obrázků a předhánění se v nejnižších číslech. Standardní programy jako Arta, Multi Instrument, CoolEdit, SpectraLab poskytují spoustu uživatelského komfortu a to je pro mě nejdůležitější.
Co se týče těch kmitočtů, optimální je generovat i analyzovat na přesném násobku bin width, pak lze použít i Flat Top a Uniform okna a odpadne zatížení chybou amplitudy související s použitým oknem. _________________ mám rád hifi, ale víte, jak je to dál ..... |
|
Návrat hore |
|
|
miero Hifi inventar
Založený: 08 september 2010 Príspevky: 11503 Bydlisko: Praha
|
Zaslal: Pi november 09, 2018 13:25:48 Predmet: |
|
|
Jasne, preto pouzivame sirku binu 1Hz, resp. este celociselne delitele 1Hz.
S Octave by si si mohol napr. vypocitat GedLee metriku napr. pre repro. To zatial ziaden komercny SW nedokaze.
Obdlznikove okno ide pouzit, len ak signal (a skumane harmonicke) su zaroven delitelmi Fs. |
|
Návrat hore |
|
|
dustin Hifi inventar
Založený: 06 október 2006 Príspevky: 4857 Bydlisko: Plzeň
|
Zaslal: Pi november 09, 2018 13:38:57 Predmet: |
|
|
PMA napísal: | kromě tvorby pěkných obrázků a předhánění se v nejnižších číslech. |
A o čem je celé hifi? Proč jsi stavěl little keny, když již předchozí zesilovače měly zkreslení neslyšitelné? Proč se prodávají DACy s ESS a zkreslením na -120dB? Mimochodem takový DAC ani slušnou zvukovkou nezměříš, nebo jen se složitými notch filtry na konkrétní frekvenci. Se zkompenzovanou pravděpodobně bez problémů.
citácia: | Standardní programy jako Arta, Multi Instrument, CoolEdit, SpectraLab poskytují spoustu uživatelského komfortu a to je pro mě nejdůležitější. |
Vždyť proto si dáváme zadání takové, abys tyhle softy mohl i nadále používat. Na virtuální zvukovce (pro win zřejmě https://www.vb-audio.com/Cable/ ), která bude dávat zkalibrovaná/zkompenzovaná data z reálné zvukovky. Možná to ve windows nepůjde úplně zautomatizovat, protože asi nelze jednoduše sledovat stav zvukovky (narozdíl od linuxu, kde jsou všechny detailní informace samozřejmě k dispozici), ale možná na to najdeme workaroundy.
Nejdříve odladíme kalibraci a kompenzaci s výstupními grafy v octave. Ale pak to rozšíříme tak, aby se vzorky předávaly virtuálnímu loopbacku. Na jeho capture zařízení (další zvukovka v OS) si můžeš napojit jakýkoliv soft, který umí přímý vstup/výstup na zvukovku. |
|
Návrat hore |
|
|
MaBat Hifi inventar
Založený: 21 november 2007 Príspevky: 12763
|
Zaslal: Pi november 09, 2018 13:45:32 Predmet: |
|
|
miero napísal: | Obdlznikove okno ide pouzit, len ak signal (a skumane harmonicke) su zaroven delitelmi Fs. |
No, je to trochu jinak. Obdélníkové okno lze bez obav použít, pokud perioda signálu (ne nutně nejkratší perioda) přesně souhlasí s časovou délkou DFT. Tj. pokud N_FFT * f / Fs je celé číslo. Je to proto, protože FFT přepokládá, že signál je periodický. Pro celočíselné frekvence je každpádně N_FFT = Fs dobrá volba, protože tam to pak platí pro jakoukoliv celočíselnou frekvenci.
Když už nic jiného, aspoň se u toho naučíte nějaké základy...
Naposledy upravil MaBat dňa Pi november 09, 2018 13:51:11, celkom upravené 1 krát. |
|
Návrat hore |
|
|
miero Hifi inventar
Založený: 08 september 2010 Príspevky: 11503 Bydlisko: Praha
|
Zaslal: Pi november 09, 2018 13:51:08 Predmet: |
|
|
Aha, nejak som si to doplietol - dakujem za vysvetlenie! :-) |
|
Návrat hore |
|
|
MaBat Hifi inventar
Založený: 21 november 2007 Príspevky: 12763
|
Zaslal: Pi november 09, 2018 13:52:48 Predmet: |
|
|
Taky proto jsem navrhoval 1125 Hz při N=32768 a Fs=48 kHz. Není to dělitelem 48 kHz, přesto je to zarovnané na délku okna. Ale harmonické už z toho vylezou.
Edit: Ale houby, nevylezou, je to jen násobek Takže 1125 Hz je při takovém nastavení po všech stránkách "bezpečných"... |
|
Návrat hore |
|
|
miero Hifi inventar
Založený: 08 september 2010 Príspevky: 11503 Bydlisko: Praha
|
Zaslal: Pi november 09, 2018 14:11:28 Predmet: |
|
|
potvrdzujem ... a plati to i pre 1500Hz = 4 * 375Hz ... s obdlznikovym oknom |
|
Návrat hore |
|
|
MaBat Hifi inventar
Založený: 21 november 2007 Príspevky: 12763
|
Zaslal: Pi november 09, 2018 14:14:01 Predmet: |
|
|
To jo, ale to zas tady tvrdí, že to není vhodné pro převodník (tj. vzít dělitele Fs). Že se to tím omezí na příliš malou množinu hodnot vzorků (tj. jen přes tu jednu základní periodu) a vylezou další chyby převodníku. Což asi smysl dává. |
|
Návrat hore |
|
|
dustin Hifi inventar
Založený: 06 október 2006 Príspevky: 4857 Bydlisko: Plzeň
|
Zaslal: Pi november 09, 2018 16:38:52 Predmet: |
|
|
Miero: Když se vrátím k potřebám analýzy:
Kalibrace
-----------
Potřebujeme přesně frekvence, amplitudy a harmonické, čas max. několik sekund, spíše 1s. Podporované frekvence jen celé Hz.
Stanovení frekvence - stačí mi fs vzorků, tj. 1 sekunda s přesností 1Hz. Tj. 1 x fft(fs).
Z naměřené frekvence určím délku FFT, kde bude počet vzorků sedět přesně na hranici periody.
Pokud se do fs vejde přesně celý počet period, mohu rovnou spočítat zbytek (1kHz -> fft(48kHz).
Pokud je ucelený počet period < fs, zkrátím a provedu fft nad tímto počtem (např. ten 1125Hz -> fft(32768)).
Pokud je ucelený počet period > fs (např. pro 1140Hz je potřeba při 48kHz fs 5472 period = 230 400 vzorků, aby seděl poslední vzorek přesně na konec periody - 4.8 sekundy) - buď kvalitním P/Q resamplováním https://octave.sourceforge.io/signal/function/resample.html doplnit chybějící vzorky a opět použít část nahrané jedné sekundy, nebo fázový posun spočítat nějakými vzájemnými korelacemi.
Pro první kolo navrhuji udělat jen celé násobky přesně na fs (1kHz, 1500Hz) a pak celé násobky menší než 1s (1125Hz)
Měření
--------
Potřebujeme přesný fázový posun fundamentu, ale nemáme prostor pro větší latenci. Můžeme posílat nezměněné vzorky dál a s generováním korekčních harmonických/kompenzací začít, až nabereme dost dat na spočítání úvodního fázového posunu. To by možná bylo nejlepší řešení.
A pak v další fázi můžeme implementovat P/Q resampling a použít jej při kalibraci i kompenzaci. |
|
Návrat hore |
|
|
miero Hifi inventar
Založený: 08 september 2010 Príspevky: 11503 Bydlisko: Praha
|
Zaslal: Pi november 09, 2018 17:21:01 Predmet: |
|
|
MaBat, k tym 1500Hz ide primiesat nejaku "iracionalnu" frekvenciu s nizsou amplitudou a prevodnik uz nebude generovat len par hodnot. Ale dnes bezne oversampling prevodniky si z toho i tak vyrobia nasledne multiurovnovy gulas. A obzvlast, ak bude mat vlastne asynchronne hodiny, ktorych frekvenciu nejde delit Fs.
Dustin, pride mi, ze to co chces pre kalibraciu, uz mame i teraz. Teda ak to na zaciatok obmedzime na presnu celociselnu frekvenciu (jedne hodiny pre DA/AD). Pre tento pripad to pocita amplitudu presne i na 2 desatinne miesta dB i uhlu. Po ulozeni do 24bit WAVu presnost detekcie poklesne na 1 desatinne miesto v dB a +/- 2 stupne fazy. |
|
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.
|
|