
A véletlen nyomában
Kísérletek hardveres TRNG-vel
A saját kísérleteim előzménye sok évre nyúlik vissza. Szóval olvastam egy érdekes cikket, amiben a véletlen kutatásáról volt szó.
Hardveres alapon, valódi véletlenszámokat generáltak, és ezek eloszlását figyelték meg, méghozzá a világ különböző pontjain elhelyezett
sok darab véletlen generátor adatai alapján. Nagyon nagy számosság esetén a generált számok eloszlása egyenletes,
de a folyamatosan működő rendszer esetén vannak úgynevezett kilengések, amikor az arányok ideiglenesen eltolódnak, majd később kiegyenlítődnek.
Azt figyelték meg, hogy ezek a kilengések nagyon gyakran egybeesnek jelentősebb történelmi eseményekkel.
Ezt az egyfajta globális tudat, kvantumszintű ráhatásának tartották. Van, aki szerint ez azt bizonyítja, hogy szimulált világban élünk,
mint a Mátrix című filmben (szerintem ez nem bizonyít ilyesmit).
Akkoriban ezt elkönyveltem egy sima érdekességként olvasott cikknek. Később, 2020-ban a Covid járvány kezdetekor eszembe jutott ez a cikk,
de nem csak nekem, hanem történetesen Dénes kollégámnak is. Meg is találta az akkori kutatás weblapját (már kb. 30 éve ment folyamatosan),
ami a jelen cikk írásakor, (azaz 2025-ben) még mindig működik, és a véletlen generátorok egy része a mai napig szolgáltat adatokat.
Tehát ha igaz, amit az említett cikkben írtak, akkor valószínűleg a Covid járvány-t is tekinthetjük jelentős eseménynek.
A weblap alapján úgy tűnt, hogy a véletlen generátorok kilengése valóban nagy, de ezt nem volt mihez viszonyítanom,
és egyikünk sem mélyedt el az adatok alaposabb elemzésében. Ezért ez megintcsak egy érdekességként maradt volna meg, de azért adott
egy ötletet, vagy egy kezdő lökést ahhoz, hogy egy saját hobbi projektet elkezdjek.
A tervem az volt, hogy készítek egy saját véletlen generátor elektronikát, és a kapott adatokat egy mikrovezérlővel elemezni fogom.
Megnézem, hogy tudok-e bármilyen tudati ráhatást gyakorolni a kapott eredményekre.
Azonban mielőtt ebbe jobban belemennék, kell egy apró kitérő.
Mi az a valódi véletlenszám, és van olyan is, hogy nem valódi véletlenszám?
Az igen válasz sejthető, különben minek tettem volna fel a kérdést. A legtöbb mikrovezérlő tud előállítani véletlenszámokat,
azonban ezek egy olyan matematikai függvény iterációjának eredményei, ami szinte véletlenszerűen, össze-vissza ugráló eredményeket ad.
Ráadásul ezt a (legalább mikroszekundum felbontású) rendszeridővel inicializálják, hogy ne forduljanak elő ugyanazok a szám-sorozatok.
Ezzel csak az a gond, hogy ez nem teljesen véletlenszerű, csak annak tűnő eredményeket ad. Egy Rulett játékban, vagy egy kártyajátékban, a
lapokat keverő algoritmushoz simán megfelel. De a véletlen kutatásához olyan adatok kellenek, amelyek valóban csak a véletlentől függenek,
nem matematikai úton jönnek létre, hanem valamiféle hardver állítja elő. Pl. radioaktív anyagok bomlásakor kilépő
részecskék megjelenési időpillanatát teljesen véletlenszerű, kvantum szintű folyamatnak tartják - csakhogy hobbi szinten ez nem igazán felhasználható.
A lényeg: egy ilyen kísérlet reprodukálásához valódi véletlen szám kell, amit gyakran TRNG-ként (True Random Number Generator) rövidítenek.
Hogyan lehet hobbi szinten ezt kivitelezni? Az egyik lehetőség (amit sokan használnak) az egy félvezető PN átmeneten keletkező zaj felhasználása.
Egy egyszerű tranzisztor bázis-emitter átmenetét záróirányban előfeszítjük (ennek a letörési feszültsége alacsony, általában 5...10V között van),
és az áramkört úgy állítjuk be, hogy ezen az átmeneten meglehetősen kicsi, (1...10µA közötti) áram folyjon keresztül.
Az, hogy félvezetőben mikor mely elektron ugrik át a potenciál-gáton, véletlenszerű lesz, ezért a PN átmenet feszültsége (és az átfolyó árama is)
véletlenszerűen imbolyogni fog. Ezt az imbolygó feszültséget felerősítjük. Ha meghallgatnánk ezt a jelet egy hangszórón,
akkor egyfajta sistergő hangot, úgynevezett fehérzajt hallanánk. A kapott és felerősített zajt, egy komparátorra vezetjük, és
máris véletlenszerűen 0 vagy 1 biteket kapunk.
Lentebb a megépített TRNG áramköröm kapcsolási rajza látható:
A tranzisztor által keltett fehérzajt a CMOS CD4069 integrált áramkörben levő, lineáris üzemre kényszerített kapuk erősítik fel,
majd a további kapuk végzik a komparálást is. Nem mindegyik CMOS kapu típus használható lineáris üzemben,
ill. nem mindegyik működik jól ilyen üzemmódban, de az alkalmazott 4069-es típus jól használható analóg erősítőnek is.
Az áramkör érdekessége, hogy egy diódás-kondenzátoros feszültségnövelő (feszültség-sokszorozó) áramkörrel állít elő,
az 5V-os tápfeszültségnél nagyobb feszültséget, mivel a működéshez, a tranzisztor BE átmenet letörési feszültségénél
nagyobb feszültségre van szükség. Természetesen itt még csak biteket kapunk, ebből úgy lesz konkrét szám,
hogy egy mikrovezérlő dolgozza fel a kapott adatokat. Tehát adott időközzel kiolvas egy bitet, ha ez a bit 0,
akkor egy számláló értékét csökkenti, ha ez a bit 1, akkor a számláló értékét növeli. A számláló kezdeti értéke nulla,
és ha adott idő alatt pontosan ugyanannyi nulla és egy bitet kapunk, akkor a számláló értéke továbbra is nulla lesz.
A gyakorlatban azonban, adott számú mintát vizsgálva, mindig lesz valamennyi eltérés, azaz nem ugyanannyi a nulla és az egy bitek száma.
Lesz valamekkora kilengés. Minél nagyobb mennyiségű bitet vizsgálunk annál jobban, közelíti majd a nulla és 1 bitek aránya az 50%-ot.
Tehát, bár a rajzon nem szerepel, de a TRNG-től kapott jelet egy MCU dolgozza fel, amihez csatlakozik egy kijelző
a kapott és elemzett adatok megjelenítéséhez. Ha sikerülne tudati hatást gyakorolni a TRNG működésére, akkor tapasztalt
kilengésnek kellene változnia (az akkori elgondolásom szerint). Ehhez feltételezhetően tartozik egy optimális bit mennyiség,
ahol a kilengés a legjobban kimutatható. Nagyon alacsony bitmennyiség esetén a véletlenszerű adatokat kapjuk vissza,
nagyon sok bit esetén pedig a 0/1 bitek eloszlásának 50%-os valószínűségét. Tehát valahol a nulla, és a "nagyon sok"
között lesz az egy blokkban feldolgozandó bitek száma (lesz mivel kísérletezni).
Természetesen tisztában voltam vele, hogy ennek az esélye kicsi, és alaphelyzetben szkeptikusan állok a dologhoz mindaddig,
amíg nem sikerül tudományos módon bizonyítani egy elméletet. Ez azt jelenti, hogy bármilyen kapott eredménynek ellenőrizhetőnek,
és reprodukálhatónak kell lennie, ahhoz hogy elfogadhatónak tekintsük.
Amikor a hardver elkészült, akkor nekiálltam a programot is megírni rá. A mikrovezérlőnek egy BluePill modult választottam
(STM32F103 mikroprocesszorra épül), mert relatíve olcsó, elég erős, és mert ez kéznél volt. A program arduino fejlesztő környezettel készült, és
többször is módosítottam rajta. Próbáltam variálni az egy blokkban feldolgozott bitek számát (100 - 1000000 között), és a mintavételi időközt (1µs - 100ms között).
Olyan módszerrel is kísérleteztem, ahol nem a bitek abszolút értékét dolgoztam fel, hanem azt vizsgáltam, hogy az előző bittel egyező, vagy attól eltérő bitet kapok-e.
Egyező esetben 0 bitnek, eltérés esetén 1 bitnek vettem a kapott adatot. Próbáltam nagyon hosszú bitminták elemzését is, amikor több napon át folyamatosan működött
a számláló, sokmilliárdnyi bitet megvizsgálva.
A lényeg sajnos elég röviden összefoglalható: Kaptam egy valódi véletlen szám generátort, ami szépen teszi a dolgát, és szinte tökéletesen véletlenszerű számokat ad vissza.
Annyira, hogy semmiféle ráhatást, és semmilyen anomáliát nem tudtam kimutatni a feldolgozott adatokból. Tagadhatatlan, hogy jó lett volna valami érdekeset találni, de
ennek volt nagyobb az esélye, és ez is lett az eredmény. A befektetett energiát és időt nem sajnálom, így is tanultam, pl. a véletlen számok természetéről, az
elektronika és az áramkörök építése meg amúgy is hobbi - tehát szórakozás. A kész cucc egy dobozba került, majd valami lesz vele...
A "sajnos"-ra voltak, akik külön rá is kérdeztek. Miért sajnos?
Akkor erre ezt válaszoltam:
"Azért sajnos, mert szerintem nagyon érdekes lett volna, ha a véletlenszámok, és a kvantumfizika
összefüggése - konkrétan, pl. a megfigyelés ténye miatt megváltozó tulajdonságok - itt is kimutathatók, vagy akár fel is használhatók valamire.
Az, hogy sikerült a matematikai elmélettel egyező eredményt elérni egy célhardverrel, az jó dolog ugyan, de semmi különleges nincs benne."
A történet (2020-ban) itt tulajdonképpen véget is érhetett volna, de....
Eltelt jó néhány év, olvastam egy keveset a kvantumfizikáról (a kezdetekről, pl. kétrés kísérlet, Schrödinger macskája), persze nem vagyok fizikus,
egyszerűen csak érdekes témának tartom, és azért néha elgondolkoztam a fenti kísérleten is. Közben elérhető vált a chatGPT, és más cégek által gyártott MI,
ami valójában, és jelen állapotában csak egy "nyelvi modell", de már sok mindenre használható. Hatékony, pl. információkeresésben és feldolgozásban.
2025-öt írunk. Megkértem a ChatGPT, hogy keressen ilyen jellegű publikált kutatásokat, íme az eredmény:
Bösch, H., Steinkamp, F., & Boller, E. — Examining psychokinesis: The interaction of human intention with random number generators — a meta-analysis (Psychological Bulletin, 2006).
Röviden: 380 kísérletet összegző metaanalízis; találtak kis, de statisztikailag szignifikáns átlaghatást, ugyanakkor heterogenitás és publikációs torzítás gyanúja miatt óvatos következtetésre jutnak (kritikus, magas impaktú cikk).
PubMed
Princeton Engineering Anomalies Research (PEAR) — laborát publikációi (hosszú időn át végzett RNG/REG kísérletek, technikai jegyzetek és összegzések).
Röviden: Robert Jahn és munkatársai évtizedeken át végeztek operátoros RNG-kísérleteket; kismértékű, de konzisztens eltérésekről számoltak be; a PEAR-eredményeket sokan vitatták, de nagy adatmennyiséget halmoztak fel. (PEAR publikációs lista, technikai jegyzetek).
pear-lab.com
Wikipedia
Global Consciousness Project (Roger Nelson és munkatársai) — hosszú távú hálózati RNG-adatgyűjtés, amely nagy, kollektív eseményekhez (9/11, nagy sportesemények stb.) kapcsolódó statisztikai eltéréseket vizsgál.
Röviden: folyamatos, földrajzilag elosztott RNG-hálózat; a szerzők kis, de állandóan megfigyelt korrelációkat találtak bizonyos kollektív események idején; a munkát is sok kritika érte (analízis, adat-kiválasztás).
noosphere.princeton.edu
ScienceDirect
Maier, M.A., Dechamps, A. et al. — Intentional observer effects on quantum randomness (2018).
Röviden: modern kísérleti vizsgálat, ahol kvantum-alapú RNG-ket használtak, és elemzik, hogy szándék/megfigyelés befolyásolhatja-e a kimenetet; áttekintő és kísérleti elemeket is tartalmaz. (nyílt hozzáférésű cikk elérhető).
PMC
Williams, B.J. — Minding the Matter of Psychokinesis: A Review… (Journal of Scientific Exploration, 2022).
Röviden: friss áttekintés a RNG-alapú micro-PK irodalomról, proof- és process-orientált nézőponttal; összegzi a korábbi eredményeket és a módszertani kérdéseket.
philpapers.org
ResearchGate
Tehát vannak ugyan eredmények az ilyen jellegű kutatások terén is, de nem elég egyértelműek. Viszont a saját kísérletem egyértelműen nemleges eredményt hozott 5 évvel ezelőtt.
Miért? Több lehetőség is van:
- Nincsenek ilyen hatások.
- Vannak hatások, de a megfigyelés ténye olyan irányba viszi , hogy sosem kaphatunk kimutatható eredményt.
- Hibásak a kísérleti és elemzési módszerek, és/vagy a kísérlethez használt hardverek, ezért nincs egyértelmű eredmény.
Az első két esettel nyilván nem sokat lehet kezdeni (és talán a felsoroltaknál több lehetőség is van), viszont a harmadik lehetőség...
Arra gondoltam, hogy egyetlen véletlen generátort hiába is vizsgálok, a véletlen az mindig véletlen marad, akkor is, ha bármilyen megfigyelés tényéből,
tudati ráhatásból, vagy bármiből eredően megváltoznak a számok, azok akkor is véletlenszerűek lesznek, csak másképp - és ezért nem látunk, nem észlelünk,
és nem is észlelhetünk semmit sem. Egyszerűen a zaj mindig elfedi az információt (már persze akkor, ha egyáltalán van információ tartalom).
Hogyan lehetne akkor kimutatni bármiféle hatást? Az elméletem szerint, ha létezik ez a jelenség, akkor úgy tudjuk kimutatni, ha több darab véletlen generátorunk van,
amelyeknek nem a véletlenszerűségét vizsgáljuk, hanem azt, hogy van-e közöttük bármiféle összefüggés. Ha nincs semmiféle hatás, akkor összefüggés sem lehet, ha van
akkor lehetnek pillanatnyi szinkronizálódások, amikor néhány bit erejéig mindig egyforma (vagy éppen mindig fordított) bitet kapunk két különböző TRNG-től.
tekinthetjük ezt úgy, mint valamiféle mintázatot a zajban, ami megváltozik, amikor hatást gyakorolunk rá. Ezeket a mintázatokat kellene felismerni, vagy legalább
annyit észrevenni, hogy van-e, és esetleg azt, hogy változik-e.
Tehát hogyan tovább?
Úgy gondolom, hogy a korábbi projektemben az volt a fő hiba, hogy bár a véletlenszám generátor teljesen jó volt, de csak 1db volt belőle.
Ami szépen hozta a matematikai alapoknak megfelelő eredményeket, se többet - se kevesebbet. Tehát ennek megfelelően semmilyen kvantum ráhatás ill. anomália
kimutatása nekem sikertelen volt. A most (2025) készülő megoldásomban 8db, egymástól független, hardveres véletlen generátor lesz, amelyeknek a kimeneteit
egy mikrovezérlő fogja (elő-)feldolgozni. A cél pedig nem az lesz, hogy megnézzem valóban véletlenszerű-e, amit kapok (mert azt már tudom, hogy az lesz),
hanem az lesz a cél, hogy megnézem, kimutatható-e bármilyen összefüggés, a 8db független TRNG kimenete között. Tehát ha van bármiféle ráhatás,
attól még a véletlen - az véletlen marad, de közben lehetnek pillanatnyi, rövid szinkronizálódások - azaz mintázatok a zajban. Ezt kellene hatékonyan felismerni.
Ehhez már megterveztem a hardvert, ami hobbi projekt lévén, lassan fog elkészülni, és majd valamikor szoftvert is kellene készíteni a mikrovezérlőre....
Jelenleg itt tart a dolog, és innen folytatom majd, amikor sikerül továbblépni a kutatásban.
Persze most sem adok nagy esélyt arra, hogy sikerül valami meglepőt, vagy valami újabbat felfedezni annál, mint amit azok a kutatók
publikáltak, akik korábban már foglakoztak ezzel, de hátha valamit sikerül mégis másképp csinálni, akár véletlenül akár valami olyasmit, amire csak én gondolok.
A mostani projekthez egy ESP8266 MCU-ra (processzorra) épülő, WeMos D1 mini modult néztem ki. Azért ezt, mert ezen van wifi modul is, és némi programozással,
a későbbiekben elérhető lehet az, hogy a TRNG adatokat a weboldalon online, és közel valós időben (akár 1 másodpercnél rövidebb késéssel) megjelenítsem.
Kvantum részecskék szintjén sok esetben a távolság szinte lényegtelen tényező, ha ezzel összefüggő módon lehet hatni a TRNG-re, akkor az akár távolról is működhet,
bárki kipróbálhatja majd, hogy tud-e távolról hatást gyakorolni az eszközre. Ráadásul az online, közel azonnali adatok megjelenítése egyfajta pozitív
visszacsatolásként erősíthetné a hatást.
Skori@2025
folyt. köv...
Csak egy gyors "helyzetjelentés" egy fotó erejéig... :)

A szoftver, első tesztek, adatelemzés még hátra van...
2025.09.20.
Miután a nyomtatott áramköri panel elkészült, és TG barátom 90%-ban az alkatrészeket is beültette a panelbe, elkezdtem tesztelni, az egyes részegységeket.
Megmértem az áramfelvételt, feszültségeket, munkapontokat az áramkörben. A zajgenerátor egységek szépen működtek, hangszórót csatlakoztatva rá, mind a 8 bit
esetében hallani lehetett a szokásos sistergő fehérzajt.
Ezután elkezdtem a szoftver első verzióját megírni. Első körben az adatokat simán soros portra küldtem ki, így nem kellett sem kijelzőt, sem a Wifi-vel,
sem TCP protokollal foglakozni. Kizárólag a random generátorokból jövő biteket dolgoztam fel. Egy blokkban 1000-szer vettem mintát 0,5 majd 1 másodpercenként, mind a 8 bitből,
azaz másodpercenkétn közel 1 kilobájt adatot olvasott be az MCU. Minden bithez hozzárendeltem egy számlálót, amelyknek a kezdőértéke nulla. Amikor az adott biten 1-et
olvas be az MCU, akkor a hozzá tartozó számlálót növeli eggyel, amikor 0-t olvas be akkorpedig csökkenti eggyel a számlálót. Az ezres blokk feldolgozásának
a végén kapunk 8db számot. Ha az adott jelben ugyanannyi vol a 0 és 1 bit (tehát 500 - 500 db) akkor az adott bithez tartozó szán nulla lenne. A bitek véletlenszerűek
némelyik blokkban a nullák, míg más blokkban az egyesek lesznek túlsúlyban, és ezek hosszú távon elvileg kiegyenlítőnek. Tehát egy ezres blokk feldolgozásának a végén,
a kapott számok ezt az eltérést mutatják. Ezt egyfajta rövid távú kilengésnek tekintjük.
Ha a nullák voltak többségben akkor negatív számot kapunk, ha az egyesek akkor pozitívot. A mintavétel folyamatos (ezredmásodpercenként),
tehát másodpercenként megkapjuk a kilengés aktuális mértékét minden bitre.
Az első tesztek alatt töbnnyire pozitív számokat kaptam, kb. -10...+250 között, ami azt mutatta, hogy 1000 mintában több mint 200-al több az egyes mint a nulla,
tehát pl. 60% eséllyel kapunk 1, és 40% eséllyel 0 bitet. Ezt a hardverben levő komparátorok tökéletlensége (vezérlő jeltől függő offszethibája) okozta.
Bár az áramkör így is működik, de jobbnak láttam, ha ezt a hibát lecsökkentem amennyire csak lehet. A hiba kompenzálásához hozzáhekkeltem a panelhez 8db trimmerpotit. Lásd az alábbi képen:

A kicsit meghekkelt panel fotója. Nem túl szép, de működik...
Az utólag bekötött trimmer potencióméterekkel, a 0/1 bitek valószínűségét beállítottam 50% körülire. A minták számát blokkonkénnt 2000-re növeltem,
a mintavételi időt, pedig 500µs-ra állítottam be. Így továbbra is 1 másodpercenként kapunk friss adatokat. Ilyenkor egy 100 körüli számlálóérték, azt jelenti,
hogy pl. katunk 950db nulla és 1050db egyes bitet az adott blokkban, tehát az 50%-os valószínűségtől, 2.5%-al tért el a kapott érték. A szoftver kiegészítettem,
TCP/http klienssel, így a kapott adatokat az MCU, wifi-n keresztül el tudja juttatni a webszervernek. A webszerveren egy .php program fogadja az adatokat, és továbbitja
ehhez a weboldalhoz. A weblapba épített javascript segítségével pedig megjeleníthető az alábbi oszlop-grafikonon:
A fenti grafikon, csak akkor működik amikor a TRNG hardver be van kapcsolva. Ilyenkor gyakorlatilag online, és minimális késéssel láthatók a trng-ből kapott adatok.
Persze amikor éppen dolgozom rajta akkor előfordulhat, hogy a fenti grafikon nem működik.
A megjelenított oszlopok magassága a kapott kilengés abszolút-értékével arányos. Az ábrán szereplő átlagérték pedig a kapott kilengési értékek abszolút értékének az átlagát mutatja.
Az "átlag2" anyiban tér el az átlag1 értéktől, hogy rendes előjeles átlagot képez, és ennek az abszolút értékét jeleníti meg.
A korábbiak értelmében, ezeken az értékeken valószínűleg nem tud senki tudati ráhatás elérni vagy kimutatni, elsősorbana random bit generátorok helyes működését lehet ezzel ellenőrizni.
A projekt következő, és talán érdekesebb része ezután következhet. A cél az lenne hogy a véletlenszerű biteket egymással összehasonlítsuk. Amennyiben nincs semmiféle quantumszintű,
tudati, vagy bármilyen ráhatás, akkor a kapott bitek között semmiféle összefüggés nem fordulhat elő, teljes mértékben függetlennek kell lenniük egymástól. Ha bárkinek sikerül
pl. a tudatával ráhatni, és ez megjelenik a bitek közötti összefüggés formájában, akkor vagy egy Mátrixban élünk, vagy valami egyéb különlegeset találtunk. De ha nem történik ilyesmi,
akkor is tanultam valamit a véletlen természetéről.
Hogyan tervezem a bitek közötti összefüggést kimutatni? Kiválasztok bit-párokat, és minden egyes mintában összehasonlítom őket.
A bitpárhoz hozzárendelek egy újabb számlálót, és ha a két bit egyezik akkor növelem, ha pedig eltérőek akkor csökkentem a számláló értékét.
Ha tökéletesen független egymáéstól a két kiválasztott bit, akkor 0 körüli, vagy legalábbis a feldolgozott minták számához képest alacsony értéket kell kapnom.
Ha a bitek között bármiféle, akár rövid idejű összefonódás van, akkor a számláló értéke negatív vagy pozitív irányban megnövekszik. 8db forrás bitből, 28db ilyen párt lehet kiválasztani,
ami további 28db számláló működtetését jelenti a szoftverben. Továbbá persze ezeknek a megjelenítését is, akár online is, pl. a lenti grafikonon:
Megnyitás új lapon
A fenti oszlopgrafikon szintén csak üzemelő trng hardver esetén fog működni, és adatokat megjeleníteni. Amikor éppen működik, akkor bárki megpróbálkozhat,
tudatosan koncentrálni arra, hogy megváltoztassa (pl. nagyobb, vagy éppen kisebb kilengésre bírja) a megjelenített számlálók értékeit! (Hajrá! Akinek sikerült az jelentkezzen!)
A tapasztalt eredmények. Elsősorban a bitkombinációk érdekesek számomra, így ezzel kezdeném. A max értékek erősen ingadozók, többnyire ±100...150 alattiak, ritkán esik be egy-egy nagyobb érték.
Az átlag1 (abszolút értékek átlaga) viszonylag stabil, többnyire 20...40 között ingadozik, általában kicsival 30 feletti. Az átlag2 (előjeles átlagolt érték abszolút értéke)
még stabilabb, többnyire 0...7 között van, ritán fordul elő egy egy 10 feletti érték. Engem meglepett, hogy a relatíve kevés számú minta ellenére, viszoinylag gyakran kapok pontosan 0 értéket.
Ez azt jelentené, hogy a 8 bit között egyáltalán nincs semmiféle összefüggés - sőt talán túl szép is ahhoz, hogy igaz legyen (mert az 5 körüli érték is még ezt jelenti - erről később).
Talán ez is jelent valamit. Az elméleti matak szerint (nem én számoltam ki), a jelenelgi paramétereket figyelembe véve (2000 minta, 28 bitpár kilengésének átlaga esetén)
kb. minden 297. (átlag2) lehetne nulla.
Amennyiben létezik olyan hatás, ami befolyásolni képes az eredményeket (pl. a weblap valamely olvasójának sikerül), akkor elsőként azt kellene tudni melyik értéket érdemes
alaposabban megfigyelni (esetleg időbeli grafikont is készítek majd). Az adatokat nem mentem el hosszú távon, tehát "csak addig, és csak akkor léteznek" amikor valaki megfigyeli.
Ebből kifojólag az is lehet, hogy egy ember esélytelen a változásokat megfigyelni, mert mindig kb. ugyanazt látja, de több ember megfigyelése lehet különböző, azaz a különböző
megfigyelők tapasztalata elétrő is lehet, (de az is lehet, hogy csak addig, amíg ezt nem osztják meg egymással).
De Schröndinger macskájára gondolva: az egyik ember élő macskát talál a dobozban, míg egy másik ember halott macskát
Az is lehetséges, hogy önmagában a megfigyelés ténye kikényszeríti, a matematikailag elvárható eredményeket.
Nézzük a matekot, a 8 bit esetében:
A kilengés várható értéke, az értékek jelnetős részében (99,7%) kb.: ±134
Az abszolút értékek átlagának várható értéke kb.: 36
Az előjeles értékek átlagának várható értéke kb.: ±16
A kapott (vagy az én megfigyelésem alatt látható) értékek bár hasonlóak a fentiekhez, de valamivel nagyobbak.
Első körben ezt a véletlen bit generátorok tökéletlenségének tudom be (annak, hogy nem teljesen pontosan 50% a 1/0 bitek valószínűsége).
A bitkombinációk alkalmazása elvileg jelentősen csökkenti az ilyesmiből fakadó hibákat.
Hogy néznek ki a fentiek a 28 bitkombináció esetében? Íme:
A kilengés várható értéke, hasonló a 8 bit esetében számoilt értékhez.
Amennyiben a bitek teljesen függetlenek egymástólakkor kb.: ±134
Az abszolút értékek átlagának várható értéke kb.: 36
Az előjeles értékek átlagának várható értéke kb.: ±8
A kapott (vagy az én megfigyelésem alatt látható) értékek nagyon hasonlóak a számolt értékekhez.
Ha ettől eltérő eredményeket kapunk, annak mindenképpen valamilyen oka van, ez lehet hardver vagy éppen szoftver hiba a rendszerben, de lehet quantum szintű hatás jele is.
További tapasztalatok. Néhány dolgot már látok, hogy mit kellett volna, vagy mit lehetett volna kicsit másképp csinálni. Az ESP8266-ra bizni az összes feladatot pl. hiba volt.
A gyári TCP és http megvalósítás, az egyetlen szabad timer, az időkritikus feldolgozás, és az MCU sebessége olyan ütközéseket tud produkálni a szoftverben, hogy ha
tovább gyorsítanám a mintavételi sebességet, akkor két mintavétel között az MCU nem képes feldolgozni az adatokat. Ilyenkor az egymásba érő feladatok miatt a program lefagyhat.
A jelenlegi sebesség mellett stabil, de ez az MCU ennyit tud. Ha lesz következő projekt akkor az adatfeldolgozáshoz gyorsabb MCU-t fogok választani.
Pl. az ST procik azonos órajel mellett is sokkal gyorsabbak. A régebbi projektemben (igaz csak 1db trng volt benne, és nem 8db) az STM32F103 (alias BluePill)
akár 1µs-os mintavétellel is megbírkózott, tehát ebben a projektben kenterbe verte volna az ESP8266-ot. Persze az ESP8266 (vagy helyette az ESP32 processzor) maradna a projektben,
de csak a Wifi kezelése, és az internet felé történő adattovábbítás lenne a feladata, tehát a feldolgozást nem ez végezné.
A random bit generátorokat még vizsgálom később más eszközökkel is, és ennek függvényében esetleg tervezek majd más felépítésűt is (ha szükségesnek gondolom),
illetve van még néhány további ötlet és elgondolás a tarsolyomban.
Ha a cikk kedves olvasója most itt tart az olvasásban, akkor remélem nem untattam, és érdekes volt számára téma. Előbb utóbb talán lesz további folytatás is.
Szivesen fogadok bármilyen visszajelzéseket, tapasztalatokat.
Légyszi az elgépeléseket nézzétek el nekem, sosincs annyi időm cikket írni, amennyi a témához kellene, és itt a tartalom a lényeg.
A hibákat azért majd javítom, ill. ha készít valaki listát, azt emailben szivesen fogadom...
Skori@2025.09.20.
Technikai részletek.Néhány oszcilloszkópos mérés:
A fehérzaj generátorok kimeneti feszültsége.

 

Látszik, hogy vannak jóval 1MHz feltti komponensek is, és alacsony frekvenciás összetevők is.
Kellően véletlenszerűnek tűnik (hangszórón való meghallgatás alapján sima fehérzaj). Szerintem ez egész jó.
Komaprátorok kimeneti feszültsége.

 

A komparátorok teszik a dolgukat, de ez a sebesség közelíti a határait. A jelalak meredeksége sokszor közelíti a billenési időket, ezért gyakram előfordul nem határozott a billenés.
Ettől még működik ugyan, de nem ártott volna ennél sokkal jobb komparátort használni. Az is látszik hogy a véletlen bit generátorok sokkal nagyobb sebességű mintavételt is lehetővé tennének,
annál, mint amit ebben a projektben használtam. Tehát egy erősebb MCU-val, 1 másodperc alatt több mint egy nagyságrendnyivel több adatot lehetne megvizsgálni.
Hullámforma a shift regiszter után:

 

A shift regiszteren "átengedve" a jelet már szép (kellően gyors fel/lefutású) jelet kapunk, a nem túl gyors komparátorok ellenére is.
Erre amúgy azért volt szükség mert az ESP82266 MCU (wemos D1 mini panel) esetében elég kevés használható i/o port van, így a véletlen bitek először egy shift regiszterbe kerülnek
be, párhuzamosan beolvasva, majd ebből a 8 bit memóriából sorosan olvassa ki az MCU. Mivel a shift regiszterek láncba fűzhetők, és kellően egyorsak is,
majdnem korlátlan számú, stabil és megbízható működésú párhuzamos adatbeolvasásra képes bemenetet lehet így kialakítani (erre itt nem volt szükség, csak érdekességképpen említem meg).
Másik érdekesség, hogy a fenti digitális jelek is ugyanolyan fehérzajként hallatszanak ha meghallgatjuk hangszórón, mint a komparálás előtti verzió. Az pedig hogy egyáltalán hallunk valamit,
az azt jelenti, hogy a rövid, µs-os tartományba eső impulzusok mellett, ugyanúgy megvanak az alacsonyabb frekvenciás komponensek is.
Sok dolog mellett azt már megtanultam ebből a projektből, hogy hogyan is lehetnme szinte tökéletes, nagyon széles sávú, és egyenletes eloszlású, véletlen bit generátort építeni.
Kellően sok bitből pedig egész komoly trng hardvert lehetne csinálni (persze irgalmatlanul sok alkatrészből...) 😀
Skori@2025.09.21.
TRNG v01 kapcsolási rajza
Ma már jónéhány dolgot másképp csinálnék, ahhoz képest, mint ahogy az alábbi rajzon szerepel.
Támogasd az oldalt!
Ugrás a kezdőlapra!