Перейти к содержанию
    

Генерация случайных величин с заданным законам распределения

Привет всем! Посоветуйте какие-нибудь материалы по аппаратной реализации генераторов случайных величин с заданными законами распределения.

Изменено пользователем gin

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сделайте генератор случайных чисел, а затем функцией подгоните под нужный закон распределения.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

да, проще всего 0чень длинный генератор случ. чисел. Из отсчетов которого впоследствии "отобрать" нужные отсчеты (для получения произвольной ПРВ) или функциональными преобразованиями (по интегральным формулам)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

eugen_pcad_ru

Изначально я использую генератор с равномерным распределением на основе 32-х разрядного сдвигового регистра, затем за несколько тактов формирую из значений этого регистра число, которое является адресом памяти в которой хранится таблица значений. Тем самым на выходе формируется случайная величина на основе таблицы. Только возникают вопросы по поводу сдвигового регистра, - какое начальное значение он должен иметь и какие его разряды брать для генерации случайного значения?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если речь идет о LFSR, то разряды можно брать любые, как мне кажется, и только количество разрядов влияет на длину цикла.

А начальное значение должно быть случайным. Откуда его взять - вопрос.

Точнее, начинать можно с любого не нулевого значения, но крутить случайное количество циклов.

Нужен источник шума.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Только возникают вопросы по поводу сдвигового регистра, - какое начальное значение он должен иметь и какие его разряды брать для генерации случайного значения?

http://www.xilinx.com/support/documentatio...tes/xapp052.pdf

 

 

 

Если речь идет о LFSR, то разряды можно брать любые, как мне кажется, и только количество разрядов влияет на длину цикла.

Вы ошибаетесь :)

 

 

Попробуйте в 4-х битном LFSR ксорить 3 и 2 биты. А попробуйте 3 и 1. Начальное значение возьмите, к примеру, "1111".

В первом случае у нас период будет 15 (это максимум для 4-х битного регистра). А вот что будет во втором:

1111

0111

0011

1001

1100

1110

1111

Как видно, период немного сократился. :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Прошу прощения, если выразился неточно или неправильно понял вопрос.

Безусловно, от выбора полинома зависит период, а от того, какие из регистра брать биты в качестве случайного значения - без разницы.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Прошу прощения, если выразился неточно или неправильно понял вопрос.

Безусловно, от выбора полинома зависит период, а от того, какие из регистра брать биты в качестве случайного значения - без разницы.

 

Ааа. Теперь понял. :)

Возможно, Вы как раз правильно поняли автора, а я - нет. :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Привет всем! Посоветуйте какие-нибудь материалы по аппаратной реализации генераторов случайных величин с заданными законами распределения.

Так это целый раздел в электронике! Всё будет псевдослучайным. Единственный шанс,- завязать всё на внешний шумовой диод.

Я для скорости иногда беру таблицу и жмакаю адресный счётчик. Всё равно псевдо!...

 

Кстати, для интереса можете глянуть специальные ИМС цифровых генераторов шума(На память не помню!). Там можно глянуть цепи отвода от сдвигового регистра...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если брать 10 соседних слов из генератора на LSFR и их сложить,

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

получится случайное число с нормальным распределением.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Замечательная ссылка, похоже, у Ксайлинкса есть ответы на любые вопросы ))

 

Биты я имел ввиду именно те, которые надо брать для операции XOR. Возьму их, как рекомендует Ксайлинкс. Единственно вопрос, как брать начальное значение регистра, наверное можно использовать значение со счетчика, останавливаемого от внешнего случайного события.

 

Так это целый раздел в электронике! Всё будет псевдослучайным. Единственный шанс,- завязать всё на внешний шумовой диод.

Я для скорости иногда беру таблицу и жмакаю адресный счётчик. Всё равно псевдо!...

 

Кстати, для интереса можете глянуть специальные ИМС цифровых генераторов шума(На память не помню!). Там можно глянуть цепи отвода от сдвигового регистра...

 

Ну мне истинно случайные значения и не нужны, мне псевдослучайных с периодом повторения 1 год за глаза хватит

 

Если брать 10 соседних слов из генератора на LSFR и их сложить,

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

получится случайное число с нормальным распределением.

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Только нужно исключить состояние, когда все разряды регистра равны 1. В XAPP052 используются элементы XNOR (исключающее ИЛИ - НЕ). Поэтому можно начать генерацию ПСП с нулевого состояния регистра.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяюсь к теме, генерато случайных чисел тоже нужен. Я не очень хорошо понимаю аппаратную основу, сорри если вопросы глупые :)

1) А можно как-то внутри ПЛИС получить шум, м.б. сделать кусок схемы нестабильным, ну я не очень понимаю как, но сломать то наверное можно. Скажем сделать какую-то часть асинхронной.

2) А как сделать на основе шумового диода? Что еще для этого подойдет, какие внешние элементы, чтобы сделать шум?

Допустим для начала, что мне нужно равномерное распределение от 0 до 1 (плавающая точка).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нагуглилось лишь непонятно где покупаемое http://www.fdkamerica.com/catalog/pdf/HM-RAE001.pdf

Хорошо, сделаем из чего-то на плате или в микросхеме генератор шума, заведем его в FPGA, синхронизируем.

А как докажем, что генератор соответствует требованиям задачи?.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...