29
SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA PROJEKTNA DOKUMENTACIJA IZ SLUČAJNIH PROCESA U SUSTAVIMA Fizički generator slučajnih brojeva Dario Antolović (0036453940) Nikola Luburić (0036452228) Hrvoje Prgić (0036451374) Toni Šarić (0036449145) Zagreb, siječanj 2013.

Fizicki Generator Slucajnih Brojeva

Embed Size (px)

DESCRIPTION

F RNG

Citation preview

Page 1: Fizicki Generator Slucajnih Brojeva

SVEUČILIŠTE U ZAGREBUFAKULTET ELEKTROTEHNIKE I RAČUNARSTVA

PROJEKTNA DOKUMENTACIJA IZ SLUČAJNIHPROCESA U SUSTAVIMA

Fizički generator slučajnih brojevaDario Antolović (0036453940)Nikola Luburić (0036452228)Hrvoje Prgić (0036451374)Toni Šarić (0036449145)

Zagreb, siječanj 2013.

Page 2: Fizicki Generator Slucajnih Brojeva

Sadržaj

1. Uvod 11.1. Programski generatori slučajnih brojeva . . . . . . . . . . . . . . . 1

1.1.1. LCG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.1.2. Fibonacci . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.1.3. Mersenneov uvijač . . . . . . . . . . . . . . . . . . . . . . 3

1.2. Fizički generatori slučajnih brojeva . . . . . . . . . . . . . . . . . 41.2.1. Termički šum . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.3. Kombinacija programskog i sklopovskog genratora . . . . . . . . . 7

2. Realizacija sustava 82.1. Generator šuma . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.1.1. Naponsko dijelilo . . . . . . . . . . . . . . . . . . . . . . . 92.1.2. Pojačalo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.2. Analogno-digitalni pretvornik . . . . . . . . . . . . . . . . . . . . 112.3. Programsko sučelje . . . . . . . . . . . . . . . . . . . . . . . . . . 112.4. Uputstva za uporabu . . . . . . . . . . . . . . . . . . . . . . . . . 122.5. Dobiveni šum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3. Testiranje i rezultati 153.1. Očekivanje i varijanca . . . . . . . . . . . . . . . . . . . . . . . . 153.2. Entropija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163.3. Autokorelacija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163.4. Hi-kvadrat (χ2) test . . . . . . . . . . . . . . . . . . . . . . . . . . 17

4. Zaključak 20

5. Literatura 21

A. Shema sklopa 22

ii

Page 3: Fizicki Generator Slucajnih Brojeva

B. Programski kod za hrand 23

C. Programski kod za hsrand 25

iii

Page 4: Fizicki Generator Slucajnih Brojeva

1. Uvod

Generator slučajnih brojeva je uređaj ili algoritam koji kao izlaz vraća statističkipotpuno nezavisne i nepredvidljive vrijednosti u obliku brojevnog niza. Postojegeneratori istinskih slučajnih brojeva i generatori pseudo-slučajnih brojeva. Raz-lika između generatora istinskih slučajnih i generatora pseudo-slučajnih brojevaje ta što se izlaz generatora pseudo-slučajnih brojeva nakon nekog vremena po-činje ponavljati, dok kod generatora istinskih slučajnih to nije slučaj. Generatorslučajnih brojeva može se realizirati sklopovski (generatori istinskih slučajnih bro-jeva), algoritmom unutar nekog programa (generator pseudo-slučajnih brojeva),te kombinacija sklopovskog i algoritma. Primjena generatora slučajnih brojeva jeu kriptografiji [7], igrama na sreću, simulacijama na računalu, te u psiho-kinezi. Uovom projektnom zadatku biti će prikazana realizacija kombinacije sklopovskoggeneratora slučajnih brojeva i algoritma, te usporedba s generatorom istinskihslučajnih brojeva i algoritma.

1.1. Programski generatori slučajnih brojeva

Zbog determinističke prirode računala, naziv za generiranje slučajnih brojeva naračunalu obično dobiva prefiks pseudo. Generator pseudoslučajnih brojeva (engl.Pseudorandom Number Generator, PRNG) je deterministički algoritam koji zadanu slučajnu vrijednost veličine k bitova, vraća brojevni niz velicine l k, kojise ponaša kao da je slučajan. Niz generiranih brojeva ovisi o početnoj vrijednostikoja se naziva sjeme (engl. seed). Jedan od prvih PRNG je izumio John Von Ne-umann koji se naziva „metoda srednjeg kvadrata“ (engl. middle square method).Iako je ovaj generator lagan za implementirat davao je loše rezultate. Kasnijeje razvijen LCG generator o kojemu će biti više riječi u nastavku. Generatorislučajnih brojeva našli su veliku primjenu u raznim aplikacijama od kojih su neke:

– Monte – Carlo simulacija,

1

Page 5: Fizicki Generator Slucajnih Brojeva

– kriptografija,

– kockarski aparati,

– statistička mjerenja,...

1.1.1. LCG

Jedan od jednostavnijih algoritama za generiranje pseudoslučajnih brojeva kojizadovoljava dane zahtjeve predložen je od strane D. H. Lehmera 50-tih godinaprošlog stoljeća. Algoritam spada u klasu multiplikativnih linearnih kongruent-nih algoritama (engl. linear congruential generator, LCG) [3] koji su odlikovanijednostavnom implementacijom. Niz slučajnih brojeva Xn dobiva se rekurzivnomrelacijom 1.1.

Xn+1 = (aXn + b)mod(m) (1.1)

LCG zahtjeva odabir četiri broja, gdje je Xn početni broj, a množitelj, b pomak immodul.Prvi broj u nizu se može proizvoljno odabrati iz intervala 1, 2, 3, ...,m−1.Kako zahtijevamo slučajne brojeve u intervalu [0, 1] dobiveni niz slučajnih brojevaXn se uobičajeno skalira dijeljenjem s modulom m, odnosno konačni rezultat jenovi niz Un definiran izrazom 1.2

Un = Xn

m. (1.2)

U ovome radu je implementiran LCG generator kojem su odabrane karakterističnevrijednosti preporučene od Park i Millera. Vrijednosti parametara su sljedeće :

a = 16807,

b = 0,

m = 231 − 1.

Bitna svojstva algoritma su slijedeća:

– zbog odabira prostog m za svaki Xn iz 1, 2, 3, ...,m − 1 generator nećekolapsirati u nulu,

– izlazne vrijednosti 0 i 1 za niz Un se ne mogu ostvariti odnosno najmanjai najveća moguća vrijednost su 1/m i 1− 1/m,

– kvaliteta generatora ovise o odabiru gore navedenih parametara.

2

Page 6: Fizicki Generator Slucajnih Brojeva

1.1.2. Fibonacci

Ovakvi generatori dobili su svoje ime zbog sličnosti formule s rekurzivnom for-mulom kojom se dobivaju brojevi Fibonaccijevog niza. Izraz za dobivanje nizabrojeva pomoću ove vrste generatora slučajnih brojeva je sljedeća:

Xn = Xn−1 ? Xn−kmod(m). (1.3)

Brojevi l i k moraju biti u odnosu l > k > 0. Modul m se odabire da budepotencija broja 2. Operator ? predstavlja bilo koju binarnu operaciju, a to možebiti zbrajanje, oduzimanje, množenje ili logička operacija XOR. Postoje tri vrsteFibonacci generatora ovisno o operaciji koje koriste, a to su:

– ALFG (engl. Additive Lagged Fibonacci Generator) koriste matematičkuoperaciju zbrajanja,

– MLFG (engl. Multiplicative Lagged Fibonacci Generator) koriste matema-tičku operaciju množenja,

– GFSR (engl. Two-tap generalised feedback shift register) koriste logičkuoperaciju XOR.

1.1.3. Mersenneov uvijač

Mersenneov uvijač (engl. Mersenne twister) je generator pseudoslučajnih bro-jeva čije ime proizlazi iz činjenice da je period navedenog generatora zapravoMersseneov broj. Temelji se na matrici linearnih ponavljanja nad konačnim bi-narnim poljem. Algoritam omogućava brzo stvaranje velike količine pseudoslu-čajnih brojeva visoke kvalitete te je dizajniran s namjerom da ispravi mane svojihprethodnika.

Algoritam Mersenneovog uvijača je uvijen generaliziran povratni posmačniregistar (engl. twisted generalised feedback shift register, TGFSR) s utjecanjem iodrazom na stanje bita. Slučajan broj generira se slijedećom rekurzivnom relaci-jom:

xk+n = xk+n ⊕ (xuk|xl

k+1)A k=0,1,2,... (1.4)

gdje su | bitovni "ili" i ⊕ bitovni "ekskluzivno ili" (XOR). xu, xl su brojevi nadkojima je upotrijebljena gornja ili donja maska bitova. Algoritam karakterizirajuslijedeće vrijednosti: w veličina riječi (broj bitova), n stupanj ponavljanja, msrednja riječ ili broj paralelnih odjeljenja 1 ≤ m ≤ n, r točka separacije riječiili broj bitova donje maske bitova 0 ≤ r ≤ w − 1, a koeficijent matrice uvijanja,

3

Page 7: Fizicki Generator Slucajnih Brojeva

b, c TGFSR(R) utjecajne maske bitova, s, t TGFSR(R) utjecajni posmaci bitova,u, l dodatni posmaci bitova. Zahtjev je da 2nw−r − 1 mora biti Mersenneov broj.Uvijena transformacija A definirana u racionalnom normalnom obliku glasi:

A = 0 Iw−1

aw−1 aw−2, ..., a0

(1.5)

gdje je Iw−1 jedinična matrica dimenzija (w− 1)× (w− 1). Racionalan normalanoblik je pogodan za iskazivanje umnoška na slijedeći način:

xA =

x 1 x0 = 0(x 1)⊕ a x0 = 1

(1.6)

kada je:x = (xu

k|xlk+1) k=0,1,2,... (1.7)

Uvijena transformacija poboljšava svojstva klasičnih GFSR-ova:

– period doseže teorijsku gornju granicu 2nw−r − 1,

– ekvidistribucijom u nn dimenzija.

Izbor karakterističnih vrijednosti je značajan i o njima ovise svojstva i kvalitetageneratora. Za ovaj rad korištena je verzija MT19937, koja je dobila ime poperiodu generatora koji iznosi 219937− 1, a ima slijedeće koeficijente:

(w, n,m, r) = (32, 624, 397, 31),

b = 9908B0DF16,

u = 11,

(s, b) = (7, 9D2C568016),

(t, c) = (15, EFC6000016),

u = 8.

Ova izvedba Mersenneovog uvijača je već ugrađena u matlab i takva je korištena.

1.2. Fizički generatori slučajnih brojeva

Fizički generator slučajnih brojeva kao slučajnu varijablu koristi neku prirodnupojavu. Prirodne pojave mogu biti [6]:

– termički šum otpornika ili diode,

– vrijeme radioaktivnog raspada elementa,

4

Page 8: Fizicki Generator Slucajnih Brojeva

– šum praska Schottky diode,

– lavinski šum diode,

– zvuk iz mikrofona, ...

Takve prirodne pojave (signal) se pojačaju pa analogno-digitalnim pretvornikomočitavaju i dalje koriste, ili se na neki drugi način prikupljanja ovisno o fizicisignala. U proizvoljno odabranim trenutcima uzima se signal čija je vrijednostslučajna i nezavisna u usporedbi s drugim signalima u proizvoljno odabranimtrenutcima. Prednost ovakvih generatora slučajnih brojeva je ta što se generi-rani brojevi ne ponavljaju nakon nekog vremena, što znači da ovakvi generatoridaju istinski slučajne brojeve. Nedostatak ovakvih generatora je brzina, uvje-tovana analogno digitalnom pretvorbom, te zahtijeva precizno pojačalo koje ćedetektirati i pojačati signal što povećava potrošnju.

1.2.1. Termički šum

U projektu se kao prirodna (fizikalna) pojava koristi termički šum otpornika. Šumje slučajna fluktuacija napona i struja u elektroničkim sklopovima. Termički šumje šum koji nastaje pod utjecajem kaotičnog gibanja naboja u vodiču i ovisi otemperaturi. Spektralna gustoća snage termičkog šuma izražena naponom danaje izrazom 1.8 [1].

du2(f) = 4kTRdf [V 2/Hz] (1.8)

gdje je:

k - Boltzmanova konstanta 1, 382× 10−23 [Ws/K],

T - apsolutna temperatura u Kelvinima [K],

R - iznos otpora otpornika [Ω],

df - širina frekvencijskog pojasa [Hz].

Prikaz termičkog šuma u ovisnosti o gore navedenim parametrima dan je na slici1.1. Sa slike 1.1, vidi se da s povećanim iznosom otpora raste i termički šum, te jeprikazan iznos termičkog šuma u ovisnosti s frekvencijom, sa grafa se lako vidi dai šum raste s većom frekvencijom (širim frekvencijskim pojasom). Termički šumima Gaussovu (normalnu) razdiobu gustoće vjerojatnosti, još se naziva i bijelišum. Spektralna gustoća snage bijelog šuma je konstantna, to se može vidjeti naslici 1.2. Osim termičkog šuma pojavljuje se i 1/f šum (slika 1.2). 1/f je šumkoji najviše dolazi do izražaja pri niskim frekvencijama (do 100 Hz), te nadvisuje

5

Page 9: Fizicki Generator Slucajnih Brojeva

Slika 1.1: Termički šum otpornika

termički šum 102 do 103 puta. Takav šum ovisi o procesima na površini vodljivogsloja otpornika, gdje struja zbog granularne strukture otpornika ”bira” različiteputove bolje vodljivosti.

Slika 1.2: Termički šum otpornika

6

Page 10: Fizicki Generator Slucajnih Brojeva

1.3. Kombinacija programskog i sklopovskog gen-ratora

Izvedba ovakvih generatora zasniva se na kombinaciji sklopovlja (engl.hardware)i algoritma. Fizički generator slučajnih brojeva, ovisno o potrebi korisnika, možegenerirati jedan ili niz slučajnih uzoraka. Takav uzorak (niz uzoraka) se proslje-đuje računalu, računalo primljeni uzorak (niz uzoraka) u odabranom program-skom paketu, pomoću odabranih algoritama, generira preostali broj slučajnihbrojeva. Prednost ovakvih generatora slučajnih brojeva je ta što za razliku odgeneratora istinskih slučajnih brojeva brže generira brojeve i u usporedbi s algo-ritmom manje je predvidljiv. Pošto se koristi algoritam za generiranje preostalihbrojeva, niz će nakon duljeg vremena postati predvidljiv, tj. neće više biti sluča-jan.

7

Page 11: Fizicki Generator Slucajnih Brojeva

2. Realizacija sustava

Pored ispitivanja i usporedbe programskih generatora pseudoslučajnih brojevacilj je bio napraviti i fizički generator (pravih) slučajnih brojeva, te ispitati nje-govu kvalitetu. Zbog jednostavnosti i nepredvidivosti, kao izvor slučajnih brojevaodabran je termički šum otpornika. Na slici 2.1 je predstavljen blokovski prikazrealiziranog sustava.

Slika 2.1: Blokovski prikaz realiziranog sustava

Sustav se u osnovi sastoji od četiri dijela:

– otporničkog naponskog dijelila – izvor šuma,

– pojačala šuma,

– analogno-digitalnog pretvornika,

– programskog sučelja.

2.1. Generator šuma

Prema prethodnom prikazu sustava (slika 2.1), generator šuma se sastoji od ot-porničkog naponskog dijelila, te pojačala. Shematski prikaz čitavog generatorašuma dan je u dodatku A slikom A.1.

8

Page 12: Fizicki Generator Slucajnih Brojeva

2.1.1. Naponsko dijelilo

Naponsko dijelilo se sastoji od 2 otpornika iznosa 10MΩ i 50kΩ. Prvenstveni raz-log izbora velikih iznosa otpora jest izraz 1.8 koji opisuje termički šum otpornika.Iz njega je jasna ovisnost razine šuma o temperaturi i iznosu otpora. Prema tome,razina šuma za ovaj izbor otpora i frekvencijski pojas od 40kHz je reda 10µV.Most je napajan istosmjernim stabiliziranim naponom od 5V. Na izlazu iz mostaje napon od 25mV sa superponiranim šumom.

2.1.2. Pojačalo

Kako je izračunata naponska razina šuma preniska za korišteni analogno-digitalnipretvornik (engl. analog to digital converter – ADC) trebamo je prvo pojačati.Korišteni ADC tolerira ulazni napon od 0,7VRMS pa je za dobivanje signala utim granicama potrebno pojačanje od reda 10000 (40dB). Pri tom iznosu poja-čanja ako bi koristili klasična pojačala s GBWP (engl. Gain–bandwidth product– umnožak pojačanja i frekvencijskog pojasa) reda par MHz imali bi jako ogra-ničen frekvencijski pojas pojačala i izlaznog šuma. Jedno rješenje je korištenjepojačala s većim GBWP, ili druga opcija, napraviti kaskadu više pojačala s ma-njim pojačanjem. U ovom slučaju korištena je kaskada dva pojačala pojačanja100. Korištena pojačala su FAN4174 rađena u CMOS [4] tehnologiji a neke odkarakteristika su:

– napon napajanja +2,5V do +5V,

– Struja napajanja 200µA,

– 3,7MHZ GBWP,

– 25nV/√Hz šum pojačala.

Pojačalo se koristi u neinvertirajućem spoju, kao na slici 2.1.Pojačanje pojačala u ovom spoju definirano je pojednostavljenim izrazom za

pojačanje 2.1 [2].A = 1 + R3

R1 +R2(2.1)

Za izbor otpornika, kao na slici 2.1., iznosa 100kΩ, 1kΩ te 10Ω ostvareno jepojačanje od 100 (20dB). Prema GBWP i odabranom pojačanju možemo odreditifrekvencijski pojas jednog pojačala, te iznosi 37kHz.

Na ulaz prvog pojačala dovodi se signal sa naponskog dijelila koje generirašum. Budući da su pojačala napajana unipolarnim napajanjem od +5V njihov

9

Page 13: Fizicki Generator Slucajnih Brojeva

Slika 2.2: Pojačalo FAN4174 u neinvertirajućem spoju

izlazni napon se kreće u rasponu od približno 0V do +5V. Prema tome, za maksi-malno iskorištenje dostupnih izlaznih naponskih razina istosmjerna komponentase podešava na 2,5V čime dobivamo maksimalnu razinu amplituda izmjeničnogsignala od ±2,5V, odnosno 5VP P . Za dovođenje pojačala u optimalno radnopodručje na ulaz se dovodi šum čija istosmjerna (engl. direct current – DC) kom-ponenta iznosi 25mV. Na izlazu iz pojačala imamo pojačanu razinu šuma od parmV. Pošto je dobiveni signal još uvijek niske razine za neku primjenu vodimo gana još jedno pojačalo. Kako taj izlazni signal ima i DC komponentu od 2,5Vdirektnim vođenjem na drugo pojačalo odmah bi otišlo u zasićenje. Zbog toga sekoristi kapacitivna veza između pojačala kojom otklanjamo istosmjernu kompo-nentu. Na izlazu iz kondenzatora ostaje nam čisti pojačani šum. Tom šumu opetdižemo istosmjernu komponentu naponskim dijelilom na 25mV kako bi pojačalodoveli u radno područje. Način spajanja prikazan je na slici 2.3.

Spoj sa slike 2.3. je u biti visoko-propusni CR filtar. Za izbor komponenti kaona slici 2.3. donja granična frekvencija iznosi oko 30Hz. Ovaj filtar nam ujednodobro dođe za otklanjanje 1/f šuma koji je prisutan na niskim frekvencijama.Signal sa izlaza se vodi na zadnji stupanj pojačala. Na zadnjem stupnju pojačaladobijemo signal čija je amplituda šuma oko ±200mV, te DC komponente od2,5V. Dobiveni izlazni signal se vodi na ADC također preko kondenzatora radiotklanjanja DC komponente, tako da na ADC-u imamo signal u rasponu od±200mV.

Prilikom izrade sklopa trebalo je uzeti u obzir i smetnje koje se javljaju izokoline. Najveću smetnju stvarala je gradska mreža na 50Hz. Javljale su se idruge smetnje na višem frekvencijama od okolnih uređaja. Pored smetnji nastalisu problemi i kod pojačala jer je se javljala parazitna kapacitivna veza između

10

Page 14: Fizicki Generator Slucajnih Brojeva

Slika 2.3: CR spoj za otklanjanje DC komponente signala

stupnjeva što je dovelo do pozitivne povratne veze te osciliranja. Iz tih razlogapojačala su izrađena na dvije različite pločice te stavljena u plastične kutije.Kutije smo omotali aluminijskom folijom te uzemljili čime smo ujedno riješiliproblem vanjskih elektromagnetskih smetnji i samo-osciliranja pojačala.

2.2. Analogno-digitalni pretvornik

Pored generiranja šuma potrebno je ispravno odraditi i akviziciju podataka. Naj-jednostavniji ali i dovoljno efikasan način akvizicije, s obzirom na dobiveni frek-vencijski spektar šuma, jest korištenje ADC-a koji je dostupan u svakom računalu,zvučnu karticu. Na izlaz iz generatora šuma spojen je 3,5mm konektor koji sedirektno spaja na mikrofonski (MIC) ulaz računala. Ovisno o modelu zvučnekartice definirana je dozvoljena tolerancija ulaznog napona, frekvencija očitava-nja, rezolucija očitavanja, te neki drugi parametri. Dozvoljeni ulazni napon sekreće reda 0,7 – 1VRMS [5]. Frekvencije očitavanja su uglavnom u području čujnihfrekvencija, 44,1kHz, 96kHz, pa i više 192kHz. Rezolucije očitavanja su tipično8, 16 i 24 bita. Parametre očitavanja moguće je programski podešavati premapotrebi.

2.3. Programsko sučelje

Za kompletiranje slučajnog generatora brojeva bilo je potrebno napraviti i nekoprogramsko sučelje koje će dohvaćati podatke s generatora šuma. U matlabu

11

Page 15: Fizicki Generator Slucajnih Brojeva

su napravljene dvije funkcije koje to rade. Prva funkcija očitava šum i njegovevrijednosti daje kao izlazni podatak, dok druga funkcija uzima jedan broj izgeneratora šuma i proslijedi ga kao sjeme u programski generator brojeva.

Očitavanje podataka iz ADC-a radi se nizom naredbi koje se inače koristeza snimanje zvuka. Prvo se naredbom audiorecorder definira objekt u kojemsu sadržane razne informacije potrebne za očitavanje signala. Ovoj funkciji sezadaju parametri poput frekvencije očitavanja, broja bita kvantiziranja, brojakanala te uređaj s kojeg se očitava. Uređaj se određuje brojem koji se možedobiti u matlabu ili ga podesimo na -1 što definira korištenje standardnog uređajaza snimanje zvuka u Windowsu. S naredbom recordblocking očitavamo signalodređeno vrijeme definirano u sekundama. Očitane podatke spremamo u matricunaredbom getaudiodata u formatu koji se zadaje funkciji, a može biti ’double’,’single’, ’int16’, ili neki drugi. Funkcija koja nam vraća matricu slučajnihbrojeva dobivenih iz generatora šuma definirana je na sljedeći način:

[ out ] = hrand( Fs, nbit, dim, type ).

Funkcija koristi prethodno navedene funkcije za dobivanje vrijednosti iz genera-tora šuma. Prilikom očitavanja uzima se malo veći broj od definiranog kako bise mogli odbaciti prvi i zadnji prikupljeni podatci.

Druga funkcija koja koristi kombinaciju programskog i fizičkog generatorabrojeva definirana je kao:

[ out ] = hsrand( Fs, nbit, dim, gen, df ).

Ovdje je korištena funkcija RandStream.create kojom možemo podesiti parame-tre poput algoritma koji generira brojeve te početnog broja na osnovu kojeg segeneriraju ostali brojevi. Očitavanje podatka s fizičkog generatora brojeva obavljase na isti način kao i prije s tima da sada odabiremo samo jednu vrijednost.

Detaljniji opis ulaznih parametara dan je u privitku uz programske kodove.

2.4. Uputstva za uporabu

Generator šuma je projektiran i izrađen na način da ima jednostavan način ru-kovanja. Cijeli sklop napajan je preko USB priključka računala s 5V, čime jeuklonjena potreba za dodatnom vanjskom opremom. Nakon uključenja kabelasklop je spreman za uporabu i na svom izlazu već generira šum. Na izlazu iz ge-neratora nalazi se kabel dovoljne dužine s 3,5mm konektorom kojeg je potrebno

12

Page 16: Fizicki Generator Slucajnih Brojeva

spojiti na ulaz zvučne kartice računala, i time smo završili sva potrebna spajanja.Na računalu se podatci mogu preuzimati s različitim aplikacijama. Trenutno zapotrebe testiranja koristi se matlab. Za matlab su napravaljene spomenute funk-cije za dohvat podataka. Prije početka rada dobro je pogledati pojačanje ulazazvučne kartice u upravljačkom prozoru Windowsa, i podesiti ga na dovoljnu ra-zinu pri kojoj signal neće otići u zasićenje.

Matlab funkcije se pozivaju kao i sve druge funkcije, s tim da svi parametrimoraju biti uneseni. Detaljniji opis ulaznih parametara dan je u privitku uzprogramske kodove.

2.5. Dobiveni šum

Na slici 2.4 prikazan je dobiveni šum i njegov frekvencijski spektar.

Slika 2.4: Prikaz dobivenog šuma i njegovog frekvencijskog spektra

Iz frekvencijskog spektra dobivenog šuma uočljiva je veza sa svojstvima ide-alnog šuma, tj. konstantan iznos spektra na svim frekvencijama. Zbog nesavr-

13

Page 17: Fizicki Generator Slucajnih Brojeva

šenosti dobiveni spektar, naravno, nije idealan, već s porastom frekvencije am-plituda opada. Razlog padanja amplitude spektra s frekvencijom jest ograničenafrekvencijska karakteristika pojačala. Pri nultim frekvencijama uočljivo je znatnogušenje amplitude što izaziva kondenzator na izlazu iz pojačala. Na slici 2.5 pri-kazan je histogram dobivenog šuma.

Slika 2.5: Histogram šuma

Iz dobivenog histograma uočljiva je Gaussova distribucija, inače karakteris-tična za bijeli šum. Pojava većeg broja uzoraka na rubovima distribucije je zbogodlaska ADC-a u zasićenje. Trebalo bi smanjiti ulazno pojačanje ADC-a na ra-čunalu.

14

Page 18: Fizicki Generator Slucajnih Brojeva

3. Testiranje i rezultati

3.1. Očekivanje i varijanca

U teoriji vjerojatnosti očekivana vrijednost ili očekivanje slučajne varijable jetežinska aritmetička sredina svih ishoda slučajne varijable i računa se premaizrazu 3.1

E[X] =∫ ∞−∞

xfX(x)dx. (3.1)

Varijanca slučajne varijable je mjera raspršenja njenih vrijednosti od matematič-kog očekivanja. Preciznije, varijanca od X je srednje kvadratno odstupanje X odE[X]:

V ar[X] = E[(x− E[X])2] =∫ ∞−∞

(x− µ)2dx. (3.2)

Standardna devijacija od X je drugi korijen varijance:

σ(x) =√V ar[X]. (3.3)

Standardnom devijacijom se raspršenje izražava u istim fizikalnim jedinicama ukojima se izražavaju vrijednosti od X. U idealnom slučaju generator slučajnihbrojeva trebao bi imati uniformu razdiobu. Gustoća vjerojetnosti uniformne raz-diobe definirana je izrazom 3.4.

f(x) =

1

b−aa ≤ x ≤ b

0 x < a , i x > b(3.4)

Pošto je interval našeg interesa [0,1], teorijske vrijednosti očekivanja i varijanceidealnog generatora uniformno distribuiranih brojeva na tom intervalu su:

µ = 12 = 0, 5, (3.5)

teσ2 = 1

12 ≈ 0, 08333. (3.6)

Očekivanja i varijance za četiri navedena generatora su prikazani u slijedećojtablici:

15

Page 19: Fizicki Generator Slucajnih Brojeva

Tablica 3.1: Rezultazti očekivanja i varijance

Fibonacci LCG Mersenneov uvijač Fizički generatorOčekivanje 0,5003 0,4995 0,4996 0,5035Varijanca 0,0835 0,0834 0,0834 0,0825

3.2. Entropija

U teoriji informacija, entropija je mjera nepredvidljivosti slučajne varijable. Naj-češće entropija označava pojam Shannonove entropije. Entropija predstavlja sred-nju vrijednost vlastitog sadržaja informacije slučajne varijable x i računa se premaformuli:

H(x) = −n∑

i=1p(xi)logbp(xi) (3.7)

gdje jeX diskretna slučajna varijabla koja poprima vrijednosti iz skupa x1, x2, xi, ..., xn,a p(xi) su vjerojatnosti pojavljivanja vrijednosti xi , 1 ≤ i ≤ n. Ako koristimologaritam s bazom 2, entropiju izržavamo u bitovima. Ako je izvor kompletnoslučajan njegova entropija bi morala biti jednaka dužini poruke jer je svaki sim-bol jednako vjerojatan. Entropija idealnog generatora slučajnih brojeva iznosiH(X) = 8[bit/byte].

Entropije za svaki od četiri generatora korištena u radu su prikazane u slije-dećoj tablici:

Tablica 3.2: Rezultati entropije

Fibonacci LCG Mersenneov uvijač Fizički generator7,9891 7,9892 7,9893 7,9875

Vidljivo je da entropije svih generatora vrlo malo odstupaju od idealne vri-jednosti.

3.3. Autokorelacija

Autokorelacija slučajnog procesa opisuje korelaciju slučajnog procesa sa samimsobom u različitim trenucima u vremenu. Autokorelacijska funkcija računa seslijedećom formulom:

RXX(t1, t2) = E[X(t1)X(t2)] =∫ ∞−∞

∫ ∞−∞

x1x2fX(t1)X(t2)(x1, x2)dx1dx2. (3.8)

16

Page 20: Fizicki Generator Slucajnih Brojeva

Obično se umjesto vremena uzima samo pomak τ = t1 − t2, tada jednažba zaračunanje autokorelacijske funkcije prelazi u sljedeći oblik :

RXX(t, τ) = E[X(t)X(τ)]. (3.9)

Grafovi izračuna autokorealcije dani su na slici 3.1.

Slika 3.1: Grafovi izračuna autokorelacije za sve generatore

U idealnom slučaju autokorelacijska matrica bi trebala biti jedinična matrica,no pošto generatori nisu idealni izvan dijagonale se nalaze elementi koji uzrokuju"grbavost" autokorelacijske plohe.

3.4. Hi-kvadrat (χ2) test

χ2 test je neparametarski test. Pomoću χ2 testa testiramo nultu hipotezu dauzorak ima određenu (teorijsku) razdiobu protiv alternativne da nema tu razdi-

17

Page 21: Fizicki Generator Slucajnih Brojeva

obu. U χ2 test se unose samo frekvencije mjernih vrijednosti. χ2 test se najćešceupotrebljava u slučajevima kad:

1. imamo frekvencije jednog uzorka pa želimo ustanoviti odstupaju li te frek-vencije od frekvencija koje očekujemo uz neku hipotezu,

2. imamo frekvencije dvaju ili više nezavisnih uzoraka te želimo ustanovitirazlikuju li se uzorci u opaženim svojstvima,

3. imamo frekvenciju dvaju zavisnih uzoraka, koji imaju dihotomna svojstva,te želimo ustanoviti razlikuju li se uzorci u mjernim svojstvima.

Općenito, pretpostavimo da jedan ishod može pasti u jedan od k razreda. Ana-lizira se n ishoda te je ps vjerojatnost da ishod pada u razred s, a Ys stvarnavrijednost ishoda koji su ušli u razred s. Na temelju slijedećih pretpostavki defi-niramo statističku vrijednost V na slijedeći način:

V =k∑

s=1

(Ys − nps)2

nps

(3.10)

Statistička vrijednost V uspoređuje se s onim danim u tablici u kojoj se nalazevrijednosti χ2 distribucije. Uz k razreda bitno je navesti da je stupanj slobodeν = k − 1. Tablični rezultat x u redu ν pod stupcem p označava izraz 3.11.

P (V < x) = p (3.11)

Vrijednosti χ2 distribucije isključivo ovise o stupnju slobode, a ne o broju ishoda injihovoj vjerojatnosti. U stvarnosti, tablične vrijednosti χ2 distribucije približnesu vrijednostima koje vrijede uz veliki broj ishoda n. U slučaju testiranja uni-formnosti poželjno je da vrijednosti V padaju u kategoriju između p = 5% ip = 100%, ako vrijednosti padaju između vrijednosti p = 0− 5% počinjemo sum-njati u njihovu slučajnost. Analiza je izvršena nad nizom od n = 1000 slučajnihbrojeva za 3 navedena programska generatora i za generator dobiven mjerenjemšuma, smještenih u k = 31 razred. Granične vrijednosti rezultata V dane sutablicom 3.3.

Tablica 3.3: Granične vrijednosti za V

p[%] 1 5 25 50 75 95 99ν 14,95 18,49 24,48 29,34 34,8 43,77 50,89

χ2 test proveden za navedene generatore je izvršen za deset slučaja gdje se za

18

Page 22: Fizicki Generator Slucajnih Brojeva

svaki slučaj koristio drugačiji broj za pobudu generatora pseudoslučajnih brojevai drugi niz izmjerenih vrijednosti šuma za fizički generator od prethodnih. Kori-šten je već implementirani χ2 test u matlabu. Ovim testom dobivamo slijedećerezultate:

Tablica 3.4: Rezultati za Fibonaccia

χ2 1,2 81,63 73,91 95,53 37,56 31,65 99,43 36,61 74,98r 1 0 0 0 0 0 0 0 0

Tablica 3.5: Rezultati za LCG

χ2 43,76 21,65 85,58 74,66 84,45 28,16 1,1 93,6 65,15 34,59r 0 0 0 0 0 0 1 0 0 0

Tablica 3.6: Rezultati za Mersenneov uvijač

χ2 93,68 71,16 36,9 98,91 95,33 5,11 15,22 76,14 90,69 62,.1r 0 0 0 0 0 0 0 0 0 0

Tablica 3.7: Rezultati za Fizički generator

χ2 25,47 66,88 36,69 58,85 75,36 23,47 74,13 56,13 63,35 0,62r 0 0 0 0 0 0 0 0 0 1

gdje vrijednosti r označavaju da je test prošao (r = 0) ili nije prošao(r = 1).Vidljivo je da test u većini slučajeva prolaze svi generatori. No za broj uzorakakoji je za red veličine veći od 1000 fizički random generator ne prolazi test štogovori da postoje odstupanja od uniformne razdiobe.

Tablica 3.8: Rezultati za fizički generator (10000 uzoraka)

χ2 0,15 0,6 0 0,31 0 0 0 0 0 0r 1 1 1 1 1 1 1 1 1 1

19

Page 23: Fizicki Generator Slucajnih Brojeva

4. Zaključak

Pseudoslučajni generatori su prema testovima bolji od istinskog generatora slu-čajnih brojeva (korištenog u radu), no on nije značajno lošiji. Očekivano testovenajbolje prolazi Mersenneov uvijač. Prednost ovoga istinskog generatora nas-pram programskih je svakako ta što se nakon velikog broja uzoraka ne događaperiodično ponavljanje uzoraka. Također, pošto su pseudoslučajni generatoriodređeni algoritmom, neki nizovi sastavljeni od nekoliko različitih brojeva nećese nikada generirati što teoretski može izazvati probleme u nekim primjenama,što nije slučaj kod istinskog generatora gdje je vjerojatnost da se dogodi veći nizjednakih brojeva vrlo mala, ali je ipak postojana. Istinski generator ne prolaziχ2 test za vrlo velike uzorke što nam govori da njegova distribucija nije jednakaGaussovoj. Iz histograma uniformne distribucije, dobivenog uz pretpostavku daje distribucija šuma čisto Gaussova, vidljivo je da se pojavljuje više vrijednostioko nule što govori da postoji nešto više negativnih vrijednosti šuma. Ova pojavaje rezultat nesavršenosti sklopa.

U skolopovskom dijelu postoji dosta prostora za doradu, od primjene boljihpojačala, boljeg izvora napajanja, dodatnog otklanjanja smetnji, te bržih ADC-a. Međutim usprkos tome, i trenutna izvedba je dovoljno dobra za primjenugledajući sa strane kvalitete slučajnih brojeva ali i praktičnosti.

20

Page 24: Fizicki Generator Slucajnih Brojeva

5. Literatura

[1] Ante Šantić. Elektronička instrumentacija. Udžbenici Sveučilišta u Zagrebu =Manualia Universitatis studiorum Zagrabiensis / Sveučilišna Naklada Liber.Školska knjiga„ Zagreb :, 3. dop. izd. izdanju, 1993.

[2] dr. sc. V Bilas dr. sc. T Marjanović, dr. sc. D. Vasić. Laboratorijske vježbe izelektroničke instrumentacije, 2012.

[3] dr. sc. T. Petković. Laboratorijska vježba 1., slučajni procesi u sustavima,2009.

[4] Inc Fairchild Semiconductor International. Fan4174 datasheet, 2008. URLhttp://www.fairchildsemi.com/ds/FA/FAN4274.pdf.

[5] Inc VIA Technologies. Vt1708b datasheet, 2009.

[6] Wikipedia. Hardware random number generator, 2012. URL http://en.

wikipedia.org/wiki/Hardware_random_number_generator.

[7] Wikipedia. Cryptographically secure pseudorandom number generator,2012. URL http://en.wikipedia.org/wiki/Cryptographically_secure_

pseudorandom_number_generator.

21

Page 25: Fizicki Generator Slucajnih Brojeva

Dodatak AShema sklopa

Slika A.1: Shema generatora šuma

22

Page 26: Fizicki Generator Slucajnih Brojeva

Dodatak BProgramski kod za hrand

function [ out ] = hrand ( Fs , nbit , dim , type )%HRAND funk c i j a ko ja vraća hardware−s k i gener i ran n i z b ro j e va

%[ OUT ] = HRAND( FS , NBIT, DIM, TYPE ) vraca matricu%s l u c a j n i h b ro j e va gener i ran ih hardwareskim generatorom .%Parametar FS d e f i n i r a f r e k v n e c i j u o t i p kavan ja u Hz , a t i p i č n e%v r i j e d n o s t i s u : 8000 , 11025 , 22050 , 44100 , 96000 i l i 192000.%NBIT d e f i n i r a r e z o l u c i j u uzorkovanja i može b i t i : 8 , 16 i l i 24

%b i t a .%Vektorom DIM određujemo dimenz i j e i z l a z n e matrice out%s l u č a j n i h b ro j e va .%pr imjer : [15 1000] vraća matricu dimanzi ja 15x1000 .%%S parametrom TYPE određujemo t i p podatka ko j e nam%genera tor vraća , a mogu b i t i :%’ double ’ , ’ s i n g l e ’ , ’ int16 ’ , ’ int8 ’ , i l i ’ uint8 ’ .%%primjer poz i va :%% b = hrand (44100 , 16 , [3 6 ] , ’ int8 ’ )%%b =%% 13 −18 −11 2 13 12% 76 60 62 68 36 26% −32 −12 4 −18 −9 30

23

Page 27: Fizicki Generator Slucajnih Brojeva

sec = 1/Fs ∗ dim (2) + 0 . 0 0 2 ;

for i = 1 : dim (1)

r = aud io r eco rde r (Fs , nbit , 1 , −1);r e co rdb l o ck ing ( r , sec ) ;x = getaudiodata ( r , type ) ;

out ( i , : ) = wkeep (x , dim (2 ) , ’ c ’ ) ;

end

end

24

Page 28: Fizicki Generator Slucajnih Brojeva

Dodatak CProgramski kod za hsrand

function [ out ] = hsrand ( Fs , nbit , dim , gen , df )%HSRAND pseudo s l u ča j kn i genera tor b ro j e va u komb inac i j i s f i z i č k im%[ OUT ] = HSRAND( FS , NBIT, DIM, GEN, DF ) vraca matricu

%pseudo s l u ca jn i h b ro j e va gener i ran ih programski uz poče tn i%parametar i z g ene r i r an f i z i č k im generatorom .%Parametar FS d e f i n i r a f r e k v n e c i j u o t i p kavan ja u Hz , a t i p i č n e%v r i j e d n o s t i su : 8000 , 11025 , 22050 , 44100 , 96000 i l i 192000.%NBIT d e f i n i r a r e z o l u c i j u uzorkovanja i može b i t i : 8 , 16 i l i%24 b i t a .%Vektorom DIM određujemo dimenz i j e i z l a z n e matrice%out s l u č a j n i h b ro j e va .%pr imjer : [15 1000] vraća matricu dimanzi ja 15x1000 .%%S parametrom GEN određujemo t i p a l gor i tma k o j i g ener i ra%pseudos luča jne bro jeve , a može b i t i : ’mt19937ar ’ , ’mcg16807 ’ ,%’mlfg6331_64 ’ , ’mrg32k3a ’ , ’mrg32k3a ’ , ’ shr3cong ’ i l i ’ swb2712 ’ .%DF d e f i n i r a f un k c i j u d i s t r i b u c i j e a može b i t i Gaussova ( ’ g ’ )%i l i j e d no l i k a ( ’ u ’ ) .%pr imjer poz i va :%% b = hsrand (44100 , 16 , [3 6 ] , ’mrg32k3a ’ , ’ u ’ )%%b =%% 0.4095 0.7343 0.6890 0.1800 0.6696 0.4842% 0.7120 0.5524 0.9752 0.1225 0.4953 0.1776

25

Page 29: Fizicki Generator Slucajnih Brojeva

% 0.5330 0.7300 0.9755 0.3250 0.6300 0.5603

for i = 1 : dim (1)

r = aud io r eco rde r (Fs , nbit , 1 , −1);r e co rdb l o ck ing ( r , 0 . 0 0 2 ) ;x = getaudiodata ( r , ’ i n t16 ’ ) ;x = wkeep (x , 1 , ’ c ’ ) ;x = abs ( x ) ;s = RandStream . c r e a t e ( gen , ’ Seed ’ , x ) ;

i f df == ’u ’out ( i , : ) = rand ( s , 1 , dim ( 2 ) ) ;

e l s e i f df == ’ g ’out ( i , : ) = randn( s , 1 , dim ( 2 ) ) ;

end

end

end

26