5

Я хочу генерировать случайные числа в определенном диапазоне (от 1 до 26), используя файл .wav только со статическим шумом.

Результаты должны быть повторяемыми.

Есть ли какая-либо служба / программа / метод для достижения этой цели в Windows 7?

3 ответа3

6

Попробуйте модуль Python scipy,

import scipy.io.wavfile as sio

data = sio.read(FILENAME)
data = data[1].astype('float')
data -= data.min()
data *= 25.0*data.max()
data += 1

Данные теперь являются векторными и могут быть сохранены или использованы для дальнейшей обработки и т.д.

Например, если вы просто хотите сохранить выходные данные в виде файла csv (значения, разделенные запятыми), вы можете использовать

import csv
fout = open('output.csv', 'w')
wrt = csv.writer(fout)
wrt.writerow(data)
fout.close()
0

Если файл закодирован в формате PCM, вы можете использовать wave модуль Python для считывания сэмплов в файле, а затем сложить значения в диапазон.

0

Я создал настоящий файл случайных чисел, используя радиоволны AM или то, что обычно называется белым шумом. Я сделал это в Linux, поэтому, если вы хотите, выполните следующие действия. 1. Используйте свое радио, которое имеет AM. 2. поместите частоту где-нибудь между радиоканалами - вы должны получить белый шум от радиоволн и других магнитных помех ... 3. использовать дистрибутив Linux (на основе Debian / Redhat) - я использовал Ubuntu. 4. Установите приложение "sox" (связка), в котором есть небольшое приложение "rec", которое вы будете использовать 5. после того, как вы установили sox, поместите микрофон на динамики, чтобы они могли записывать "белый шум", и используйте команду:

rec -c 1 -r 8000 -t wav -e signed-integer randomWAVfile

вкратце:-c 1 (вы используете один канал)-r 8000 (сэмплирование 8000 Гц)-t wav (форматировать файл как wav)-e знаковое целое число (и читает 16 бит одновременно)randomWAVfile - (файл имя - по вашим личным предпочтениям)

У вас будет файл со случайным шумом, который "форматируется" как wav-файл (он содержит wav-заголовок из 14 битов - если я не ошибаюсь)

чтобы вырезать заголовок и "удалить" потенциальные дубликаты, используйте эту программу, написанную на C Риком Ван Рейнном

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

Ссылка на исходный код :исходный код Openfortress

и нажав файл вниз через программу:

cat randomWAVfile | ./noise-filter > randomBits

Вы получите файл TRNG.

Я полагался на это, используя эту ссылку. единственное, что парень, создавший оригинальное руководство, использовал древние версии linux, работающие с OSS (open sound sys), а не alsa.

Исходное сообщение:Оригинальная ссылка Openfortress

ура

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .