Искусство схемотехники. Том 2 (Изд.4-е) - Хоровиц Пауль (читать книги бесплатно полностью без регистрации .txt) 📗
Вместе с тем упомянутые свойства регистра сдвига верны только для всей последовательности из 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.
Частотная характеристика симметричного фильтра. Можно показать, что частотная характеристика симметричного фильтра (hk = h-k) имеет вид
где tотс — время между выборками (отсчетами). Нетрудно заметить, что hk представляют собой коэффициенты разложения в ряд Фурье требуемой частотной характеристики. Это объясняет, почему в случае представленной ранее схемы генератора весовые коэффициенты были выбраны в соответствии с функцией (sin x)/x: они являются компонентами Фурье заграждающего НЧ-фильтра. В таких симметричных фильтрах фазовый сдвиг на любой частоте либо равен 0, либо 180°.
Рекурсивные фильтры. Можно получить интересный класс цифровых фильтров, если на вход фильтра в дополнение к внешнему входному сигналу подать собственный выходной сигнал фильтра. Такой фильтр можно рассматривать как фильтр с обратной связью. Он имеет причудливое название рекурсивный фильтр (или с бесконечной импульсной характеристикой) в противоположность рассмотренному выше нерекурсивному (с конечной импульсной характеристикой) фильтру. Можно, например, сформировать выходной сигнал в соответствии со следующим выражением:
yi= Ayi-1 + (1 — A)xi
Это соответствует низкочастотной характеристике, эквивалентной той, которой обладает простой низкочастотный RC-фильтр
А = е-tотс/RC
где tотс - интервал времени между последовательными выборками хi из входного сигнала. Эта ситуация, конечно, не является идентичной ситуации с аналоговым низкочастотным фильтром, работающим с аналоговым сигналом, по причине дискретной природы отсчетов.
Пример НЧ-фильтра. В качестве числового примера предположим, что вам требуется отфильтровать ряд числовых значений, соответствующих сигналу с затуханием 3 дБ на частоте f3 дб = 1/20tотс. Таким образом, постоянная времени соответствует интервалу времени 20 последовательных отсчетов. В этом случае А = 0,95123, а выходной сигнал определяется по выражению yi = 0,95123yi-1 + 0,04877хi. С увеличением постоянной времени относительно времени между отсчетами tотс приближение к реальному НЧ-фильтру улучшается.
Для обработки данных уже представленных в виде дискретных отсчетов, как, например, массив данных в компьютере, вы, возможно, предпочтете использовать такой фильтр. Рекурсивный фильтр при этом будет реализовываться с помощью однократного прохода по данным с тривиальной арифметической обработкой. Программа НЧ-фильтра на языке Фортран будет выглядеть следующим образом:
A = exp(-TS/TC)
В = 1. — А
DO 10I = 2,N
10X(I) = A*X(I — 1) + B*X(I),