Этот проект являться логическим продолжением проекта
"Квантовый водопад".
Суть метода в измерении энтропии случайной последовательности чисел.
Теория информационной энтропии
тутЭнтропия рассчитывается по
этой формуле
При диапазоне чисел 0… 255 максимально возможная энтропия = 8 . Так как в формуле основание логарифма 2 то эта цифра показывает количество двоичных разрядов необходимых для кодирования всех чисел в массиве .
Чем ниже энтропия, тем менее случайными являются числа, если упростить - одни числа повторяться чаще других.
Источником энтропии служит всё тот же генератор шума на стабилитроне КС133.
Применено достаточно нестандартное схемное решение преобразования шума в поток чисел в диапазоне 0…255. Преобразование возложено на драйвер COM порта , драйвер сам разрежет последовательность двоичных импульсов на байты . Это позволяет обойтись без микроконтроллеров ! Скорость - примерно 1000 байт(чисел) в секунду.
Так как сейчас COM порт встречаться редко ( тем более на ноутбуках) применяется переходник USB-COM-port , в результате чего ГСЧ можно назвать «USB девайсом» так как физически передача данных происходит через USB , программно - приём данных происходит через виртуальный COM порт.

На ПК необходимо установить драйвер, который поставляется с переходником USB-COM-port. После этого в диспетчере устройств появиться виртуальный COM порт , которой от аппаратно ничем не отличается.
Поток случайных чисел накапливается в буфере драйвера COM порта.
Программа считывает данные из буфера COM порта ,рассчитывает энтропию и выводит данные на график. На графике две линии , одна (красная) энтропия аппаратного ГСЧ , вторая(зелёная) энтропия псевдослучайного ГСЧ (функция random в С++). График random служит как образец энтропии (использовался для сравнения, при настройки аппаратного ГСЧ).
Интерфейс программы состоит из трёх окон .
Основное окно с графиком энтропии .
Окно лога , с данными – номер замера_энтропия_время.
Окно с графиком частоты встречаемости чисел ( для каждого замера).
Программа позволяет сохранять график энтропии и лог .
В принципе программа будет работать без аппаратного ГСЧ ,программа выдаст ошибку - надо нажать ОК и будет отображаться только функция random ,чтобы в логе и графике частоты были данные random - надо снять галочку с пункта (Аппаратный-ГСЧ).
Под ХР программа работает точно , совместимость с другими версиями надо проверять.
Программа ещё в процессе написания , я ещё подумаю какую информацию можно выжать из массива случайных чисел .

Теперь подробнее о схеме .

Основная проблема в подборе стабилитрона , не все подходят . Придётся перебрать штук 10 ,важны уровень и чистота шума .
Диоды D1 D2 , элементы термостабилизации напряжения стабилитрона КС133.
С1 ( желательно танталовый) фильтрует напряжение питания для стабилитрона.
C2 ,R13 C10, формируют АЧХ ( так как АЧХ шума неравномерна )
На U1:В реализован ФНЧ с частотой среза 5 кГц, это надо что бы спектр импульсов на выходе напоминал спектр импульсов COM порта на скорости передачи 9600 бод.
Audio-Out ( C10) для контроля сигнала на осциллографе и анализаторе спектра , размах сигнала на выходе примерно 500 мВ.
Порог срабатывания компаратора U2:A - адаптивный , реализован на R9 С7 , такое решение позволяет не волноваться о термостабилизации по постоянному напряжению, схема сама подстраивается в зависимости от уровня напряжение на выходе ОУ U1:B .
Конденсаторы С2,С10,С4,С5,С6 желательно термостабильные( не керамика) , так как случайное распределение чисел зависит от АЧХ всей схемы. Это единственный пункт по термостабильности . Конденсаторы ФНЧ С4,С5 желательно подобрать точно 3.3n , по возможности с меньшей разницей в номиналах.Тоже самое с резисторами R5,R6.
На Q1 сделан преобразователь уровней , отрицательное напряжение необходимое для преобразования уровней берётся с вывода 3 TXD COM порта.
При настройки схемы надо контролировать ровность спектра шумового сигнала .
Выглядеть должно так , равномерный спектр со спадом начинающимся с 5 кГц.

В принципе можно применить и микроконтроллер для формирования потока случайных чисел ,главное условие – непрерывный поток чисел.
Настройки порта :
BaudRate= CBR_9600;
ByteSize=8;
StopBits=ONESTOPBIT;
Parity=NOPARITY;
Программу можно скачать ниже