Отговори на тема  [ 80 мнения ]  Отиди на страница 1, 2, 3, 4, 5, 6  Следваща
Генератор на случайни числа 
Автор Съобщение
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Ное 25, 2005 11:41 am
Мнения: 1680
Мнение Генератор на случайни числа
Предполагам, повечето от вас знаят въпросната методика, но със сигурност има и такива дето не я знаят:

Към вход на АЦП модул се свързва само една свободно висяща жица, която се прекарва около доволно шумни места по платката. След отчитане на стойността се взема само най-младшия бит, необходимия брой пъти (в сучая 16 пъти за попълване на 16 битова променлива, или иначе казано - получаваме число от 0..65535).

При мен върху PIC18 резултатите са повече от задоволителни.

Код:
unsigned int Get_Random_Time(unsigned int max_time)
{
  char x;
  unsigned int adc_result, adc_current;
 
  adc_current = 0;
  adc_result = 0;
  for (x = 16; x != 0; x--)
    {
      adc_current = ADC_Read(0);
      adc_current &= 0x0001;
      adc_result = adc_result | (adc_current << (x-1));
    }
  return adc_result % max_time;
}


Пет Фев 22, 2013 12:15 pm
Профил ICQ WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пон Юни 05, 2006 1:48 pm
Мнения: 4906
Местоположение: където небето среща земята, ракията е Jameson, а бирата Guinness
Мнение Re: Генератор на случайни числа
Ами твойта методика е доста случайна и хаотична ;)
"Резултати повече от задоволителни" се казва когато данните си ги изследвал поне по 5 независими критерия( Кнут, и др.Добс който цитира Кнут, и др.) и по всичките е минал допустимия праг.

Приложи статистика и направи някой друг тест да видиш колко ти е случаен генератора :!: бих заложил няколко бири,че да кажем "0" преобладават или '1' в зависимост как четеш от АЦП-то и къде си боднал точно жицата..

_________________
... ако трети ден не ти се работи... това означава, че е сряда !


Последна промяна MYXATA на Пет Фев 22, 2013 12:43 pm, променена общо 1 път



Пет Фев 22, 2013 12:24 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пон Юни 05, 2006 1:48 pm
Мнения: 4906
Местоположение: където небето среща земята, ракията е Jameson, а бирата Guinness
Мнение Re: Генератор на случайни числа
от евтините и не много добри варианти има два подхода:
1. Цифров
много има но малко са добри, най вече се ползва за "избелване" аналогово цифровите. разни шифтрегистри с обратни връзки, или пък някой криптиращ алгоритъм в cipher feedback mode
2.Аналогово-и после скагаш цифров
2.1.Взимаш ценер при напрежение при което почва да стабилизира и и му мериш шума който генерира(през усилвател и тогава в ацп-то) ама зависи с каква честота семплираш. това пък зависи от спектъра на шума дето идва от диода.
2.2.взимаш МАХ232 мисля беше(слагаш и напомващите кондензатори) и оставяш интерфейсните входове да висят, тогава получаваш що годе случайна поредица на ттл изхода - ама е с доста ниска скорост на генериране.
2.3. ако имаш някой изотоп по ръка или крак :) и гайгеров брояч,може да взимаш времето между детекване на частици - то е доста случайно:)

_________________
... ако трети ден не ти се работи... това означава, че е сряда !


Последна промяна MYXATA на Пет Фев 22, 2013 4:48 pm, променена общо 1 път



Пет Фев 22, 2013 12:37 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Авг 23, 2005 12:02 pm
Мнения: 3070
Местоположение: София
Мнение Re: Генератор на случайни числа
Ако искаш да е истинско, не е лесна работа това. Че и интел се фукаха преди няколко месеца по научните списания че вградили такъв в процесор, и че отговарял на разни супер изисквания.

И все пак за да е нещо - потърси из интернет "white noise generator". Например това: http://electronicdesign.com/test-amp-me ... -generator


Пет Фев 22, 2013 12:45 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Сеп 26, 2004 4:11 pm
Мнения: 3750
Местоположение: София
Мнение Re: Генератор на случайни числа
Топлинният шум е случаен до съвършенство. Друг е въпросът как ще го премериш и как ще тълкуваш после резултатите. Аз съм правил с квантован бял шум и после с него seed на шифт регистър. Правил съм анализ на разпределението на 16-битови числа и ми "хареса". На фурие също изглеждаше равномерен.
Важното е да квантуваш с честота, много пъти по-ниска от макс честота в спектъра на шума.


Пет Фев 22, 2013 12:48 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Ное 25, 2005 11:41 am
Мнения: 1680
Мнение Re: Генератор на случайни числа
Нямам време за изследвания аз :)
Целите за които ми трябва - генериране на едно време 0..5000 ms, максимум 1-2 пъти на ден.
Като казах задоволителни - имах предвид, че се държи много по адекватно от RND(1) в Правец и RAND() в С++.


Пет Фев 22, 2013 1:00 pm
Профил ICQ WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Яну 25, 2012 9:14 am
Мнения: 5298
Мнение Re: Генератор на случайни числа
точно преди няколко дни попаднах на един интересен материал в тая връзка: http://imotp.sourceforge.net/noise.pdf

_________________
'просто' е технически синоним на 'красиво'


Пет Фев 22, 2013 1:17 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Ное 25, 2005 11:41 am
Мнения: 1680
Мнение Re: Генератор на случайни числа
Ето я моята постановка:


Прикачени файлове:
RDG.jpg
RDG.jpg [ 161.31 KiB | Прегледано 8890 пъти ]
Пет Фев 22, 2013 2:00 pm
Профил ICQ WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Ное 21, 2004 11:31 pm
Мнения: 10088
Мнение Re: Генератор на случайни числа
я сложи няколко хиляди числа тука, да видим какво си изгенерирал :-k

добрите шумови диоди имат изключително широк спектър, десетки гигахерци. ценера на практика е добър, щото надали някой ще тръгне да семплира с десетки мегахерци. въпроса е как да отстраниш систематичните добавки - честота на семплиране, околни кварцове, дори мрежови смущения.

все пак ценера си остава много надежден метод, много по-добър от гола жица по платката. просто, защото платката не е с достатъчно ниска ентропия.
номера със жицата минава, ако мериш статично електричество в атмосферата (гръмотевици примерно). но това е за много висш пилотаж.


Пет Фев 22, 2013 2:14 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Пет Фев 04, 2005 9:59 pm
Мнения: 6019
Местоположение: София
Мнение Re: Генератор на случайни числа
Знам, че много хора дадоха акъл в тази тема, но и аз не можах да се въздържа.
Цитат:
John von Neumann invented a simple algorithm to fix simple bias and reduce correlation. It considers bits two at a time, taking one of three actions: when two successive bits are equal, they are discarded; a sequence of 1,0 becomes a 1; and a sequence of 0,1 becomes a zero. It thus represents a falling edge with a 1, and a rising edge with a 0. This eliminates simple bias, and is easy to implement as a computer program or in digital logic.

http://en.wikipedia.org/wiki/Hardware_r ... _whitening
Алгоритъма забива, ако поради някаква причина ти се прецака входящия шум.
Иначе има много софтуерни генератори, които генерират много добре псевдо случайни числа, а има и такива, които генерират даже и криптографски псевдо случайни числа(идеален рандом генератор може цял ден да ти бълва числото 0 което не е добре при криптографията) - само единственият им недостатък е, че трябва да ги осемениш с истинско рандом число, а и са големи за микроконтролер.

_________________
Warriors of the Night, ASSEMBLER!!!


Пет Фев 22, 2013 2:17 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пон Юни 05, 2006 1:48 pm
Мнения: 4906
Местоположение: където небето среща земята, ракията е Jameson, а бирата Guinness
Мнение Re: Генератор на случайни числа
ike написа:
.....(идеален рандом генератор може цял ден да ти бълва числото 0 .............................
................ само единственият им недостатък е, че трябва да ги осемениш с истинско рандом число, а и са големи за микроконтролер.


Ике ,
Ти направо разцепи мрака със метлата дет се вика :)
1. Идеалния рандом генератор може да дава нула на изхода цял ден, само ако е изключен от захранването :!: - само в някой доста абстрактен математичен модел може се докаже такава вероятност.
2.Осеменяването като приложна наука извън аграрните комплекси(познати ни като ТКЗС), не се прилага много-много ;) било то с истински рандом или не съвсем число.
Ако е добър криптоалгоритъма - би трябвало да ти дава еднакво добра псевдослучайна последователност на изхода независимо дали входното чесло е случайно или не :!:

_________________
... ако трети ден не ти се работи... това означава, че е сряда !


Пет Фев 22, 2013 4:43 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Ное 25, 2005 11:41 am
Мнения: 1680
Мнение Re: Генератор на случайни числа
ДедоБоре написа:
я сложи няколко хиляди числа тука, да видим какво си изгенерирал :-k


Ей го на....


Прикачени файлове:
random_digit_65535_log.txt [35.63 KiB]
449 пъти
random_digit_5000_log.txt [36.49 KiB]
429 пъти
Пет Фев 22, 2013 5:18 pm
Профил ICQ WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пон Юни 05, 2006 1:48 pm
Мнения: 4906
Местоположение: където небето среща земята, ракията е Jameson, а бирата Guinness
Мнение Re: Генератор на случайни числа
Ако не ти се пише собствен софт за анализ може да си го друпнеш оттук:
http://www.stat.fsu.edu/pub/diehard/

Вярвам че си направил добър генератор - това просто ще ти даде увереност, че наистина е така ;)

_________________
... ако трети ден не ти се работи... това означава, че е сряда !


Пет Фев 22, 2013 5:29 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Пет Фев 04, 2005 9:59 pm
Мнения: 6019
Местоположение: София
Мнение Re: Генератор на случайни числа
MYXATA написа:
това просто ще ти даде увереност, че наистина е така ;)

При 20*С и заредени батерии.

_________________
Warriors of the Night, ASSEMBLER!!!


Пет Фев 22, 2013 5:35 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Юни 10, 2007 2:22 pm
Мнения: 6492
Местоположение: София
Мнение Re: Генератор на случайни числа
Добре де, какви средства какви щуротии, толкова трудно ли е да събере достатъчно голям брой
измервания и сумата да види дали се отклонява от средното с повече от един корен от сумата.
Ако не, генераторът му е случаен.
Това с жицата посред платката не ми харесва особено, тя събира сигнали, не шум - и има
шанс да напипа нещо кратно на клока на АЦП-то примерно.
Възможно подобрение би било тоя вход на ADC-то да е вързан към изхода на някой
opamp който да е вързан за усилване 100 примерно със 100-ина кила в обратната
връзка и без никакви жици наникъде, добре филтрирано захранване (най-добре активно,
с един транзистор/резистор/кондензатор). Колкото по-малко от платката влиза в тоя
усилвател толкова повече на изхода му ще му е само неговият шум, който няма много
какъв да е за тия цели освен бял.
Само си разсъждавам де, не съм го правил/мерил. Но знам прекрасно как изглежда
шум, нали изпод него анализаторите ми вадят полезен сигнал от детекторите, което
е всичко но не и тривиална задача :D .

_________________
-------------------
www.tgi-sci.com
-------------------
http://www.flickr.com/photos/didi_tgi/


Пет Фев 22, 2013 5:59 pm
Профил WWW
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 80 мнения ]  Отиди на страница 1, 2, 3, 4, 5, 6  Следваща

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 1 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни