Obsah fóra hifi.slovanet.sk hifi.slovanet.sk


 
 FAQFAQ   HľadaťHľadať   Zoznam užívateľovZoznam užívateľov   Užívateľské skupinyUžívateľské skupiny   RegistráciaRegistrácia 
 NastaveniaNastavenia   Súkromné správySúkromné správy   PrihláseniePrihlásenie 
http://www.tnt-audio.com/gif/smallstereo_white.gif

Softwarová kompenzace harmonického zkreslení měřicí smyčky
Choď na stránku Predchádzajúca  1, 2, 3 ... , 13, 14, 15  Ďalšia
 
Pridať novú tému   Zaslať odpoveď    Obsah fóra hifi.slovanet.sk -> Zdroje signálu
Zobraziť predchádzajúcu tému :: Zobraziť nasledujúcu tému  
Autor Správa
miero
Hifi inventar


Založený: 08 september 2010
Príspevky: 8766
Bydlisko: Praha

PríspevokZaslal: St november 07, 2018 22:01:54    Predmet: Odpovedať s citátom

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
Zobrazit informácie o autorovi Odoslať súkromnú správu
dustin
Hifi inventar


Založený: 06 október 2006
Príspevky: 3992
Bydlisko: Plzeň

PríspevokZaslal: St november 07, 2018 23:02:07    Predmet: Odpovedať s citátom

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
Zobrazit informácie o autorovi Odoslať súkromnú správu
miero
Hifi inventar


Založený: 08 september 2010
Príspevky: 8766
Bydlisko: Praha

PríspevokZaslal: St november 07, 2018 23:16:53    Predmet: Odpovedať s citátom

jj, kludne to tak uprav :)
Návrat hore
Zobrazit informácie o autorovi Odoslať súkromnú správu
dustin
Hifi inventar


Založený: 06 október 2006
Príspevky: 3992
Bydlisko: Plzeň

PríspevokZaslal: St november 07, 2018 23:25:45    Predmet: Odpovedať s citátom

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
Zobrazit informácie o autorovi Odoslať súkromnú správu
miero
Hifi inventar


Založený: 08 september 2010
Príspevky: 8766
Bydlisko: Praha

PríspevokZaslal: St november 07, 2018 23:41:30    Predmet: Odpovedať s citátom

slusne :) ak to bude stihat pocitat i v realnom case, tak mozeme pouzit :)
Návrat hore
Zobrazit informácie o autorovi Odoslať súkromnú správu
dustin
Hifi inventar


Založený: 06 október 2006
Príspevky: 3992
Bydlisko: Plzeň

PríspevokZaslal: St november 07, 2018 23:45:46    Predmet: Odpovedať s citátom

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
Zobrazit informácie o autorovi Odoslať súkromnú správu
dustin
Hifi inventar


Založený: 06 október 2006
Príspevky: 3992
Bydlisko: Plzeň

PríspevokZaslal: St november 07, 2018 23:54:44    Predmet: Odpovedať s citátom

miero napísal:
slusne Smile ak to bude stihat pocitat i v realnom case, tak mozeme pouzit Smile


Tu interpolaci určitě zvládne počítat snadno, jsou to jednoduché lineární přepočty. Možná když bude pole X seřazené, pojede ještě rychleji. V matlabu je funkce interp1q pro seřazené pole https://stackoverflow.com/questions/31297392/in-matlab-function-interp1-does-the-order-of-the-new-positions-for-which-the-f#comment50588895_31297392 , v octave byly patche údajně dávno akceptované https://lists.gnu.org/archive/html/octave-maintainers/2008-05/msg00128.html , mně ji to nenašlo.
Návrat hore
Zobrazit informácie o autorovi Odoslať súkromnú správu
dustin
Hifi inventar


Založený: 06 október 2006
Príspevky: 3992
Bydlisko: Plzeň

PríspevokZaslal: Št november 08, 2018 00:03:22    Predmet: Odpovedať s citátom

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
Zobrazit informácie o autorovi Odoslať súkromnú správu
dustin
Hifi inventar


Založený: 06 október 2006
Príspevky: 3992
Bydlisko: Plzeň

PríspevokZaslal: Št november 08, 2018 00:27:03    Predmet: Odpovedať s citátom

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
Zobrazit informácie o autorovi Odoslať súkromnú správu
miero
Hifi inventar


Založený: 08 september 2010
Príspevky: 8766
Bydlisko: Praha

PríspevokZaslal: Št november 08, 2018 19:58:10    Predmet: Odpovedať s citátom

dustin, opravil som getHarmonics - nepocitalo presne fazu ak nfft nebol nasobok Fs
uz to ukazuje spravne i fazu toho signalu, co som generoval pre opa
naviac to trochu detekuje (podla toho ci vrati frekvenciu), ci je harmonicka peak
vid popis+kod https://github.com/miero/nonlinear-compensation/blob/3ac867b9113fe68251a512442f4dcede604729f9/octave/getHarmonics.m

EDIT: ale zda sa, ze budem musiet este prehodnotit, obcas to nejake harmonicke "zataji" neuvedenim frekvencie
Návrat hore
Zobrazit informácie o autorovi Odoslať súkromnú správu
dustin
Hifi inventar


Založený: 06 október 2006
Príspevky: 3992
Bydlisko: Plzeň

PríspevokZaslal: Št november 08, 2018 22:23:58    Predmet: Odpovedať s citátom

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
Zobrazit informácie o autorovi Odoslať súkromnú správu
miero
Hifi inventar


Založený: 08 september 2010
Príspevky: 8766
Bydlisko: Praha

PríspevokZaslal: Št november 08, 2018 23:59:09    Predmet: Odpovedať s citátom

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
Zobrazit informácie o autorovi Odoslať súkromnú správu
dustin
Hifi inventar


Založený: 06 október 2006
Príspevky: 3992
Bydlisko: Plzeň

PríspevokZaslal: Pi november 09, 2018 08:28:52    Predmet: Odpovedať s citátom

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
Zobrazit informácie o autorovi Odoslať súkromnú správu
miero
Hifi inventar


Založený: 08 september 2010
Príspevky: 8766
Bydlisko: Praha

PríspevokZaslal: Pi november 09, 2018 11:50:30    Predmet: Odpovedať s citátom

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
Zobrazit informácie o autorovi Odoslať súkromnú správu
dustin
Hifi inventar


Založený: 06 október 2006
Príspevky: 3992
Bydlisko: Plzeň

PríspevokZaslal: Pi november 09, 2018 12:24:09    Predmet: Odpovedať s citátom

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
Zobrazit informácie o autorovi Odoslať súkromnú správu
PMA
Pavel Macura


Založený: 18 január 2007
Príspevky: 19274

PríspevokZaslal: Pi november 09, 2018 12:36:49    Predmet: Odpovedať s citátom

Ale treba Arta generuje pro optimalni analyzu kmitocty na neinteger cisla, desetinna. A nejen Arta.
_________________
Dispre2-JFET preamp, CFA-ACCE3 zesilovač, CNO-T25 repro
Návrat hore
Zobrazit informácie o autorovi Odoslať súkromnú správu Zobraziť autorové WWW stránky
miero
Hifi inventar


Založený: 08 september 2010
Príspevky: 8766
Bydlisko: Praha

PríspevokZaslal: Pi november 09, 2018 12:44:55    Predmet: Odpovedať s citátom

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
Zobrazit informácie o autorovi Odoslať súkromnú správu
miero
Hifi inventar


Založený: 08 september 2010
Príspevky: 8766
Bydlisko: Praha

PríspevokZaslal: Pi november 09, 2018 12:47:31    Predmet: Odpovedať s citátom

PMA, samozrejme i to nase vie generovat cokolvek. Neskusis si to nainstalovat? :-)
Návrat hore
Zobrazit informácie o autorovi Odoslať súkromnú správu
dustin
Hifi inventar


Založený: 06 október 2006
Príspevky: 3992
Bydlisko: Plzeň

PríspevokZaslal: Pi november 09, 2018 12:55:07    Predmet: Odpovedať s citátom

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
Zobrazit informácie o autorovi Odoslať súkromnú správu
miero
Hifi inventar


Založený: 08 september 2010
Príspevky: 8766
Bydlisko: Praha

PríspevokZaslal: Pi november 09, 2018 13:01:34    Predmet: Odpovedať s citátom

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
Zobrazit informácie o autorovi Odoslať súkromnú správu
PMA
Pavel Macura


Založený: 18 január 2007
Príspevky: 19274

PríspevokZaslal: Pi november 09, 2018 13:14:51    Predmet: Odpovedať s citátom

miero napísal:
PMA, samozrejme i to nase vie generovat cokolvek. Neskusis si to nainstalovat? Smile


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.

_________________
Dispre2-JFET preamp, CFA-ACCE3 zesilovač, CNO-T25 repro
Návrat hore
Zobrazit informácie o autorovi Odoslať súkromnú správu Zobraziť autorové WWW stránky
miero
Hifi inventar


Založený: 08 september 2010
Príspevky: 8766
Bydlisko: Praha

PríspevokZaslal: Pi november 09, 2018 13:25:48    Predmet: Odpovedať s citátom

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
Zobrazit informácie o autorovi Odoslať súkromnú správu
dustin
Hifi inventar


Založený: 06 október 2006
Príspevky: 3992
Bydlisko: Plzeň

PríspevokZaslal: Pi november 09, 2018 13:38:57    Predmet: Odpovedať s citátom

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? Smile 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
Zobrazit informácie o autorovi Odoslať súkromnú správu
MaBat
Hifi inventar


Založený: 21 november 2007
Príspevky: 8790

PríspevokZaslal: Pi november 09, 2018 13:45:32    Predmet: Odpovedať s citátom

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
Zobrazit informácie o autorovi Odoslať súkromnú správu
miero
Hifi inventar


Založený: 08 september 2010
Príspevky: 8766
Bydlisko: Praha

PríspevokZaslal: Pi november 09, 2018 13:51:08    Predmet: Odpovedať s citátom

Aha, nejak som si to doplietol - dakujem za vysvetlenie! :-)
Návrat hore
Zobrazit informácie o autorovi Odoslať súkromnú správu
MaBat
Hifi inventar


Založený: 21 november 2007
Príspevky: 8790

PríspevokZaslal: Pi november 09, 2018 13:52:48    Predmet: Odpovedať s citátom

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 Smile Takže 1125 Hz je při takovém nastavení po všech stránkách "bezpečných"...
Návrat hore
Zobrazit informácie o autorovi Odoslať súkromnú správu
miero
Hifi inventar


Založený: 08 september 2010
Príspevky: 8766
Bydlisko: Praha

PríspevokZaslal: Pi november 09, 2018 14:11:28    Predmet: Odpovedať s citátom

potvrdzujem ... a plati to i pre 1500Hz = 4 * 375Hz ... s obdlznikovym oknom
Návrat hore
Zobrazit informácie o autorovi Odoslať súkromnú správu
MaBat
Hifi inventar


Založený: 21 november 2007
Príspevky: 8790

PríspevokZaslal: Pi november 09, 2018 14:14:01    Predmet: Odpovedať s citátom

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
Zobrazit informácie o autorovi Odoslať súkromnú správu
dustin
Hifi inventar


Založený: 06 október 2006
Príspevky: 3992
Bydlisko: Plzeň

PríspevokZaslal: Pi november 09, 2018 16:38:52    Predmet: Odpovedať s citátom

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
Zobrazit informácie o autorovi Odoslať súkromnú správu
miero
Hifi inventar


Založený: 08 september 2010
Príspevky: 8766
Bydlisko: Praha

PríspevokZaslal: Pi november 09, 2018 17:21:01    Predmet: Odpovedať s citátom

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
Zobrazit informácie o autorovi Odoslať súkromnú správu
Zobraziť príspevky z predchádzajúcich:   
Pridať novú tému   Zaslať odpoveď    Obsah fóra hifi.slovanet.sk -> Zdroje signálu Časy uvádzané v GMT + 1 hodina
Choď na stránku Predchádzajúca  1, 2, 3 ... , 13, 14, 15  Ďalšia
Strana 14 z 15

 
Prejdi na:  
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.


Powered by phpBB © 2001, 2005 phpBB Group
Slovenský preklad phpBB Slovak - www.pcforum.sk
TOPlist