Thread Rating:
  • 1 Vote(s) - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Analogni signal generator za audio primene - Idemo dalje/više/bolje
#41
Vladd  je potpuno u pravu oko metode.

Tu istovremeno jako dolazi do izražaja ideja koju je pomenuo Miki.

Merenje izobličenja je merenje razlike između izvornog signala i onog što je prošlo kroz DUT, pri čemu se normalizuju veličine REFF i DUT.

Ključni problemi merenja THD počivaju na tome što DUT ima pojačanje i faznu grešku.

Problem pojačanja se lako rešava pasivnim atenuatorom iza DUT, ali problem faznog kašnjenja je prava "koska" u analognom merenju THD.
Potreban je pomerač faze na izlazu iz generatora mernog signala, ali takav da ne unosi izobličenja u odnosu na sam gen. izlaz. Takav se može napraviti tek pod uslovom da je signal iz generatora savršeno čist sinus bez jitter-a.

To je u stvari jedini i pravi razlog zahteva za perfektnim sinusom i važi samo za jednu frekvenciju tog sinusa, gd je pomerač faze na njoj podešen.

Kod digitalne koncepcije koju Miki predlaže, pod uslovom da se napravi vremeski tiker sa ekstremno malim jitter-om, i da takav posluži kao vremenska baza sa serviranje podataka nekom pristojnom paru D/A konvertora, može se izgenerisati par identičnih signala sa podesivim faznim kašnjenjem.

To rešava ključni problem merenja THD nekog audio ampa.

Dakle, sistem sa dva DAC, gde se taktovano isti podaci šalju na oba, samo sa vremenskim kašnjenjem.
Prvi DAC bi bio izvor signala za DUT, drugi DAC izvor fazno zakasnele reference, čije fazno kašnjenje treba da bude jednako onom koje ima DUT.

Striktno pisanje koda, na način da uvek isti broj instrukcija CPU stoji između paketa za DAC1 i DAC1 i da takt ima ekstremno mali jitter, što i nije toliko teško izvesti sa modernim MCU.
Potpuno jednaki filtri sa istim karakterom opterećenja na oba DAC.

Atenuator iza DUT i dalje pasivni, ako treba i HF kompenzovan za stvari van audio opsega (primer sonde osciloskopa) i onda izlaz iz DUT atenuatora i fazno zakasnele reference u jedan prvoklasan diferencijalni pojačavač.

Ono što izađe iz diferencijalnog pojačavača je mera svih vidova izobličenja i po amplitudi i po vremenu i neće biti važan apsolutni  talasni oblik koji je plasiran iz oba DAC.

Štaviše, nudi novu mogućnost testiranja THD DUT: sa "mekim" i "strmim" signalima, što naravno ni malo nije isto.
"Laki"  signali, poput sinusa i trougla, su manji zalogaj za DUT, dok su talasni oblici sa strmijim ivicama već ozbiljan zahtev.

Terazije su savršena metoda, samo treba ispravno postaviti stanje na oba tasa.

Metoda bi izgledala na primer ovako (blok šema) i mislim da je uopšte nije teško ostvariti sa modernim MCU:



.pdf   THD.pdf (Size: 6,7 KB / Downloads: 23)

P.S.

Kalibracija "nule" se da lako izvesti tako što se uklone DUT i njegov atenuator, onda se signal iz Buff1 odvede u Buff2 i fino natrimuju prvenstveno oba LPF na DAC1 i DAC 2 sve dok se na Diff. ampu ne dobije čista nula kojom smo zadovoljni.
Onda se umetne DUT i njegov atenuator na svoje mesto i vozi Miško.
Reply
#42
Prednost ovakvog načina bi bila u tome što se jednim svipom frekvencije ulaznog signala može napraviti složen dijagram izobličenja, bez potrebe za iterativnim podešavanjem faznog kašnjenja kao kod analogne sprave.

Data tabela, umesto obrasca, ima prednost što uvek konzumira potpuno isti broj instrukcija za jedan element.

Praktično treba uložiti trud u sasvim konstantno kašjenje za DAC2.
Reply
#43
Samo si me lakse opredelio za lokin amplifajer Smile
Reply
#44
Quote:Problem pojačanja se lako rešava pasivnim atenuatorom iza DUT, ali problem faznog kašnjenja je prava "koska" u analognom merenju THD.
Potreban je pomerač faze na izlazu iz generatora mernog signala, ali takav da ne unosi izobličenja u odnosu na sam gen. izlaz. Takav se može napraviti tek pod uslovom da je signal iz generatora savršeno čist sinus bez jitter-a.

To je u stvari jedini i pravi razlog zahteva za perfektnim sinusom i važi samo za jednu frekvenciju tog sinusa, gd je pomerač faze na njoj podešen.

Kod digitalne koncepcije koju Miki predlaže, pod uslovom da se napravi vremeski tiker sa ekstremno malim jitter-om, i da takav posluži kao vremenska baza sa serviranje podataka nekom pristojnom paru D/A konvertora, može se izgenerisati par identičnih signala sa podesivim faznim kašnjenjem.

Dobra ideja za digitalnu realizaciju poznatog analognog metoda sa oduzimanjem osnovnog pobudnog signala.

Mogla bi da se uradi simulacija metoda koristeći zvučnu karticu i diferencijajni pojačavač. Jednostavno, generiše se pogodnim programom (kod mene je to Matlab) stereo signal u kome je jedan kanal fazno pomeren u odnosu na drugi.
Faznu karakteristliku testiranog sklopa mogu da dobijem iz njegove prenosne funkcije, a nju dobijam tako što ga pobudim belim šumom, a potom snimljene signale pobude i odziva obradim na odgovarajkući način.

Inače, i analogno rešenje ima dobre mogućnosti. Na primer, B. Cordell je u "Linear Audio" (prva sveska) objavio šemu pod naslovom "Distortion Magnifier", koja omogućava da se kod merenja THD ide do ispod -140dB. Naravno, nula (oduzimanje) i faza (kašnjenje pobude) se podešavaju sa dva potenciometra, a Cordell tvrdi da je to u praksi jednostavna operacija.
Doduše, nikako da to isprobamo, iako jedan član foruma (šapnuila mi jedna ptičica Big Grin ) ima taj Cordellov-kit, ali još uvek nesastavljen.

Od nedavno postoji i jedan besplatan program koji implementira metod oduzimanja. Zove se DiAna, i prvi put sam na njega naleteo pre nekoliko godina, ali tada nije bio potpuno završen.
Prošle godine je autor doveo do kraja tzv. demo verziju, koja ima još par sitnijih problema, ali je potpuno upotrebljiva. Pisao sam već o tome, a evo i linka:
https://www.diyaudio.com/forums/equipmen...lyzer.html

Program meri frekvenciju pobude, uzima 100 uzoraka signala, računa iz toga idealni sinus i oduzima ga od merenog signala, a zatim iz reziduuma računa harmonike. Sinus i reziduum se prikazuju na posebnom dijagramu, pa ako u reziduumu ima i ostataka osnovne frekvencije, to ukazuje na fazno izobličenje pobudnog oscilatora.
Za razliku od klasične spektralne analize, gde moram da snimim i do deset minuta signala, DiAna mi daje spektar harmonika za manje od minuta.
Jedino što mi nedostaje je podrška za eliminacioni (notch) filter koju je autor planirao za profesionalnu verziju, ali ga je oko Božića uhvatio akutni "software blues", pa se još uvek odmara. Mediteranska duša, šta možemo.

Pozdrav
Reply
#45
Fazni pomeraj treba implementirati na izlazu DUT, umanjen, adaptiran i prilagodjen naponski i fazno, da bi se upodobio sa ulaznim signalom radi poredjenja, ili ga plasirati na ulaz ampa koji se testira zarad dobijaja signala na izlazu koji je u fazi sa generatorom.

Sto uvecava greske merenja, povecava broj komponenti za amatersku radionicu, pomalo obesmisljava preciznost, zahteva vise ozbiljno preciznih lokacija, sa cim amater mora malo ozbiljnije da se pozabavi. Da izadje iz vode amatera..Smile
Jedna zanimljiva aplikacija za probu.
https://pdfserv.maximintegrated.com/en/an/AN184.pdf
Reply
#46
RE >>> THD.pdf (Size: 6,7 KB / Downloads: 15)

Ovo moze mnogo lepo i prosto bar sto se MCU i DAC tice da se napravi sa ESP8266, on ima I2S interfejs i DMA + 1MB flash u koji moze naravno da stane perfektno definisan sinus sa 32bit (znam treba 24bit ali ne moze manje, 32bit je MCU Smile + SI5351 i to vam je kompletna digitalija, znaci to sve staje na prostor manje od kutije sibica i kosta kao pakovanje Orbit zvaka Smile

Posle DAC-ova treba malo detaljnije razraditi analogni deo i vratiti "izmeren" THD na A/D i takva spravica je vec stand-alone THD-analizer koji staje u dzep i radi preko WiFi na baterije Smile

Cak ako se malo potrudimo jer je ESP8266 Cortex-M4 jezgro, moze da se radi sintetisanje sinusa jer imamo HW Floating Point i tako da racunamo kako hocemo potrebne tacke za generisanje na DAC-u umesto da imamo ogromnu tablicu u kojoj su pre-izracunate vrednosti sinusa.
To su sad neki programsko/tehnicki detalji koji mogu na razne nacine da se rese, generalno to nije problem.

Bitno je da imamo stabilan TCXO iz kojeg ce se generisati sve potrebne frekvencije, za WiFi mora da bude stabilna dok su MCU i DAC sinhronizovani sa tim master clock tako da se sve lepo "slozi", sve je sinhonizovano, nema potrebe da se radi re-clocing ili buffering za DAC, to je glavna stvar koja u startu treba da se ispostuje a ovo ostalo se sve nadograduje na to.
Reply
#47
Ja sam raspolozen da nacrtam PCB za ovo, ali samo da se u startu "dogovorimo", ja sam samo za vraijantu da se uradi u SMD sa 4-slojnom stampom, ako vam to odgovara mozemo da odradimo Smile
To znate sta sve povlaci i koje procedure oko PCB, mocice masinski i mozda rucno da se izlemi ali PCB mora da se uradi profi.
Reply
#48
Izuzetno će me radovati da vidim prototip instrumenta na ovom principu.

Jedno pitanje: koliko vidim, ESP8266 nema DAC - biće, znači, potrebna dva eksterna?

Pozdrav
Reply
#49
Možda bolje neki STM32 nucleo. Ili ESP32. Svejedno, šta god da izaberete javljam se za softver.
Reply
#50
Hajde da razmotrimo situaciju od I2S nadalje, koji ce kontroler da konkretno bude to ce da odlucimo kasnije, to nije problem ...
Reply
#51
(03-04-2019, 05:33 PM)mikikg Wrote: Hajde da razmotrimo situaciju od I2S nadalje, koji ce kontroler da konkretno bude to ce da odlucimo kasnije, to nije problem ...

Kao što je Macola napisao, moraš da imaš pristojan DAC - pošto se radi o dva kanala, to bio neki od poznatih stereo čipova sa rezolucijom od 24 bita i taktom od bar 96kHz (za početak, odn. prototip, nešto kao Nebojšina pločica za RaspiPi).

Pored toga, moraće tu da bude i neke analogne elektronike jer u idealnom slučaju mora da se pokrije opseg amplituda od 1mV (RIAA MC preamp) pa do, recimo, 5Vrms.
Signale vrlo niskog nivoa ne treba direktno generisati DAC-om, već ići na viši nivo, a zatim u atenuator. Zavisno od željene izlazne impedanse, možda će biti potreban i neki jači bafer pre atenuatora.

Moguće je da će biti potrebna analogna elektronika iza dif. pojačavača da bi A/D konverzija mogla da se obavi u optimalnoj tački konvertora.

Ovo bi bila neka moja razmišljanja, zasnovana na iskustvu s analognim mernim sistemima.

Pozdrav
Reply
#52
Situacija je krajnje jednostavna.
Treba dobiti uravnoteženost sistema da mi merenje bilo uredno.

MCU sa dva DA konvertora koja imaju pristojnu rezoluciju. Na primer STM32F4xx pa na više (2x DAC, svaki 12bit).

Nema potrebe za posebno visokom rezolucijom i nekim posebno niskim THD mernog signala.
Čak ne mora uopšte biti ni pravilan sinus.

Ceo princip počiva na identičnosti dva signala koji se na kraju oduzimaju i pojačava se samo njihova razlika.

Dakle,
- prva osnova za ostizanje dobre simetrije je da bude vrlo precizan broj instrukcija upotrebljen za obradu, što se dobija najjednostavnijim čitanjem tabele (koju oni koje mrzi dugotrajno kucanje mogu nafilovati pomoću obrasca, pa memorisati).
- MCU postskaliran pomoću nekog od tajmer modula, taktuje tabelu i ispucava je ka DAC1, ono što je ispucano u DAC1 smesta se u privremenu buffer varijablu koja se trigeruje posle određenog ali vrlo ponovljivog broja taktova MCU i to se ispucava u DAC2
- DAC1 i DAC2 dobijaju potpuno isti sadržaj, s' tim što drugi kasni precizno vreme za prvim. Dakle, od tačke do tačke je potpuno kopiran sadržaj tabele na oba DAC, samo fazno smaknut za određen broj taktova.
- oba DAC su u istom čipu i pretpostavljamo da su sasvim identični i pod istim temperaturnim uslovima i pod istim Vreff. To jako obećava i identičnost talasnih oblika iz oba.
- na izlazima DAC stavimo dva niskopropusna RC filtra (dovoljno je da budu jednostepeni, a koga ne mrzi da ih fino namesta, onda mogu i dvostepeni). Te filtre treba dovesti na identične karakteristike, što obećava da će, pod uslovom da im se plasiraju identični signali na ulaz (što već imamo iz DAC1 i DAC2), biti identični signali i na izlazima filtra, samo fazno smaknuti po želji korisnika..

Kontrola MCU i DAC-ova:
Aktivira se talasni oblik sa tabele.
Podesi se najmanje moguće kašnjenje za DAC2, što bi bila jedna instrukcija reda par desetina do 100nS, zavisno od MCU i izlazi oba DAC se priključe na dobar diferencijalni pojačavač, onako sirovi, bez filtra.
Ako nam je simetrija u redu na izlazu iz diff. amp će biti najmanje rezuida.
Kad povećavamo kašnjenje, rezuid će rasti srazmerno kašnjenju.

Podešavanje filtera i bafera:
Najmanje moguće kašnjenje između DAC1 i DAC2 i sada priključenje diff. amp iza filtera i sva 4 bafera sa premošćenim mestom za DUT i atenuator.
Prvo treba što je moguće bolje, uparivanjem RC na oba filtera, dobiti najmanji razuid na diff. amp.
Kada se to postigne onda se može digitalno namestiti fino smicanje oba DAC, čim ćemo elininisati i sitna kašnjenja bafera, opet na krajnje minimalan rezuid na izlazu diff. amp.

Merenje.
Pošto sad imamo dobro nulovanu spravu. Okačimo DUT sa atenuatorom i atenuator opet podesimo na najmanji rezuid na diff. ampu, potom digitalnim pomeranjem faze DAC2 još smanjimo rezuid koliko to bude moguće.
Iterativnim podešavanjem atenuatora i potom blagom korekcijom i faze, jurimo najmanji ostatak, kao na Cordell metodi.
Kada dobijemo najmanji ostatak na diff. ampu, njega merimo i to nam je sveukupni THD.

Za razliku od analogne naprave za fazno kašnjenje, amplituda nam na izlazu faznog zakašnjivača neće zavisiti od talasnog oblika i njegove frekvencije.
Signal koji ulazi u DUT i referentni signal za diferencijalni amp su identični i samo fazno pomereni i nezavisni od frekvancije i talasnog oblika.
Sve ostalo će zavisiti samo od DUT.
Dakle, ne mora biti sinus, ne mora biti kvalitetan talasni oblik sa sopstvenim niskim THD.
Može bilo šta, pod uslovom da je potpuno jednako na obe strane u svakoj tački amplitude, samo vremenski smaknuto za željeni fazni stav.

Pogledajte opet blok šemu.
Reply
#53
Preporucite neki dobar DAC za to, pristojnih karakteristika i cene, ne mopra da ima PLL/recloking u sebi ...

Ja razmisljam koliko "fore" imam izmedju dva sempla, to ja resavam, ostalo analogiju prepustam iskusnijima da predloze u obliku sheme.
Reply
#54
@Macola, pisali smo u isto vreme ...

Ok onda moze ovakav jedan 24bit 192ksps DAC poput Wolfson WM8727, to je SOIC-8 malo cipce ...

PDF za WM8727 u prilogu.


Attached Files
.pdf   mXyzqzsy.pdf (Size: 145,16 KB / Downloads: 1)
Reply
#55
Rekoh u prethodnom postu Mikac da ne mora nikakva zver od DAC.
Biće odlični interna dva 12bit DAC u STM32F4xx.

Nema nikakve potrebe ni za finim talasnim oblikom ni za njegovim niskim THD.
Samo je apsolutna simetrija važna i što bolji diff amp.
Reply
#56
Aha ..

OK, to bi bio deo vezan za "THD merač", a generator onda (kao univerzalni SG) necemo imati?
Reply
#57
To je već iz druge priče...
Reply
#58
Da li je iko ikada "miksovao" Audio opseg u RF i tamo ga obradjivao pa vracao nazad u Audio? Smile

To nije glupo pitanje uopste, to je isto kao kada rade miksovanje u medjufrekvenciji i filtriranje tamo sa specialnim kristalnim filterima jer im mnogo vise tu odgovara da rade nego na baseband!!!

Par puta sam spominjao ideju sa MF kristalnim filterima od 455kHz i 10.7MHz (mali, kostaju desetak centi iz "tranzistora") ali koju imaju opasno dobru BPF karakteristiku za svoje gabarite i cenu, šno nama MF ne bude na 455kHz i tu vrsimo akviziciju? Smile
Reply
#59
A šta ćemo sa kvantizacionim šumom: 12 bita -> SNR od -72dB?
Reply
#60
Ne znam odgovor na to pitanje, znam da uvek mogu da stavim 24bit DAC ako treba, ja drugu stvar potenciram a to je signal na izlazu iz kristalnog filtera, tamo "sta god da udje" izacice prelep sinus! Sa kojim karakteristikama o tome bih voleo da diskutujemo ...
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)