Zajok és fluktuációk fizikai rendszerekben Véletlenszám-generálás Digitális zajgenerátorok 2009. november 11.
Véletlen jelek előállítása számítógépen Cél: véletlen számsorozat létrehozása egyenletes eloszlás az egymás utáni számok egymástól függetlenek Számítógép: determinisztikus a számítógépen végzett műveletek eredménye determinisztikus, előre megjósolható Véletlen jelek létrehozása Külső zajforrás zajok digitalizálása felhasználó beavatkozása lassú, nem feltétlenül megbízható Algoritmusok → véletlennek tűnő számsorozatok (pszeudóvéletlen számsorok)
Véletlenszám-generátorok tulajdonságai Determinisztikusak reprodukálható az adatsor nem véletlen jel korrelációk nem megfelelő eloszlás (számpárok, hármasok... ) A jövőbeli értékek megjósolhatók ... Véges a generátor belső állapotainak a száma → a generált adatsor egy idő után ismétlődik: periódushossz periódushossz >> felhasznált véletlenszámok ( periódushossz >> (felhasznált véletlenszámok)2 ) 232 általában kevés Véletlenszám-generátorok vizsgálata (tesztek) elméleti vizsgálatok statisztikai tesztek (szimulációk)
Rácsszerkezet egymás utáni véletlen számok ábrázolása több dimenzióban
RANDU
Diehard test Kísérletek → elvárt eloszlás (OK / nem OK) Születésnapok távolsága (Poisson-eloszlás) 5 egymás utáni véletlen szám nagyság szerinti sorrendje (a lehetséges permutációk azonos valószínűségűek) Futási teszt: a növekvő és csökkenő sorozatok hossza Összegek tesztje: egymás utáni 100 szám összege ~ Gauss Parkoló teszt (nem átfedő körök véletlenszerű elhelyezése) Legkisebb távolság teszt Dobókockás játék ...
Lineáris kongruencia véletlenszám-generátorok (LCG) Helyes paraméterezés esetén gyors és megbízható 5-6 dimenzió felett jelentős rácsszerkezet M sokszor kettő hatvány gyorsabb számolás (felső bitek kidobása) a kisebb helyi értékű bitek esetén csökken a periódushossz Java M = 248, m = 25214903917, a = 11 LabVIEW 3 LCG kombinációja → 290 periódushossz
További generátorok Multiple-Recursive Generator Késleltetett Fibonacci generátorok (Lagged Fibonacci Generators) Példa Periódushossz:
Mersenne twister 1997, 松本 眞 és 西村 拓士 Cél: hosszú periódus (219937 – 1) jó dimenzionális eloszlás (623 dimenzióig 32 bit-es pontosság) Szükséges memória: 624 x 32 bit 624 értéket megfigyelve megjósolhatók a jövőbeli értékek Számos implementáció C, C++, C#, Java, Lisp, Fortran, Mathematica, MATHLAB ...
Színes zajok előállítása Analóg zajgenerátorok Zener-dióda → fehérzaj MOS-FET → 1/f-zaj szőrők → frekvenciament módosítása Digitális zajgenerátorok véletlenszám-generátor (+ normális eloszlás) → fehérzaj frekvenciamenet módosítása D/A konverzió
Spektrális transzformáció FFT segítségével Előny: tetszőleges spektrális alak Hátrány: véges adatsor
Fáziszaj-generátor Előny: 2x sebesség Hátrány: a spektrum egyenes, nem igazi zaj
Színes zajok előállítása digitális szűrőkkel Előny: tetszőleges hosszúságú adatsor Hátrányok: kötöttebb spektrális alak „bekapcsolási” tranziensek
Digitális szűrők Analóg szűrő Digitális szűrő
Elsőfokú digitális szűrő tervezése Frekvencia transzformáció: fs: Mintavételi frekvencia. Ha f → fs, akkor f’ → ∞. Átviteli függvény: ; Paraméterek: ; ; ;
1/f α alakú összetett szűrő Elsőfokú szűrők fp: logaritmikusan egyenletesen elosztva
A frekvenciamenetet torzító tényezők D/A konverzió: sin x/x Digitális szűrő frekvencia-transzformációjának hatása
A frekvenciamenetet torzító tényezők Szűrők aszimmetrikusan való elhelyezkedése a tartomány szélén
Egyszerű kompenzálás Első és utolsó szűrő amplitúdójának módosítása
Sokparaméteres illesztés Monte-Carlo alapú módszer „Jóság” függvény eltérés az ideális frekvenciamenettől megfelelő frekvenciatartomány szélessége túllövés Illesztés kiinduló állapot lépegetés véletlenszerű irányokba, kiválasztani a legjobbat véletlen lépésköz csökkentése lokális minimumok elkerülése: időnként újrakezdeni a bolyongást
Optimalizált frekvenciament Eredmény: 4 dekádon keresztül 1 %-nál kisebb hiba
1/f α zajok létrehozása 1/f 1.5 1/f 0.5
Zajgenerátor tulajdonságai
Egyszerűsített paraméterillesztés Ha csak az első és utolsó paraméter illesztjük, könnyebb kiszámolni a szűrőket → általános 1/f α-zaj genrátor
Hardveres zajgenerátor megvalósítása ADSP-2181, 16 bit, fixpontos aritmetika Mintavételi f: 300 kHz Kívánt frekvenciamenet: 4 dekád
Fixpontos aritmetika hátránya Korlátozott pontosság Ha a számolások eredménye túl kicsi: túl nagy relatív hiba Ha túl nagy: túlcsordulás (szaturáció) veszélye A pontosság korlátozza a digitális szűrők paraméterezését is: 16 bit esetén a legkisebb pólusfrekvencia: 4,86∙10-6 fs → Szűrők működési tartományának optimalizálása + skálázás
Paraméterezés ellenőrzése Numerikus szimuláció frekvenciamenet szaturáció
Végeredmény
Források DONALD ERVIN KNUTH: A számítógép-programozás művészete 2. kötet,Budapest, 1987, Műszaki Könyvkiadó L’ECUYER, P – SIMARD, R: TestU01: A C Library for empirical testing of random number generators. ACM Transactions on Mathematical Software, 33, 4, (2007), Article 22. L’ECUYER: Random Number Generation. Chapter 4 of the Handbook on Simulation, Jerry Banks Ed., Wiley, (1998), 93–137. p. DEVELOPERS RESOURCES FOR JAVA TECHNOLOGY, http://java.sun.com/ WIKIPEDIA: List of random number generators 2008 http://en.wikipedia.org/wiki/List_of_pseudorandom_number_generators MATSUMOTO, M – MATSUMOTO, T: Mersenne twister: a 623-dimensionally equidistri-buted uniform pseudo-random number generator. ACM Transactions on Modeling and Computer Simulation, vol 8 (1998) 3–30. p. HESSELMANN, NORBERT: Digitális jelfeldolgozás. Budapest, 1985, Műszaki Könyvkiadó TIETZE, U – SCHENK, C: Analóg és digitális áramkörök. Budapest, 1993, Műszaki Könyv-kiadó MINGESZ R – BARA P – GINGL Z – MAKRA P: Digital Signal Processor (DSP) based 1/fα noise generator. Fluctuation and Noise Letters , vol 4 (2004) L605–L616. p. NAGY SÁNDOR: Digitális jelprocesszor-vezérelt zajgenerátor fejlesztése. Diplomamunka (SZTE TTK). Szeged, 2002 MINGESZ RÓBERT: Az 1/f-zaj időbeli szerkezete és a zajanalízis alkalmazásai, Doktori értekezés (SZTE TTK). Szeged, 2006. ANALOG DEVICES, http://www.analog.com/