Шрифт:
Вместе с тем упомянутые свойства регистра сдвига верны только для всей последовательности из 2n— 1 бит, взятой как одно целое. Если вы используете фрагмент полной битовой последовательности, то его свойства будут довольно точно аппроксимировать случайный автомат для подбрасывания монеты. Представьте себе аналогичный процесс — извлечение красных и синих шаров наугад из урны, в которую вначале помещены К шаров (половина красных, половина синих). Если вы вытаскиваете шары без возвращения, то сначала вы рассчитываете получить почти случайную статистику. По мере убывания шаров в урне статистика изменяется за счет того, что общее число красных и синих шаров должно оставаться тем же самым.
Представление о том, как это происходит, можно получить, вновь вернувшись к случайному блужданию. Если предположить, что единственным «неслучайным» свойством последовательности является точное равенство «1» и «0» (не обращая внимание на одну лишнюю «1»), то можно показать, что описанное случайное блуждание после r вытаскиваний из общей «популяции» К/2 единиц и К/2 нулей приведет к среднему расстоянию от начальной точки, равному
Х = [r(К — r)/(К — 1)]1/2.
(Этим выражением мы обязаны . М. Purcell.) Поскольку при полностью случайном блуждании X равно корню квадратному из r, коэффициент (К — r /(К — 1) отражает влияние конечных содержимых урны. Пока r << К, случайность блуждания чуть-чуть отличается от случая абсолютно случайного блуждания, и генератор псевдослучайной последовательности практически неотличим от реального автомата. Мы проверили это на нескольких тысячах случайных блужданий под управлением ПСП (каждое в несколько тысяч шагов) и обнаружили идеальную случайность по этому простому критерию.
Тот факт, что генераторы ПСП выдерживают этот тест, разумеется, не гарантирует, что они будут удовлетворять и более сложным тестам на случайность, например тестам на корреляцию более высокого порядка. Такие корреляционные зависимости также оказывают влияние на свойства аналогового шума, генерируемого путем фильтрации ПСП. Несмотря на то что амплитуда шума имеет гауссово распределение, возможно наличие корреляции амплитуд более высокого порядка, не свойственной настоящему случайному шуму. По этому поводу сейчас принято считать, что чем больше отводов участвует в обратной связи (предпочтительно порядка m/2), тем «лучше» шумовые свойства (при использовании для формирования последовательных входов дерева четности на элементах ИСКЛЮЧАЮЩЕЕ ИЛИ).
Те, кто проектирует генераторы шумов, должны познакомиться со сдвиговым регистром переменной длины в КМОП-логике 4557 (от 1 до 64 разрядов); конечно, вы должны использовать его в сочетании с регистром с параллельным выходом (типа `4015 или `164) для того, чтобы обеспечить n отводов.
В разд. 7.20 обсуждается вопрос о шумах и приводится пример генератора «розового» шума на ИМС регистра максимальной длины ММ5437.
9.38. Цифровые фильтры
Последний пример затронул интересную тему цифровой фильтрации, в данном случае формирование НЧ-сигнала путем взвешенного суммирования 32 значений псевдослучайной последовательности, каждое из которых соответствует уровню напряжения 0 или +12 В. На вход такого «фильтра» поступают сигналы, которые могут иметь только два уровня напряжения. Вообще говоря, то же самое можно сделать с аналоговым сигналом на входе, образуя взвешенную сумму его значений (xi), распределенных во времени через равные интервалы
Здесь xi являются дискретными выборками из входного сигнала, hk — весовые коэффициенты, а yi – значения выходного сигнала. В реальных условиях цифровой фильтр будет суммировать только конечное множество входных значений, как, например, в генераторе шума, где было использовано 32 члена. На рис. 9.91 схематично показано, как это происходит.
Рис. 9.91. Нерекурсивный цифровой фильтр.
Заметьте, что такой фильтр может обладать интересным свойством симметричности во времени, т. е. усреднением прошлого и будущего для того, чтобы сформировать текущее значение выхода.
Разумеется, реальные аналоговые фильтры умеют лишь смотреть в прошлое и соответствуют цифровым фильтрам с ненулевыми весовыми коэффициентами только при k >= 0.