|
-15 / 3 / 0
Регистрация: 17.12.2015
Сообщений: 296
|
|
Генерация случайных чисел 32 и 64 бит с 16 бит АЦП22.03.2023, 19:15. Показов 935. Ответов 12
Метки нет (Все метки)
Приветствую всех! И так АЦП будет 16 бит может даже сокращу до 14 бит что бы шум АЦП убрать. Собственно делаю несколько выборок скажем 48 бит из него получаю 32 бит посредством выделения остатка от деления. То есть мне нужно исключить вариант дотяга до верха.
Кто что скажет на счёт алгоритмов генерации случайных чисел еще? Мне нужна хорошая случайность бы никакие там алгоритмические неслучайности невлазили.
0
|
|
| 22.03.2023, 19:15 | |
|
Ответы с готовыми решениями:
12
Поменять местами значения бит в заданном количестве пар бит. Номера бит в парах задаются с клавиатуры При сложении по модулю два двух чисел по 48 бит пропадает 1 бит
|
|
|
|||||
| 23.03.2023, 07:54 | |||||
|
Почитайте Чехова - у него великолепный русский язык, а не Ваша каша.
Как можно так относиться к родному языку? Ну это же черт знает что. Добавлено через 7 минут Скажу. Хао!
0
|
|||||
|
Windows must die
|
|
| 23.03.2023, 09:25 | |
|
Ну я вот такой алгоритм использую: забиваю четыре числа младшим битом с АЦП, а потом по xor128 вычисляю псевдослучайное число.
АЦП для этого нужно как можно более шумящий: т.е. желательно не просто, чтобы нога в воздухе висела, а и "антеннку" к ней приделать.
1
|
|
|
-15 / 3 / 0
Регистрация: 17.12.2015
Сообщений: 296
|
|||||
| 23.03.2023, 14:55 [ТС] | |||||
|
АЦП не шумит, как раз ШУМ АЦП я исключил сам АЦП 24Бит, вообще АЦП это звуковая карта, на 16 бит вроде нет шума но я хочу полностью шум АЦП исключить уже что потому что он не случайный да и зачем мне шум от других источников?
Да кстати работа в 2 канала у меня конечно же будет потому еще и пересечение каналов исключить то разрядность там оставлю не более 8 бит. Хотя там лучшее 60дБ развязка но лучше поменьше но без взаимосвязей. Дело в том что мне нужен большой поток. Алгоритмом то куча можно по 1 биту собирать за одну выборку там всё чётко будет но это медленнее. Потому уже и использую звуковую карту 96кГц а так 192кГц будет лучше.
Но собирать по 1 биту это 100500% гарантия отсутствия участия алгоритма в формировании. Но всё же хотелось хотя бы 4 бит за выборку получить так будет в 4 раза быстрее. А для потребности в небольшом количестве там как раз побитная генерация с захлётом. Но разобью амплитуду на несколько значений ниже и выше 0 по столько бит и буду собирать. Но конечно всё сделаю автонастройку измерит ШУМ АЦП и эти значения будут далеко исключены так что ШУМ АЦП должен крайне мало влиять. А так по биту если тут всё просто значение на момент выборки выше или ниже всё просто. А то можно получить лажу и сделать вывод что не работает или работает не так! Так что неслучайность как это то что надо гарантированно избежать!
0
|
|||||
|
-15 / 3 / 0
Регистрация: 17.12.2015
Сообщений: 296
|
|
| 23.03.2023, 15:07 [ТС] | |
|
Вариант может и хороший но точно не мой потому что мне псевдослучайность не нужна!
0
|
|
|
Windows must die
|
||
| 23.03.2023, 15:41 | ||
|
Для истинно случайных чисел нужно нечто очень шумное. Нет шума — нет и энтропии! P.S. Вспомните, как долго приходилось елозить мышкой и стучать по клавишам на компьютере, не подключенном к сети, чтобы нагенерировать более-менее энтропии и получить очередное случайное число через /dev/random. Это сейчас уже быстрей выходит (особенно если есть сеть и другие источники шума). Но таки /dev/urandom — вполне хороший вариант. В том же исходнике, что я в качестве примера привел, случайные числа редко генерируются. Если бы мне нужно было это делать часто, я бы завел стандартный rand, который просто периодически бы реинициализировал при помощи srand от ГСЧ на АЦП.
1
|
||
|
-15 / 3 / 0
Регистрация: 17.12.2015
Сообщений: 296
|
||
| 23.03.2023, 16:13 [ТС] | ||
|
Гена очень хорошо защищён от внешнего воздействия потому на него материальное что то влиять будет крайне мало! Это еще 1 версия источника тестовая, а сейчас источник будет куда лучше. А вообще усилитель надо заливать гелием что бы шумел поменьше мне ж не надо шумов усилителя и АЦП! Вообще покурите тему о подобных генераторах и что они должны быть максимально защищены что бы материальное на них влияло по минимуму!!! А не хватать всё окружающее! Это уже будет приёмник а не генератор шума! PS мне нужен белый шум а не детектор/датчик чего то.
0
|
||
|
|
||||||
| 23.03.2023, 17:38 | ||||||
|
Такое подойдет?
Подробности тут: https://ru.wikipedia.org/wiki/Вихрь_Мерсенна
0
|
||||||
|
-15 / 3 / 0
Регистрация: 17.12.2015
Сообщений: 296
|
||
| 23.03.2023, 18:22 [ТС] | ||
|
А где у него настройки под АЦП, разрядность, дискритизацию, особенности источника? Ведь спектр он не равномерный чем выше частота тем уровень ниже это не сильно конечно всё же это отлично видно на спектре.
Я же сказал что мне нужен алгоритм который не будет ничего придумывать а только собирать эти числа из сигнала! Мне не нужны готовые алгоритмы! Мне нужно лишь сам метод. Например разбить амплитуду и генерить биты так, или наоборот по частоте использовать, скажем переходы через 0 с гистерезисом но или может спектрально. Но как вот о чём! Но по спектру врятли будет слишком много ресурсов отнимать. Может наоборот время от перехода от - до + измерять и из него генерить биты, то есть использовать не амплитуду а частоту. Еще раз пишу что никакой алгоритм которые генерит что то псевдослучайное не применим! Алгоритм должен собирать число по битам что бы получить число с нужной разрядностью из сигнала и точка! Алгоритм должен именно сигнал переводить в число но задача получить заданную разрядность, тупо взять амплитуду не покатит как там разрядность будет хз какая до максимума сигнал доходить не может и собрать более длинные числа надо. Я как бы высказал несколько методов которые отлично работают как бы. Вопрос о том может ли быть что то лучше при условии что надо максимальную производительность.
0
|
||
|
Windows must die
|
|
| 23.03.2023, 18:44 | |
|
Чувак, даже супер-пупер алгоритмы шифрования не парясь используют псевдослучайные числа. "Почти" случайные числа - лишь для инициализации srand.
И все твои "фи" совершенно противоречат изложенному в вопросе. Ты вообще ничего не сказал ни о том, что у тебя за железяка, ни о природе входящего сигнала. Если там реально звук, т.е. псевдослучайная последовательность, то можно любой алгоритм взять, где берутся последовательно несколько выборок и тем или иным образом "перемешиваются". Два варианта тебе уже дали. Есть еще уйма. Если входящий сигнал практически лишен шума, а максимальная частота значительно меньше частоты семплирования, то придется набирать "случайное число" очень долго! И исключительно из 1-2 младших разрядов. Допустим, у тебя предельная входная частота - 100кГц. АЦП 14 разрядов. Сэмплируешь на мегагерце. В худшем случае ты попадешь симметрично вершине - сможешь лишь самый младший разряд использовать. В случае чуть получше (его и будем рассматривать) у тебя будет аж 7-8 младших разрядов. Т.о., если брать последовательно выборки по 8 разрядов (но с запасом: скажем, для uint16_t брать минимум три штуки), а потом их сдвигами и XOR'ами перемешать, вполне себе "почти случайное" число получим. "Истинно случайное" число ты никогда не получишь, используя математику. Да и вообще, как говорит квантовая физика, стоит экспериментатору влезть в ход эксперимента, как всякая случайность будет потеряна (и те же электроны перестанут дифрагировать через щель, ведя себя как будто частицы). Короче говоря, просто посчитай по своей конкретной задаче, что у тебя там выйдет. Ну и почитай про алгоритмы получения "почти" случайных чисел из набора псевдослучайных.
0
|
|
|
-15 / 3 / 0
Регистрация: 17.12.2015
Сообщений: 296
|
||||||
| 23.03.2023, 22:26 [ТС] | ||||||
Вот спектр не совсем правильного гены он хорошо верх заваливает! Но это и не есть гена это просто модуль ГБШППИ для лабораторного усилителя, и модуль не экранированный и вот он 50Гц зацепил!!!!!!
Переименовать в wav как wav не позволило загрузить.
0
|
||||||
|
-15 / 3 / 0
Регистрация: 17.12.2015
Сообщений: 296
|
|
| 04.04.2023, 22:57 [ТС] | |
|
Кому интересно собственно абсолютная генерация чисто из сигнала без математики получается естественное распределение то есть такой горб миним и макс значения самые редкие но и самые частые это что ближе к середине. Но это не отличительная черта я нашёл кажется в сигнале признаки естественного.
Вот если извлекать младший байты посредством MOD там распределение намного ровнее прямо ровно можно сказать всё. Так же работаю над алгоритмом что бы чётко отличить шум от транзисторого источника от программного генератора но кажется есть отличия чёткие и по мне заметные надо только дописать алгоритм. От газоразрядного источника шум немного отличается от транзистора в режиме обратного пробоя, а от стабилитрона вообще чёта невероятно я сам не понял попробую другие и прямое включение диода еще. Если конечно получится чётко и качественно алгоритмически отличать от естественный от искусственного то будет вообще класс тогда получится сразу "заблокировать" любые искусственные источники.
0
|
|
| 04.04.2023, 22:57 | |
|
Помогаю со студенческими работами здесь
13
Работа с АЦП 16 бит ADC161S626 Поведение дочерних окон 32 бит MDI приложения под Windows 7 64 бит Поделить строку на блоки по 12 бит и заменить в каждом блоке случайный бит Самые часто встречающиеся 24 символа кодировать по 5 бит. А все остальные по 10 бит Поменять местами значения бит в заданном количестве пар бит Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога
SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
|