|
Генератор случайных чисел |
|
|
|
Feb 6 2017, 09:35
|
Участник

Группа: Участник
Сообщений: 47
Регистрация: 23-04-07
Пользователь №: 27 256

|
Надо сделать на ПЛИС генератор случайных чисел (например 16-разрядных) 1. Можно ли для этого просто взять выходы 16-р (или более длинного) сдвигового регистра (генератора м-последовательности)? 2. Как затем получить нормальное распределение имея на входе равномерное?
|
|
|
|
|
Feb 6 2017, 09:44
|
Участник

Группа: Участник
Сообщений: 47
Регистрация: 23-04-07
Пользователь №: 27 256

|
спасибо! нет ли какой нибудь ссылки?
|
|
|
|
|
Feb 6 2017, 10:01
|
Местный
  
Группа: Участник
Сообщений: 453
Регистрация: 23-07-08
Пользователь №: 39 163

|
Цитата(MNP @ Feb 6 2017, 12:35)  Надо сделать на ПЛИС генератор случайных чисел (например 16-разрядных) 1. Можно ли для этого просто взять выходы 16-р (или более длинного) сдвигового регистра (генератора м-последовательности)? 2. Как затем получить нормальное распределение имея на входе равномерное? 1 - Можно, но генератор выйдет так себе. Почитайте про Mersienne twister 2 - Посмотрите на Box-Muller transform и Ziggurat algorithm
|
|
|
|
|
Feb 6 2017, 11:12
|
Участник

Группа: Участник
Сообщений: 47
Регистрация: 23-04-07
Пользователь №: 27 256

|
Цитата(andyp @ Feb 6 2017, 13:01)  1 - Можно, но генератор выйдет так себе. Почитайте про Mersienne twister 2 - Посмотрите на Box-Muller transform и Ziggurat algorithm 1.- так себе - это значит - обычная псп, а не более крутая, как например коды Голда? если да, то это сойдет, т.к. цель - создать шум и замешать его с сигналом; то есть получим поток из (2^n -1) 16-р. чисел с равномерным распределением? 2- спасибо, посмотрю
|
|
|
|
|
Feb 6 2017, 12:32
|
Участник

Группа: Участник
Сообщений: 47
Регистрация: 23-04-07
Пользователь №: 27 256

|
понятно, что 15р и 17р регистры требуют для псп меньше обратных связей , чем 16р.
я только не понял, о чем код: если это про 8р псп , то вроде бы не те обратные связи (должны быть с 4 выходов)?
|
|
|
|
|
Feb 6 2017, 13:44
|
Знающий
   
Группа: Свой
Сообщений: 608
Регистрация: 10-07-09
Из: Дубна, Московская область
Пользователь №: 51 111

|
Цитата(MNP @ Feb 6 2017, 12:35)  Надо сделать на ПЛИС генератор случайных чисел (например 16-разрядных) 1. Можно ли для этого просто взять выходы 16-р (или более длинного) сдвигового регистра (генератора м-последовательности)? 2. Как затем получить нормальное распределение имея на входе равномерное? А какую "символьную частоту" требуется получить? Делал на макс10 генератор псевдослучайных чисел используя 16-ть конгруэнтных генераторов с периодом 2^16 каждый на одном умножителе 18*18. Получил среднее 32768 с эксцессом 2,97 (у НР 3). Символьная получилась чуть выше 250 тыс. значений в секунду. Если использовать 16 умножителей - скорость можно поднять до 4..5 миллионов/с.
|
|
|
|
|
Feb 6 2017, 17:01
|
Профессионал
    
Группа: Свой
Сообщений: 1 700
Регистрация: 2-07-12
Из: дефолт-сити
Пользователь №: 72 596

|
весьма советую ознакомится, во-первых с XAPP052 (July 7,1996) https://www.xilinx.com/support/documentatio...tes/xapp052.pdfтам есть прекрасная таблица полиномов для PRBS-генераторов.
во-вторых, есть прекрасная технология получения случайных промежутков времени, используя время захвата частоты PLL. т.е. между сбросом PLL и установлением сигнала Locked - время недетерминированное. читай - случайное. исходя из этого можно заряжать новый цикл длинного PRBS новым числом. дальше я думаю разжёвывать смысла нет.
--------------------
провоцируем неудовлетворенных провокаторов с удовольствием.
|
|
|
|
|
Feb 6 2017, 18:01
|
Участник

Группа: Участник
Сообщений: 69
Регистрация: 10-01-10
Пользователь №: 54 704

|
У Xilinx есть пример как сделать защиту прошивки ПЛИС от копирования при помощи DS2432 (1-wire EEPROM with SHA-1 engine). В проекте ПЛИС, в том числе, сделан генератор случайных чисел: LFSR работающий от двух генераторов на инверторах с линиями задержки. За счет того, что частота генераторов "гуляет" от напряжения и температуры случайные числа получаются не псевдослучайными, а случайными... xapp780 архив
|
|
|
|
|
Feb 6 2017, 18:42
|
Местный
  
Группа: Участник
Сообщений: 453
Регистрация: 23-07-08
Пользователь №: 39 163

|
Цитата(MNP @ Feb 6 2017, 14:12)  1.- так себе - это значит - обычная псп, а не более крутая, как например коды Голда? если да, то это сойдет, т.к. цель - создать шум и замешать его с сигналом; то есть получим поток из (2^n -1) 16-р. чисел с равномерным распределением? Период короткий. Не получите. Если брать весь регистр состояния каждый такт, то биты в соседних числах будут сильно статистически связаны. Поэтому получите только 2^n-1 псевдослучайных бит (Ну т.е. (2^n-1)/16 16-ти битных чисел). На высокой частоте период будет пролетать очень быстро. Для сравнения, период твистера Мерсенна 2^19937−1 32-разрядных чисел.
|
|
|
|
Guest_TSerg_*
|
Feb 6 2017, 22:44
|
Guests

|
"Всем новичкам хочется быть первопроходцами" (С)
|
|
|
|
|
Feb 7 2017, 07:41
|
Участник

Группа: Участник
Сообщений: 47
Регистрация: 23-04-07
Пользователь №: 27 256

|
Цитата(blackfin @ Feb 6 2017, 21:49)  Таких тем на форуме уже было полно: Генератор псевдослучайных чисел.. я, само собой, сначала потыркал 'поиском', но этой ссылки (за которую отдельное спасибо), и ничего похожего - не выскочило. Спасибо всем за ответы. Во всяком случае теперь есть отправные точки. Надо переварить.
|
|
|
|
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|