Digital slump
- MadModder
- Co Admin
- Inlägg: 31633
- Blev medlem: 6 september 2003, 13:32:07
- Ort: MadLand (Enköping)
- Kontakt:
Digital slump
Har kollat runt lite efter digitala slumpgeneratorer. Alla är uppbyggda ungefär likadant, typ shiftregister och XOR-grindar. Resultatet blir ju inte särskilt slumpartat om shiftregistret startar likadant varje gång.
Kan man inte bara ta en analog brusgenerator, typ den här och köra in utsignalen i en schmitt-trigger (eller en komparator), enkelt uttryckt?
Kan man inte bara ta en analog brusgenerator, typ den här och köra in utsignalen i en schmitt-trigger (eller en komparator), enkelt uttryckt?
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Re: Digital slump
Såklart man kan - men ska man bli väldig petig blir det inte slumpad nog heller.
Bruset från den generator har en viktning som gör att den inte är "vit".
Jag har tidigare funderat i banor av SDI där en brusgenerator skapar shift-klockan och en annan generator skapar datan.
Bruset från den generator har en viktning som gör att den inte är "vit".
Jag har tidigare funderat i banor av SDI där en brusgenerator skapar shift-klockan och en annan generator skapar datan.
Re: Digital slump
Den duger nog bra för startvärde till en psuedo-slumpgenerator till de flesta program i en uC. Men för en generator som ska ge antingen 1:a eller 0:a som resultat, alltså motsvarande att singla slant, måste den ju verkligen ge 50% som snitt för att kunna användas till något seriöst. Och det är kanske inte helt enkelt att lyckas med?
Re: Digital slump
Linjära shiftregister och olika matematiska formler kallas pseudoslump och är väl OK för statistiska experiment, men pest för lottdragning...
Annars så ta två geigerrör. Det ena triggar en vippa som avgör 0/1, det andra shiftar in bits. Borde bli helt slumpmässigt. Fast är omslagstiderna för vippan olika om det är 1 till 0 eller tvärt om så blir där bias.
För normalt bruk blir nog brusgeneratorn ok. Den används ju många gånger för att få fram ett nummer, så eventuell bias blir väldigt liten och oförutsägbr. Ett roulettehjul är knappast bättre.
Annars så bygg en mekanisk maskin. Men även en sådan kan ha bias om bollarna är det minsta olika. Den är i varje fall väldigt säker mot manipulation.
Annars så ta två geigerrör. Det ena triggar en vippa som avgör 0/1, det andra shiftar in bits. Borde bli helt slumpmässigt. Fast är omslagstiderna för vippan olika om det är 1 till 0 eller tvärt om så blir där bias.
För normalt bruk blir nog brusgeneratorn ok. Den används ju många gånger för att få fram ett nummer, så eventuell bias blir väldigt liten och oförutsägbr. Ett roulettehjul är knappast bättre.
Annars så bygg en mekanisk maskin. Men även en sådan kan ha bias om bollarna är det minsta olika. Den är i varje fall väldigt säker mot manipulation.
Re: Digital slump
Detta är ju ett (intressant) forskningsområde med många år på nacken. Till exempel
designade Alan Turing en slumpgenerator till Mark1 redan på 50-talet. Googla!
Finurligt återkopplade skiftregister används förresten överallt. Den "yttersta"
kodningen i 3G-standarden som togglar radiopulsernas amplitud på ett
deterministiskt men "slumpmässigt" vis är ett exempel på detta.
designade Alan Turing en slumpgenerator till Mark1 redan på 50-talet. Googla!
Finurligt återkopplade skiftregister används förresten överallt. Den "yttersta"
kodningen i 3G-standarden som togglar radiopulsernas amplitud på ett
deterministiskt men "slumpmässigt" vis är ett exempel på detta.
Re: Digital slump
på vilket sätt ska man ha slumptalet?
eller hur ska det annvändas, finns ganska gott om olika exempel, som gm rören eller lavalampor
eller hur ska det annvändas, finns ganska gott om olika exempel, som gm rören eller lavalampor
- Electricguy
- Inlägg: 12490
- Blev medlem: 15 augusti 2007, 16:52:14
- Ort: Kälmä' typ..
Re: Digital slump
Hmm, en Geigerräknare som mäter bakgrundsstrålning borde ju vara ganska slumpmässig, om än kanske inte så smidig.. 

Re: Digital slump
https://www.random.org är troligen en rätt bra slumpare. Det finns en del information hur dom generar slumptalen under historia.
- Electricguy
- Inlägg: 12490
- Blev medlem: 15 augusti 2007, 16:52:14
- Ort: Kälmä' typ..
Re: Digital slump
Nu är det ju också en fråga om hur slumpmässigt det ska vara - och kan vara.
Om det ska väljas mellan t.ex. 16 olika val och det t.ex. ska användas när en person går genom en dörr blir det rikligt slumpartad vid att bara räkna upp en variabel ganska snabbt (1000Hz?) och sedan använda dörrpassagen som triggerpunkt.
Är det extremt mer avancerat behövs det väldigt med antal bitar för att få ett användbart värde men har man t.ex. 16 bit är det ju ändå bara 65536 olika möjligheter osv.
Så rätt metod till rätt funktion anser jag. Att skapa en hypergenerator som slumpar 100% korrekt - för att sedan använda 3 bit känns lite överkurs.
Om det ska väljas mellan t.ex. 16 olika val och det t.ex. ska användas när en person går genom en dörr blir det rikligt slumpartad vid att bara räkna upp en variabel ganska snabbt (1000Hz?) och sedan använda dörrpassagen som triggerpunkt.
Är det extremt mer avancerat behövs det väldigt med antal bitar för att få ett användbart värde men har man t.ex. 16 bit är det ju ändå bara 65536 olika möjligheter osv.
Så rätt metod till rätt funktion anser jag. Att skapa en hypergenerator som slumpar 100% korrekt - för att sedan använda 3 bit känns lite överkurs.
- MadModder
- Co Admin
- Inlägg: 31633
- Blev medlem: 6 september 2003, 13:32:07
- Ort: MadLand (Enköping)
- Kontakt:
Re: Digital slump
Just nu ska det inte vara till någonting. Det är bara på tankestadiet. Men resultatet ska vara en strid ström av ettor och nollor (i princip digitalt brus), som kanske ska styra en panel med lysdioder.
Det är alltså inte livsviktigt att det är äkta slump.
Det är alltså inte livsviktigt att det är äkta slump.

Re: Digital slump
I så fall låter det som att ett återkopplat skiftregister är precis rätt, eftersom det
är enkelt att förstå och implementera, och har helt deterministiska egenskaper.
Ett bra LFSR (Linear Feedback Shift Register, kolla wikipedia tex) på N bitar
kommer att passera alla tillstånd utom det som bara är nollor. (Linjär återkoppling
- nollor in ger ju bara nollor ut.) Så N bitar ger 2^N-1 tillstånd.
Den längsta sekvensen av konsekutiva ettor är N, och motsvarande för nollor
är N-1. Osv.
Per varv kommer det ut precis en mer etta än det kommer nollor, så "nästan"
perfekt medelvärde, och sannolikheten för att nästa bit är etta eller nolla är "nära"
en halv så entropin, eller måttet på hur förvånad man blir, är hög.
är enkelt att förstå och implementera, och har helt deterministiska egenskaper.
Ett bra LFSR (Linear Feedback Shift Register, kolla wikipedia tex) på N bitar
kommer att passera alla tillstånd utom det som bara är nollor. (Linjär återkoppling
- nollor in ger ju bara nollor ut.) Så N bitar ger 2^N-1 tillstånd.
Den längsta sekvensen av konsekutiva ettor är N, och motsvarande för nollor
är N-1. Osv.
Per varv kommer det ut precis en mer etta än det kommer nollor, så "nästan"
perfekt medelvärde, och sannolikheten för att nästa bit är etta eller nolla är "nära"
en halv så entropin, eller måttet på hur förvånad man blir, är hög.
- HUGGBÄVERN
- Tidigare soundbrigade
- Inlägg: 35138
- Blev medlem: 23 augusti 2006, 22:44:11
- Ort: Lilla Paris
- Kontakt:
Re: Digital slump
Titta på www.musicfromouterspace.com! Salige Ray Wilson hade lagt scheman på några brusgeneratorer och i några fall sett till att göra bruset ”digitalt”. Lite mer utvecklat är det i hans 32-stegs sekvenser där han klockar in ett slumpat pulståg i ett register. Klocka och pulståg är oberoende av varandra.MadModder skrev:Just nu ska det inte vara till någonting. Det är bara på tankestadiet. Men resultatet ska vara en strid ström av ettor och nollor (i princip digitalt brus), som kanske ska styra en panel med lysdioder.
Det är alltså inte livsviktigt att det är äkta slump.
Kan nämna att den synt jag skulle vilja klona, Moog/RadioShack har i original ett speciellt digitalt bruschip men i modanvisningar byter man detta chip mot en brusande transistor.
Re: Digital slump
Det här med "slump" är komplext. Jag tänker att i detta kontextet kan
man förenkla och tänka på en tärning (1), men det räcker ju att tänka
på ett "perfekt mynt" (2).
Om man kastar ett mynt "ordentligt" och har "plant" underlag kommer
gravitationen att ordna så att endast en av ytorna är "upp", och detta
är utfallet av myntkastet.
Det är TVÅ OLIKA saker som är "slump" i detta:
1. Vi tänker att man kastar så att varje kast är "olikt" alla
tidigare, dvs varje kast är OBEROENDE av alla föregående.
2. Vi antar dessutom att tärningen är PERFEKT, dvs det är samma
sannolikhet för de båda utfallen.
Punkt 1 kan formuleras som att utfall skall vara okorrelerade. För en
analog generator kan detta hanteras genom att se till att inte sampla
oftare än 1/bandbredden av systemet (om man nu har en aning om den).
Är utfallen inte oberoende kan vi prediktera framtida utfall med hjälp
av tidigare utfall. Inte bra.
Punkt 2 är också svår. Det kan vara okej att uppfylla punkt 1 och VETA
vilken "bias"/fördelning man har så att man kan ta hänsyn till den.
Båda punkterna är kluriga. Gör man anspråk på att bygga en
slumpgenerator bör man visa att man hanterar båda. Man behöver mäta
systemet. Och så har vi det här med stabilitet över tid och
temperatur i kombination med att det ofta inte "märks" när generatorn
degraderar, så man behöver mäta mer eller mindre kontinuerligt.
(1) Det finns annars en tärning för varje platonsk ("symmetrisk")
kropp, dvs med 4, 6, 8, 12 och 20 sidor.
(2) Eftersom det är ett känt resultat att man kan koda ettor och
nollor till vad man vill.
man förenkla och tänka på en tärning (1), men det räcker ju att tänka
på ett "perfekt mynt" (2).
Om man kastar ett mynt "ordentligt" och har "plant" underlag kommer
gravitationen att ordna så att endast en av ytorna är "upp", och detta
är utfallet av myntkastet.
Det är TVÅ OLIKA saker som är "slump" i detta:
1. Vi tänker att man kastar så att varje kast är "olikt" alla
tidigare, dvs varje kast är OBEROENDE av alla föregående.
2. Vi antar dessutom att tärningen är PERFEKT, dvs det är samma
sannolikhet för de båda utfallen.
Punkt 1 kan formuleras som att utfall skall vara okorrelerade. För en
analog generator kan detta hanteras genom att se till att inte sampla
oftare än 1/bandbredden av systemet (om man nu har en aning om den).
Är utfallen inte oberoende kan vi prediktera framtida utfall med hjälp
av tidigare utfall. Inte bra.
Punkt 2 är också svår. Det kan vara okej att uppfylla punkt 1 och VETA
vilken "bias"/fördelning man har så att man kan ta hänsyn till den.
Båda punkterna är kluriga. Gör man anspråk på att bygga en
slumpgenerator bör man visa att man hanterar båda. Man behöver mäta
systemet. Och så har vi det här med stabilitet över tid och
temperatur i kombination med att det ofta inte "märks" när generatorn
degraderar, så man behöver mäta mer eller mindre kontinuerligt.
(1) Det finns annars en tärning för varje platonsk ("symmetrisk")
kropp, dvs med 4, 6, 8, 12 och 20 sidor.
(2) Eftersom det är ett känt resultat att man kan koda ettor och
nollor till vad man vill.
- FormerMazda
- Inlägg: 6508
- Blev medlem: 27 februari 2006, 14:59:36
- Ort: Asby (Östergötland)
Re: Digital slump
Jag såg ett bygge där nån skulle bygga en 70-tals vision av framtid konsol.
Där byggde han en lampa som bestod av massor med 5mm blinkade röda LEDs. Vid uppstart blinkade dom ju i takt, men bara nån minut in så är alla i otakt på grund av dess oprecisa tolerans.
Så är det effekten av lampor som blinkar i olika takt, köp bara blinkande LEDs och dom kommer snart hamna i otakt. Utan GM-rör och skiftregister.
Där byggde han en lampa som bestod av massor med 5mm blinkade röda LEDs. Vid uppstart blinkade dom ju i takt, men bara nån minut in så är alla i otakt på grund av dess oprecisa tolerans.
Så är det effekten av lampor som blinkar i olika takt, köp bara blinkande LEDs och dom kommer snart hamna i otakt. Utan GM-rör och skiftregister.
