Создание и оценка качества программно-аппаратных генераторов псевдослучайных чисел средствами VBA.
СОЗДАНИЕ И ОЦЕНКА КАЧЕСТВА ПРОГРАММНО-АППАРАТНЫХ ГЕНЕРАТОРОВ ПСЕВДОСЛУЧАЙНЫХ ЧИСЕЛ СРЕДСТВАМИ VBA.
Методическое руководство к лабораторной работе № 3 и №6 по курсу «Информатика» для направления 11.03.03 «Конструирование и технология электронных средств» по профилю «Проектирование и технология радиоэлектронных средств»
Составитель: О. Я. Шамсиахметов
Издательство ИжГТУ имени М. Т. Калашникова Ижевск 2019
УДК 004.43
Рецензент С.В.Клишин, канд. физ.-мат. наук, доцент П.А.Ушаков, доктор техн. наук, профессор
Составитель О.Я.Шамсиахметов, старший преподаватель Рекомендовано к изданию на заседании кафедры «Конструирование радиоэлектронной аппаратуры» ИжГТУ имени М. Т. Калашникова (протокол № 60 от 16.01.2019 г.).
Создание и оценка качества программно-аппаратных генераторов псевдослучайных чисел средствами VBA:методическое руководство к. лаб. раб. № 3 / сост.: О.Я.Шамсиахметов. − Ижевск : Изд-во ИжГТУ имени М. Т. Калашникова, 2019. − 57 с.
Настоящие методические указания определяют последовательность выполнения лабораторной работы по дисциплине «Информатика» и включают в себя рекомендации по созданию прикладных программ программных и аппаратно-программных генераторов псевдослучайных чисел, а также позволяют оценить полученные результаты по по выбранным критериям достоверности.
УДК 004.43
© ИжГТУ имени М. Т. Калашникова, 2019
© Шамсиахметов О.Я., составление, 2019 Лабораторная работа №3 Создание и оценка качества программно-аппаратных генераторов псевдослучайных чисел средствами VBA.
Краткая теория. Случайная величина — это величина, которая принимает в результате опыта одно из множества значений, причём появление того или иного значения этой величины до её измерения нельзя точно предсказать. Последовательность будет случайной только если между символами нет зависимости. Последовательность цифры в числе p считается случайной. Пусть генератор основывается на выводе бит представления числа p, начиная с какой-то неизвестной точки. Такой генератор, возможно и пройдет «тест на следующий бит», так как p, видимо, является случайной последовательностью. Однако этот подход не является надежным — если аналитик определит, какой бит числа p используется в данный момент, он сможет вычислить и все предшествующие и последующие биты. Источники энтропии используются для накопления энтропии с последующим получением из неё начального значения (initial value, seed), необходимого генераторам случайных чисел (ГСЧ) для формирования случайных чисел. Генератор псевдослучайных чисел (ГПСЧ) использует единственное начальное значение, откуда и следует его псевдослучайность, а ГСЧ всегда формирует случайное число, имея в начале высококачественную случайную величину, предоставленную различными источниками энтропии. Информационная энтропия — мера неопределённости или непредсказуемости информации. ГСЧ = ГПСЧ + источник энтропии. Недостатки ГПСЧ : 1. Предсказуемая зависимость между числами. 2. Предсказуемое начальное значение генератора. 3. Малая длина периода генерируемой последовательности случайных чисел, после которой генератор зацикливается.
Линейный конгруэнтный ГПСЧ .
Линейный конгруэнтный метод заключается в вычислении членов линейной рекуррентной последовательности по модулю некоторого натурального числа m, задаваемой следующей формулой:
Xk+1=(a*Xk+b)mod m Если a, b и m подобраны правильно, то генератор будет генератором с максимальным периодом, и его период будет равен m. Например, для линейного конгруэнтного генератора b должно быть взаимно простым с m. В таблице 1 приведены хорошие константы линейных конгруэнтных генераторов, которые обеспечивают максимальный период:
Таблица 1. Константы для линейных конгруэнтных генераторов
Если инкремент b равен нулю, то есть генератор имеет вид:
Xk+1=(a*Xk)mod m
и мы получим самую простую последовательность, которую можно предложить для генератора с равномерным распределением. При соответствующем выборе констант a = 75 = 16807 и m = 231‑1 = 2147483647 получим генератор с максимальным периодом повторения. Эти константы были предложены учеными Парком и Миллером, поэтому генератор вида :
Xk+1=(75*Xk)mod 231-1
называется генератором Парка-Миллера. Преимуществом линейных конгруэнтных генераторов является их быстрота за счет малого количества операций на байт и простота реализации. Иногда используют квадратичные и кубические конгруэнтные генераторы, которые обладают большей стойкостью к взлому. Квадратичный конгруэнтный генератор имеет вид:
Xk+1=(a*X2K+b XK+c) mod m Кубический конгруэнтный генератор задается как:
Xk+1=(a*X3K+b X2K +c XK+d) mod m Для увеличения размера периода повторения конгруэнтных генераторов часто используют их объединение . При этом криптографическая безопасность не уменьшается, но такие генераторы обладают лучшими характеристиками в некоторых статистических тестах.
Аддитивные генераторы . Аддитивные генераторы (называемые иногда запаздывающими генераторами Фиббоначи) очень эффективны, так как их результатом являются случайные слова, а не биты. Начальное состояние генератора представляет собой массив n-битовых слов X1,X2,X3, …,Xm. Это первоначальное состояние и является ключом . i-е слово генератора получается как:
Xi=(Xi-a+Xi-b +Xi-c+...+ Xi-m) mod 2m При правильном выборе коэффициентов a,b,c, …,m период этого генератора не меньше 2m-1. Для этого должно выполнятся условие взаимной простоты коэффициентов a,b,c, …,m. Например, если а = 55, а b = 24, то мы получим аддитивные генератор с максимальным периодом повторения вида:
Xi=(Xi-55+Xi-24) mod 2m
Существует несколько модификаций аддитивных генераторов.
Распределения случайных величин.
Распределению Гаусса подчиняются различные величины. Например, стрельба по мишени – пули будут ложится в мишень по распределению Гаусса. Наиболее кучно в десятку и наименее- по краям. Разумеется, электрический шум (если он не вызван наводкой электрической сети), тоже будет подчиняться этому распределению. Одна из особенностей распределения Пуассона является то, что случайная величина является дискретной. Самой лучшей иллюстрацией событий распределения Пуассона могут быть звонки в какой-нибудь телефонный центр поддержки. Количество звонков поступивших за единицу времени будет случайной величиной. Самое ценное распределение, с точки зрения программиста – это равномерное распределение. Когда случайные числа любой длины, встречаются одинаково часто на всём заданном диапазоне. Другие типы распределений представлены на рисунке 1:
Следует помнить, что есть специальные методы и приемы для поиска зависимостей в последовательности чисел. Как правило, для этой цели используются различные статистические тесты, такие как DIEHARD или NIST. Эндрю Яо в 1982 году доказал, что генератор, прошедший «тест на следующий бит», пройдет и любые другие статистические тесты на случайность, выполнимые за полиномиальное время.
А ппаратный генератор случайных чисел .
Если снять несколько тысяч случайных точек, найти максимальное и минимальное значение, которое принимает случайная величина, взять интервал от минимального значения, которое принимает случайная величина, до максимального значения, которое может принимать случайная величина, разбить этот интервал на равные интервалы и посчитать, сколько случайных величин попадёт в каждый интервал, то получим диаграмму распределения случайной величины. Величина рассеяния случайного события определяется дисперсией (мерой рассеивания). Данный способ построения диаграммы рассеяния случайной величины называется интервальным. Он основан на разбиении исходных численных значений на интервалы. Звуковая карта, в отличие от большинства остальных компонентов компьютера, имеет в себе не только цифровую часть, но и аналоговую. Имеется электрический сигнал от какого-то источника, несущий информацию о звуке. Сигнал поступает в аналоговую часть звуковой карты, где он усиливается, чтобы соответствовать динамическому диапазону АЦП (аналогово-цифрового преобразователя). Сигнал оцифровывается на АЦП с определенными разрешением и частотой дискретизации и поступает в цифровую часть аудиокарты откуда его уже можно получить программно. 1. радиопомехи и наводки от соседних устройств и радиоэфира, 2. помехи электропитания. 3. тепловой шум случайного движения электронов в компонентах электрической схемы . 1. В течении некоторого времени с частотой дискретизации 44100 Гц записываются данные типа integer c одного входного канала (левого или правого) звуковой карты методом импульсно-кодовой модуляции (ИКМ). 2 Данные записываются (сохраняются) в выходной файл в формате WAV (Windows Audio Video). 4. Подсчитываются значения по интервалам диапазона случайных чисел. 5. Строится диаграмма распределение случайных величин. Записывать можно без внешнего сигнала, просто «тишину», младшие биты всё равно получают случайные значения. Делая запись без внешнего сигнала (источника), мы получаем характеристики шума естественно присутствующего в цепях аудиокарты. Другим вариантом может быть запись какого либо сигнала, тогда шум будет проявляться в ошибках оцифровки младших битов. 1. Выбираем микрофонный вход, 2. Выставляем громкость на максимум 3. Снимаем флажок «Выключить». Можно подключить к линейному входу звуковой карты радиоприёмник, тогда вместо микрофонного входа можно использовать линейный вход.
Структура WAV (Windows Audio Video) файла .
Формат WAV изначально использовался в системе Windows для сохранения цифровых аудиоданных. Это самый известный и широко поддерживаемый формат благодаря популярности платформы Windows и большому количеству написанных для неё программ. Почти любая современная программа, работающая со звуком, может прочитать или записать формат WAV, поэтому этот формат очень интересен для разработчиков программного обеспечения. Поскольку формат WAV-файла пришел от операционной системы Windows, в которой традиционно использовались процессоры Intel, все значения данных формата хранятся как Little-Endian, т. е. самый младший значащий байт идет первым (в Big - Endian старший байт идет первым). WAV-файл использует стандартную RIFF-структуру (Resource Interchange File Format формат файла для обмена ресурсами), которая группирует содержимое файла из отдельных секций (chunks) - формат выборок аудиоданных, аудиоданные, и т. п. Каждая секция имеет свой отдельный заголовок секции и отдельные данные секции. Заголовок секции указывает на тип секции и количество содержащихся в секции байт. Такой принцип организации позволяет программам анализировать только необходимые секции, пропуская остальные секции, которые не известны или которые не требуют обработки. Некоторые определенные секции могут иметь в своем составе подсекции (sub-chunks). Небольшая тонкость, связанная с секциями файла RIFF , состоит в том, что адреса начала секций должны быть выровнены на размер слова (2 байта). Это означает, что общий размер секции должен быть кратен 2. Если секция содержит нечетное число байт данных (невыравненное до 2 байт), то добавляется дополнительный нулевой байт данных в конец данных секции. Этот дополнительный байт не учитывается в размере секции заголовка, таким образом программа всегда должна учитывать выравнивание для расчета смещения начала следующей секции. Важно понять, что формат RIFF не описывает конкретный формат данных; практически файл в RIFF-формате может содержать любые мультимедиа-данные, причем формат конкретных данных зависит от типа этих данных (RIFF является скорее стандартом описания контейнера данных). Обозначенная как ‘Данные’ область может содержать внутри себя другие фрагменты. Для содержащего звуковые данные файла (WAV-файл) эта область содержит идентификатор данных ‘WAVE’, фрагмент формата звуковых данных ‘fmt’ (три символа ‘fmt’ и пробел в конце), а также фрагмент звуковых данных. Файл может дополнительно содержать фрагменты других типов, поэтому не следует предполагать, что заголовок WAV-файла имеет фиксированный формат. Например, в формате могут присутствовать фрагменты ‘LIST’ или ‘ABOUT’, содержащие информацию о правах копирования и описание самого мультимедиа-файла. Означенная как ‘Формат данных’ область описывает звуковые данные. Рассмотрим файл мультимедиа с расширением .wav ( Windows PCM ( pulse code modulation )). Он состоит из двух частей: 1. заголовок файла 2. область данных. В заголовке файла хранится информация о: 1. размере файла. 2. количестве каналов. 3. частоте дискретизации. 4. количестве бит в сэмпле (глубина звучания).
Звук состоит из колебаний, которые при оцифровке приобретают ступенчатый вид. Этот вид обусловлен тем, что компьютер может воспроизводить в любой короткий промежуток времени звук определенной амплитуды (громкости). Продолжительность промежутка определяется частотой дискретизации (количество отсчетов в секунду). Например, имеется файл с частотой дискретизации 44.1 kHz, это значит, что короткий промежуток времени равен 1/44100 секунды (следует из размерности величины Гц = 1/с). Современные звуковые карты поддерживают частоту дискретизации до 192 kHz. От амплитуды (громкости звука в коротком промежутке времени) зависит точность звука. Амплитуда выражается числом, занимаемым в памяти (файле) 8, 16, 24, 32,64 бит (теоретически можно и больше). Как известно, 8 бит = 1 байт, следовательно, какая-то одна амплитуда в какой-то короткий промежуток времени в памяти (файле) может занимать 1, 2, 3, 4, 8 байт соответственно. Таким образом, чем больше число занимает места в памяти (файле), тем больше диапазон значений для этого числа, а значит и для амплитуды. 1 байт – 0..255 2 байта – 0..65 535 3 байта – 0..16 777 216 4 байта – 0..4 294 967 296 В моно варианте значения амплитуды расположены последовательно. В стерео варианте сначала идет значение амплитуды для левого канала, затем для правого, затем снова для левого и так далее. Совокупность амплитуды и короткого промежутка времени носит название сэмпл.
Структура WAV файла следующая:
Таблица 2. Структура WAV файла.
Длина заголовка составляет 44 байта, далее следует блок данных. Формат самих звуковых данных зависит от количества каналов и от дискретности. Для монофонического сигнала с дискретностью 8 бит звуковые данные представляют собой массив однобайтовых значений, каждое из которых является выборкой сигнала.
Общая структура WAV-файла представлена на рисунке 2:
Рис. 2. Формат wav-файла.
Секция данных Wave (Wave Data Chunk) содержит данные цифровых выборок аудиосигнала, которые можно декодировать с использованием формата и метода компрессии, указанных в секции формата Wave (Wave Format Chunk). Если код компрессии 1 (несжатый PCM, Pulse Code Modulation), то данные представлены в виде сырых, непреобразованных (raw) величин выборок. Аудиовыборки многоканального цифрового аудио сохраняются как чередуемые (interlaced) данные, которые просто означают последовательные аудиовыборки нескольких каналов (таких как стерео и каналы окружения surround). Выборки каналов сохранены последовательно друг за другом, перед тем как произойдет переход к следующему времени выборки. Это сделано с целью возможности последовательного проигрывания файла даже тогда, когда еще не весь файл прочитан целиком. Это удобно, когда проигрывается большой файл с диска (который не может быть размещен целиком в памяти) или файл передается в последовательном потоке данных через сетевое соединение (например, Интернет).
Метод расчета критерия c 2 ( хи-квадрат ).
Чтобы представить, как выглядит полученное в ходе эксперимента множество результатов, лучше всего построить их частотное распределение и для полученной кривой указать следующие ее характеристики: среднее арифметическое (М); среднее квадратичное отклонение (σ); дисперсию (σ 2); Когда эти описательные статистики подсчитываются применительно к очень большой по численности группе испытуемых (тысячи и миллионы ), то сама эта группа называется «генеральной совокупностью», а описательные статистики называются «параметры» совокупности. Такое различие в названиях призвано подчеркнуть, что описательные статистики, которые обычно рассчитываются для малых выборок, могут не совпадать с показателями, рассчитанными для того же признака на огромных выборках, т.е. будут иметь место расхождения М, σ и остальных показателей. Конечно, показатели, которые получены на очень больших выборках, являются более надежными, поскольку показывают не случайные, а стабильные (устойчивые) тенденции в распределении результатов. Поэтому, чтобы подчеркнуть надежность описательных статистик, выведенных на генеральной совокупности данных, их стали называть «параметрами», рассматривая их как своего рода устойчивые стандарты для изучаемого признака или характеристики. В этой связи те критерии, при расчете которых используются параметры (или описательные статистики) получили название – «параметрических критериев». К числу параметрических относятся: критерии F и t, а также коэффициент корреляции r. Но помимо данного вида критериев в статистике существует еще одна группа критериев, которые называются «непараметрические». Они называются так потому, что не опираются в своих расчетах на параметры (описательные статистики), а используют совершенно другие показатели. Рассмотрим непараметрический критерий «хи-квадрат» - c 2 . В этом мире одни события могут возникать одинаково часто, а могут встречаться с разной вероятностью, и описать данную вероятность довольно сложно. Можно, например, сказать, что такое природное явление, как дождь наиболее более вероятно в осенний период для нашего региона и наименее вероятно в зимний период, а в весенний и летний период примерно равновероятно. Предположим, что руководство синоптической службы решило оценить, можно ли считать расхождения в ожидаемых и реальных частотах появления природных феноменов существенными. На языке статистики это означало проверить расхождения в ожидаемых и реальных частотах на достоверность различий. Этот метод называется расчет критерия хи-квадрат. Сам критерий хи-квадрат обозначается греческой буквой χ2. Суть критерия заключается в том, что он сравнивает ожидаемые частоты появления каких-то событий и фактические частоты появления этих событий. Фактические частоты, которые иногда называют наблюдаемые частоты, принято обозначать буквой f о (поскольку f — это начальная буква в слове «frequencies», т. е. частоты, а значок «о» внизу относится к слову «observe», что значит «наблюдать»). Ожидаемые частоты обозначаются буквой f е (значок «е» внизу относится к слову «expect», что значит «ожидать»). Формула расчета критерия: Разберем пример с использованием данного критерия. Предположим, что вам поручили оценить, насколько хорошо работает метеослужба какого-то региона, данные которой используются аэропортами для планирования полетов. В первом столбце приведенной ниже таблицы 3 указаны дни с различными природными явлениями (снег, дождь и т.п.), в следующем столбце — наблюдавшаяся по факту частота появления этих дней в течение одного из зимних месяцев и прогнозируемая (ожидавшаяся) метеослужбой частота этих явлений.
Таблица 3. Пример метеоданных .
Вычислим экспериментальное значение хи-квадрат по формуле:
Популярное: Почему стероиды повышают давление?: Основных причин три... Почему человек чувствует себя несчастным?: Для начала определим, что такое несчастье. Несчастьем мы будем считать психологическое состояние... Модели организации как закрытой, открытой, частично открытой системы: Закрытая система имеет жесткие фиксированные границы, ее действия относительно независимы... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (372)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |