Многофункциональный прибор (ГСЧ). Проект "Петербург-Космопоиск"

Автор UncleMike, 28 апреля 2020 г., 17:36:24

« назад - далее »

UncleMike

Нечего обсуждать... Выбор "чувствительных" статистических характеристик, их представление пользователю, чувствительность к АЯ ГСЧ на разных физических принципах, влияние маски XOR на результат и куча всего остального.

Grey

Цитата: UncleMike от 29 апреля 2020 г., 23:18:32
В stm32f103c8t6 вроде нет RNG  если память мне не изменяет
нету.
но я тоже за внешний ГСЧ. с термостабилизацией. и хотя бы с электростатическим экранированием.
на встроенный вероятно и температура контроллера влияет. и термометр мало поможет.
и не известно, что там с электромагнитными наводками. в AVR для уменьшения помех при замерах АЦП есть специальный режим сна.
для ГСЧ то оно хорошо, а нам для результатов? будет проверять влияет ли управление дисплеем на работу ГСЧ?
и я не настаиваю на 103. просто под него есть библиотеки в ардуино.
Двое смотрят в лужу.
один видит лужу, а второй отражающиеся в ней звёзды.

klyoshev

Итак достал я с пыльной полки свои проекты, и спешу поделиться результатами и трудностями с которыми столкнулся.

Я использовал библиотеку TrueRandom для Arduino , она использует шум аналогового входа для генерации случайных чисел. Все бы ничего но возникла загвоздка что слишком большой разброс от идеального 50/50 орел/решка.
Пример 1, ставлю задачу сгенерировать 100 значений 1 или 0, и посчитать сколько единиц и сколько нулей.

результаты ( простите на форуме нельзя прятать в спойлер):
============

41ms
Массив битов: 0110011111100010111011001111100011110101010000010110110000000000110100010100010110011010000001011000
Количество ДА: 45
Количество НЕТ: 55

55ms
Массив битов: 1101001111010101010110101010110100010111011000000110001000100010101101010101110101111001001001000000
Количество ДА: 47
Количество НЕТ: 53

52ms
Массив битов: 1101110001011101101010110101101101101000010010100001110101000100111000100100111100101010110101110101
Количество ДА: 52
Количество НЕТ: 48

42ms
Массив битов: 1100010001000100110101010001111111010111110011101000010101000000011010000101101101101000010011110100
Количество ДА: 47
Количество НЕТ: 53

53ms
Массив битов: 0101010110100101101100001000101010110010000110101010100110011101111011101010101001010101010100100100
Количество ДА: 48
Количество НЕТ: 52

47ms
Массив битов: 0110110101010101000010000111010101110101010100101010010110011101001001111111101011111001001010101010
Количество ДА: 53
Количество НЕТ: 47

43ms
Массив битов: 1001111010010110110111111101010101010101010110100001100110001011100101110001011110011011010101101000
Количество ДА: 55
Количество НЕТ: 45


==========

Кстати все это занимает около 50 миллисекунд что очень неплохо для платы за полтора доллара я считаю.
Видите в чем проблема, алгоритм выдает скорее нет чем да. Разброс очень большой даже если сделать массив в  15000 значений

Усложним задачу, пример 2. Возьмем 100 чисел от 0 до 255 и сравним их на чёт-нечёт. Результаты:


===========

Четных: 49
Нечетных: 51

312ms

Четных: 42
Нечетных: 58

305ms

Четных: 41
Нечетных: 59

302ms

Четных: 41
Нечетных: 59

307ms

Четных: 39
Нечетных: 61

315ms

Четных: 46
Нечетных: 54

320ms

Четных: 42
Нечетных: 58


=============

Уже лучше но  опять тенденция четных чисел четко видна.

Что с этим делать дальше не знаю. На этом опыты и остановились. Или все-таки это нормальное распределение? Каков алгоритм проверки этого?


Идеально считаю чтобы генератор давал не более 0.1% отклонения от 50/50.

Видимо придется городить физический генератор помех? Нужна помощь и советы. Надеюсь информация полезная

kudrik

Добрый день. Мне кажется, что основная причина преобладания нолей(сигналов НЕТ) кроется в том, что программа применяет двоичную систему счисления.
Поясню, почему я вижу так. Предполагаю, что т.н. "шум аналогового входа" не является "абсолютно переменной" величиной.
Значит, если пристально разглядеть график/осциллограмму сигнала шума.....то на этом графике будут видны микроскопические участки, где амплитуда сигнала условно постоянная(есть ничтожные колебания). Так вот, когда программа переводит амплитуды в двоичный код.....вот тут и добавляется малое преобладание/наличие нулей .... именно в середине массива двоичного числа.
Выход в такой ситуации, как бы я предполагаю, хоть я вовсе не математик:
1.....уйти от двоичного кода, путем перевода его в шестнадцатиричный код

2.....перевести двоичный код .... в код "Грея", даже может есть готовая программа перевода. А вот сам код Грея(хоть и имеет полный облик двоичного кода).....но алгоритм выражения величин чисел(комбинация ноль/единичка)....в коде Грея совсем иначе.

Владимир Емельянов.

Цитата: klyoshev от 30 апреля 2020 г., 02:45:52
Пример 1, ставлю задачу сгенерировать 100 значений 1 или 0, и посчитать сколько единиц и сколько нулей.
В целом у вас получился вполне паритетный результат. Понятно, что невозможно получить результаты строго 50/50, да это бы и выглядело уже само по себе странным. Можно сказать, что ваш генератор в целом работает должным образом. Другой вопрос, как он себя поведёт в местах с явной аномалией сверхъестественного характера. Вот что он там начнёт выкидывать? Конечно тут надо оговорить, что аномалия аномалии рознь. Курская железная аномалия- это по факту аномалия. Место посадки НЛО тоже аномалия. Но как вы наверно понимаете, по своему характеру это всё таки разные аномалии. Вы пробовали куда нибудь вывозить ваш ГСЧ и проводить замеры? Или ваши данные получены в обычной обстановке?

mityok999

Почему бы не использовать  электронное устройство на основе балансного моста. Проще и в настройке точнее.
Единственный минус датчик должен быть вынесен за прибор на значительное расстояние , а это предполагает участие в замерах двух человек. Один спереди с датчиком другой сзади с прибором ну и соединительный провод.

bittone

32 бита «раскидать» поразрядно в накопители. Получатся «столбики» нулей и единиц. Вывести их на два индикатора. Вживую наблюдать преобладание знака и разряда. Можно их «сложить», получив результирующее «слово»  и складывать его с последующим.
Интересно бы (Версия 2.0 ) на пустой провод ГСЧ повесить датчик направленного действия.  (Два ГСЧ, на одном провод заземлить). Но какой? Для меня – фантастика.
Всё же думается такое предложение если и даст результат, то только как мобильное устройство – устройство констатации факта. Как индикатор направления, ПРЕДСКАЗАНИЯ или предупреждения оно не подойдёт.  Явно необходим разнос устройства на части. Необходимо постоянное сравнение двух или более точек между собой.
Если зайти с ним ТУДА полностью, то он работу прекратит. Там другие законы. А это «там» оно может оказаться очевидным и без прибора.
Кварцевый генератор – хорошая идея. Лучше два или три, разнесённых. Нулевые биения. Проблема в его стабильности.
Проще применить НЕСТАБИЛЬНЫЕ маломощные генераторы радиоволн. Разнести их, следя за параметрами.  «Там» сигнал начнёт пропадать. Нестабильный генератор – это и есть ГСЧ.  Без АЦП.  Разнести их по площади принимая сигнал на приёмник. Мне представляется, что границы неоднородности носят резкий характер. Аналог определит его точнее. Это -
металлоискатели, ультразвуковые излучатели (летучая мышь), лазерный дальномер, маломощный генератор радиоволн
пилите, Шура, пилите...

Владимир Емельянов.

Цитата: UncleMike от 28 апреля 2020 г., 17:36:24
Представляем Вашему вниманию статью "Разработка экспериментального многофункционального устройства для исследований аномальных физических процессов".
Вопрос. Я правильно понимаю, что речь пока идёт об одном экземпляре- опытном образце?

UncleMike

Владимир Емельянов

Сделан один экземпляр в версии 1.0. Работает как описано в статье. Есть вторая плата, прошить ее две минуты. На праздниках можно будет сравнить работу двух устройств.
Сейчас ещё готовится версия 2.0

Владимир Емельянов.

Михаил, у меня тогда к вам убедительная просьба. По мере появления каких либо результатов испытаний и работы прибора, выкладывайте их сюда. Важно сохранить наработки и опыт их использования. Даже если прибор не оправдает возлагаемых на него ожиданий, всё равно отпишитесь. Это позволит принять ваш опыт во внимание и в случае продолжения этих работ другими людьми, не топтаться на месте а сразу перейти к следующей логической ступени. Ок?

UncleMike

Grey
Внешний наверное потом, в последнюю очередь. Если понадобится. Хотя схему стал подискивать потихоньку.
Сначала все надо будет "выжить" из встроенного и того, что младший бит АЦП. Работы по исследованию данных с них много. Тем более, что там истинные числа и физпроцесс, что вселяет уверенность. Зависимость от температуры микроконтроллера - да, есть такое. Но, с одной стороны маска "исключающее или" тренды и неслучайности существенно уменьшает, с другой стороны использование термометра позволит контролировать эксперимент и добиваться одинаковых или близких температурных условий для разных устройств, используемых в эксперименте.
А как будет влиять работа с ЖК на данные ГСЧ?  Я здесь пока не вижу больших проблем.
Про библиотеки, под этот контроллер тоже есть достаточно. Хотя, наверное, интереснее писать на уровне работы с регистрами

UncleMike

Владимир, не вопрос. Промежуточные результаты я буду выкладывать здесь и иногда в виде статей на нашем сайте. В последующем, и ПО тоже буду выкладывать для всех желающих.
В планах все-таки получить положительные результаты. Если есть положительный зарубежный опыт, значит и у нас он должен быть

Grey

Цитата: UncleMikeА как будет влиять работа с ЖК на данные ГСЧ?  Я здесь пока не вижу больших проблем.
не сама работа ЖК.
переключение выводов контроллера создаёт помехи. а АЦП их ловит.
и переключение выводов создаёт просадку напряжения. не большую, но на ГСЧ думаю будет влиять.
Двое смотрят в лужу.
один видит лужу, а второй отражающиеся в ней звёзды.

klyoshev

kudrik,

я думаю вы правы, шум не находится строго на границе логического да-нет, и поэтому такая петрушка. Но вроде как мой алгоритм должен брать младший бит значения ацп где он должен шуметь независимо от логического уровня( я так понял), но он этого не делает. Так же заметил влияние на показания касания чипа пальцем, то есть наводки сильно действуют на вход АЦП,

Как считаете может добавить дополнительные математические операции чтобы увеличить энтропию, или это не имеет смысла изза того что любые математические операции по идее предсказуемы на 100%.

ВОт например бросок реальной физической монеты, он ведь очень хаотичен, и имеет ли смысл например бросать монетку не на стол а в систему лабиринтов, чтоб увеличить энтропию, или смысла в этом нет? (да,  теор вера в универе не было)))

Если кто разбирается в схемотехнике, может предложите какойнибудь простой шумовой генератор который я подключу к АЦП и вместо того чтоб оставить его болтаться в воздухе будем кормить его нормальным физическим шумом.

UncleMike

Grey
На ГСЧ на основе АЦП да, пожалуй. На встроенный нет. А с АЦП на праздниках сделаю, посмотрим какое у него качество