реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Генератор случайных чисел
MNP
сообщение Feb 6 2017, 09:35
Сообщение #1


Участник
*

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



Надо сделать на ПЛИС генератор случайных чисел (например 16-разрядных)
1. Можно ли для этого просто взять выходы 16-р (или более длинного) сдвигового регистра (генератора м-последовательности)?
2. Как затем получить нормальное распределение имея на входе равномерное?
Go to the top of the page
 
+Quote Post
Tanya
сообщение Feb 6 2017, 09:39
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 8 518
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(MNP @ Feb 6 2017, 12:35) *
2. Как затем получить нормальное распределение имея на входе равномерное?

Есть такая предельная теорема - сумма большого числа (фиксированного) случайных чисел с любым распределением - дает гауссово распределение.
Go to the top of the page
 
+Quote Post
MNP
сообщение Feb 6 2017, 09:44
Сообщение #3


Участник
*

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



спасибо! нет ли какой нибудь ссылки?
Go to the top of the page
 
+Quote Post
andyp
сообщение Feb 6 2017, 10:01
Сообщение #4


Местный
***

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



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


1 - Можно, но генератор выйдет так себе. Почитайте про Mersienne twister
2 - Посмотрите на Box-Muller transform и Ziggurat algorithm

Go to the top of the page
 
+Quote Post
Tanya
сообщение Feb 6 2017, 10:02
Сообщение #5


Гуру
******

Группа: Модераторы
Сообщений: 8 518
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(MNP @ Feb 6 2017, 12:44) *
спасибо! нет ли какой нибудь ссылки?

https://ru.wikipedia.org/wiki/%D0%A6%D0%B5%...%B5%D0%BC%D0%B0
Так и называется - центральная предельная теорема
Go to the top of the page
 
+Quote Post
MNP
сообщение Feb 6 2017, 11:12
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 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- спасибо, посмотрю
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Feb 6 2017, 11:34
Сообщение #7


Гуру
******

Группа: Участник
Сообщений: 3 498
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



Код
process
begin
  if ct(22)'event and ct(22) = '1' then
      if rnd(6) = rnd(0) then
        rnd(7 downto 1) <= rnd(6 downto 0);
        rnd(0) <= '1';
      else
        rnd(7 downto 1) <= rnd(6 downto 0);
        rnd(0) <= '0';
    end if;
  end if;
end process;

только регистр делайте не 16, а 15 или 17 бит
Go to the top of the page
 
+Quote Post
MNP
сообщение Feb 6 2017, 12:32
Сообщение #8


Участник
*

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



понятно, что 15р и 17р регистры требуют для псп меньше обратных связей , чем 16р.

я только не понял, о чем код: если это про 8р псп , то вроде бы не те обратные связи (должны быть с 4 выходов)?
Go to the top of the page
 
+Quote Post
Александр77
сообщение Feb 6 2017, 13:44
Сообщение #9


Знающий
****

Группа: Свой
Сообщений: 563
Регистрация: 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 миллионов/с.
Go to the top of the page
 
+Quote Post
krux
сообщение Feb 6 2017, 17:01
Сообщение #10


Профессионал
*****

Группа: Свой
Сообщений: 1 565
Регистрация: 2-07-12
Из: дефолт-сити
Пользователь №: 72 596



весьма советую ознакомится, во-первых с XAPP052 (July 7,1996)
https://www.xilinx.com/support/documentatio...tes/xapp052.pdf
там есть прекрасная таблица полиномов для PRBS-генераторов.
Прикрепленное изображение

во-вторых, есть прекрасная технология получения случайных промежутков времени, используя время захвата частоты PLL.
т.е. между сбросом PLL и установлением сигнала Locked - время недетерминированное. читай - случайное.
исходя из этого можно заряжать новый цикл длинного PRBS новым числом.

дальше я думаю разжёвывать смысла нет.
Go to the top of the page
 
+Quote Post
zxcv
сообщение Feb 6 2017, 18:01
Сообщение #11


Участник
*

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



У Xilinx есть пример как сделать защиту прошивки ПЛИС от копирования при помощи DS2432 (1-wire EEPROM with SHA-1 engine).
В проекте ПЛИС, в том числе, сделан генератор случайных чисел: LFSR работающий от двух генераторов на инверторах с линиями задержки.
За счет того, что частота генераторов "гуляет" от напряжения и температуры случайные числа получаются не псевдослучайными, а случайными...
xapp780 архив
Go to the top of the page
 
+Quote Post
andyp
сообщение Feb 6 2017, 18:42
Сообщение #12


Местный
***

Группа: Участник
Сообщений: 423
Регистрация: 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-разрядных чисел.
Go to the top of the page
 
+Quote Post
blackfin
сообщение Feb 6 2017, 18:49
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 2 658
Регистрация: 18-04-05
Пользователь №: 4 261



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

Таких тем на форуме уже было полно: Генератор псевдослучайных чисел..

"Ищите и обрящете.." biggrin.gif
Go to the top of the page
 
+Quote Post
Guest_TSerg_*
сообщение Feb 6 2017, 22:44
Сообщение #14





Guests






"Всем новичкам хочется быть первопроходцами" (С)
Go to the top of the page
 
+Quote Post
MNP
сообщение Feb 7 2017, 07:41
Сообщение #15


Участник
*

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



Цитата(blackfin @ Feb 6 2017, 21:49) *
Таких тем на форуме уже было полно: Генератор псевдослучайных чисел..


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

Спасибо всем за ответы. Во всяком случае теперь есть отправные точки. Надо переварить.
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th September 2017 - 08:02
Рейтинг@Mail.ru


Страница сгенерированна за 0.0146 секунд с 7
ELECTRONIX ©2004-2016