Глава 9. Цифра и аналог: сопряжение, АЦП, ЦАП, ФАПЧ
9.6. Псевдослучайные последовательности и шум
Как регистр сдвига с обратной связью через ИСКЛЮЧАЮЩЕЕ ИЛИ притворяется подброшенной монетой; последовательности максимальной длины и их свойства; спектр и напряжение шума; аналоговая и цифровая фильтрация; нерекурсивные, рекурсивные и коммутируемые фильтры; синусоида из счётчика Джонсона.
9.6.1Шум из цифровой схемы: зачем и как
- Регистр сдвига с обратной связью через XOR выдаёт псевдослучайнуюПсевдослучайная последовательность ведёт себя как случайная, но в точности повторяется через тактов регистра. последовательность бит — полностью предсказуемую, но статистически похожую на бросания монеты.
- Фильтр нижних частот превращает её в гауссов белый шумБелый шум — мощность на герц одинакова во всей полосе; гауссов — мгновенные значения распределены по нормальному закону. Таков тепловой шум резистора. ограниченной полосы; взвешенная сумма разрядов регистра — это уже цифровой фильтр.
- ПСП нужны и без всякого шума: шифрование, помехоустойчивые коды, радиолокация, компактные делители на n.
Как проверить усилитель или фильтр, не подавая на вход по очереди сотни синусоид? Подать сразу все частоты — шум. Хороший генератор шума нужен в акустике (измерение АЧХАЧХ — зависимость коэффициента передачи синусоиды от частоты. зала и громкоговорителей), в радиотехнике (шумовая температура приёмника), при испытаниях на вибрацию. Получить его чисто аналоговыми средствами, от шумящего диода или резистора, можно, но капризно. Удивительно, но простая цифровая схема справляется лучше.
Речь о псевдослучайных двоичных последовательностях (ПСП) — красивом примере союза аналоговой и цифровой техники. Последовательность бит (или многоразрядных слов) с теми же вероятностями и корреляциями, что у идеальной «машины для подбрасывания монеты», получается на удивление просто. Её порождает обычная детерминированная схема — регистр сдвигаРегистр сдвига — цепочка D-триггеров с общим тактом (выход каждого — на вход следующего): по каждому фронту слово сдвигается на один разряд., — так что она предсказуема и повторяема. И всё же любой её отрезок по всем статистическим признакам выглядит случайным набором нулей и единиц. Некоторые микросхемы выдают последовательности, которые не повторяются буквально веками. Были даже готовые «цифровые источники шума» в восьмивыводном корпусе (MM5437), а шумовые генераторы на регистрах сдвига встроены во многие микросхемы звуковых эффектов.
От бит к аналоговому шуму
Пропустите ПСП через простой фильтр нижних частот — и получите гауссов белый шум ограниченной полосы: напряжение с плоским спектром до некоторой частоты срезаЧастота среза — граница полосы пропускания: точка −3 дБ или край коридора пульсаций. (сам шум как явление разобран в разделе 7.3). Если вместо RC-цепочки сложить через резисторы с разными весами содержимое нескольких разрядов регистра, получится цифровой фильтр, и плоский спектр легко дотянуть до нескольких мегагерц. Ниже мы увидим, чем такой синтезированный шум выгоднее «природного».
ПСП там, где шум ни при чём
- Шифрование. Последовательность складывают с данными по модулю 2; получатель с таким же генератором, запущенным из того же состояния, восстанавливает данные — начальное состояние служит ключом.
- Помехоустойчивые коды. С помощью ПСП блоки данных преобразуют так, чтобы разрешённые кодовые слова отличались друг от друга как можно сильнее — на наибольшее расстояние ХэммингаРасстояние Хэмминга — число позиций, в которых различаются два кодовых слова одинаковой длины. (число несовпадающих позиций); тогда ошибки можно обнаруживать и исправлять.
- Радиолокация и навигация. Острая автокорреляцияАвтокорреляция — мера сходства сигнала с его же копией, сдвинутой во времени. У белого шума она отлична от нуля только при нулевом сдвиге. делает ПСП идеальным кодом: принятое эхо сравнивают (взаимно коррелируют) с излученной последовательностью и точно измеряют задержку. Так же устроены сигналы спутниковой навигации.
- Делители частоты. Регистр с обратной связью — компактный делитель на n: состояний много, а логики почти нет.
9.6.2Регистр сдвига с обратной связью
- Регистр длины m, на вход которого подано XOR разрядов n и m, проходит по кругу K состояний; «все нули» — ловушка.
- Наибольшая длина достигается лишь при правильных отводах (многочлен примитивен).
- За цикл единиц на одну больше, чем нулей; серий длины 1, 2, 3… — половина, четверть, восьмая; автокорреляция — пик и .
Самый простой и самый известный генератор ПСП — регистр сдвига с обратной связью (схема ниже). Регистр длины m тактируется частотой , а на его вход подаётся результат ИСКЛЮЧАЮЩЕГО ИЛИ двух разрядов: n-го и последнего, m-го. После каждого такта в регистре новое состояние; число состояний конечно, поэтому рано или поздно — через K тактов — схема вернётся в исходное, и всё повторится. Последовательность циклична с периодом K.
Что здесь что (5)
- Вентиль ИСКЛЮЧАЮЩЕЕ ИЛИ. сумма по модулю 2 разрядов n и m — новый бит на вход
- Q1. вход регистра: сюда приходит бит обратной связи
- Qn (n = 4). отвод обратной связи
- Qm (m = 7). последний разряд — и отвод, и выход
- Выход. псевдослучайная последовательность с периодом
Какой может быть K? Всего у m-разрядного регистра состояний, но одно из них — ловушка: если все разряды нулевые, XOR даёт ноль, и регистр застревает навсегда. Остаётся
Регистр, обходящий все ненулевых состояний, порождает последовательность максимальной длины, и именно она псевдослучайна. Получается это не при любых m и n; математик скажет, что многочлен должен быть неприводимым и примитивным над полем Галуа GF(2). Проверим на маленьком примере — четырёхразрядном регистре с отводами 3 и 4. Начнём с 0001 (годится любое состояние, кроме 0000) и выпишем состояния подряд:
0001 → 1000 → 0100 → 0010 → 1001 → 1100 → 0110 → 1011 → 0101 → 1010 → 1101 → 1110 → 1111 → 0111 → 0011 → 0001 …
Пятнадцать различных состояний, т. е. , и только потом повтор: регистр максимальной длины. На кольце ниже видно, что вне цикла остаётся единственное состояние — 0000.
Студент собрал пятиразрядный регистр и взял отводы 1 и 5, надеясь на период 31. Покажите, что регистр не максимальной длины. Сколько у него различных циклов (не считая «все нули») и какова длина самого длинного?
Решение
Можно просто промоделировать (в модели ниже m = 5, n = 1), а можно рассуждать алгебраически. Многочлен раскладывается: . Первый множитель даёт циклы длины 3 (), второй — длины 7, а состояния, затрагивающие оба, повторяются через такт. Итого три цикла: 3 + 7 + 21 = 31 ненулевое состояние. С какого состояния регистр стартует после включения, в такой цикл и попадёт — и «случайная» последовательность может оказаться всего из трёх бит.
Какие отводы выбрать
Обратная связь может брать и больше двух разрядов — несколько вентилей XOR, соединённых обычным деревом чётности, складывают их по модулю 2. Для некоторых длин без этого максимальной длины не добиться. Но удобнее всего обойтись двумя отводами. В таблице — все m до 40, для которых двух отводов (n и m) достаточно. В каждой строке n можно заменить на : в нашем четырёхразрядном примере годятся и отводы 1 и 4, а в семиразрядном на схеме выше отводы 4 и 7 равноценны отводам 3 и 7.
| m | n | Длина K = 2ᵐ − 1 | m | n | Длина K |
|---|---|---|---|---|---|
| 3 | 2 | 7 | 20 | 17 | 1 048 575 |
| 4 | 3 | 15 | 21 | 19 | 2 097 151 |
| 5 | 3 | 31 | 22 | 21 | 4 194 303 |
| 6 | 5 | 63 | 23 | 18 | 8 388 607 |
| 7 | 6 | 127 | 25 | 22 | 33 554 431 |
| 9 | 5 | 511 | 28 | 25 | 268 435 455 |
| 10 | 7 | 1023 | 29 | 27 | 536 870 911 |
| 11 | 9 | 2047 | 31 | 28 | 2 147 483 647 |
| 15 | 14 | 32 767 | 33 | 20 | 8 589 934 591 |
| 17 | 14 | 131 071 | 35 | 33 | 34 359 738 367 |
| 18 | 11 | 262 143 | 36 | 25 | 68 719 476 735 |
| 39 | 35 | 549 755 813 887 |
Как назло, «круглые» длины, кратные 8, в таблицу не попали — им нужно больше двух отводов: m = 8 — отводы 4, 5, 6 (K = 255); m = 16 — 4, 13, 15 (65 535); m = 24 — 17, 22, 23 (16 777 215); последним отводом всегда служит сам m-й разряд.
Насколько длинны эти циклы? В MM5437 работает 23-разрядный регистр с отводом от 18-го разряда и внутренний генератор около 160 кГц: белый шум до 70 кГц (по уровню −3 дБ) повторяется примерно раз в минуту. 33-разрядный регистр на 1 МГц повторится через два с лишним часа. А 100-разрядный на 10 МГц — через время, в сотни миллионов раз превышающее возраст Вселенной.
Чем последовательность максимальной длины похожа на монету
Будем тактировать регистр и записывать биты с выхода — с любого разряда, обычно с последнего. У последовательности максимальной длины три замечательных свойства:
- Почти поровну. За полный цикл единиц ровно на одну больше, чем нулей; лишняя единица — след исключённого состояния «все нули». «Орёл» и «решка» равновероятны: 17-разрядный регистр за цикл выдаёт 65 536 единиц и 65 535 нулей.
- Правильные серии. Среди серий подряд идущих единиц половина имеет длину 1, четверть — длину 2, восьмая часть — длину 3 и т. д.; то же для нулей (с поправкой на «недостающий» ноль). Значит, очередной бит не зависит от предыдущих: какой бы длинной ни была серия, вероятность, что она оборвётся на следующем шаге, — всё та же ½. Житейский «закон средних» («пять раз подряд выпал орёл, теперь уж точно решка») здесь не работает, как и у настоящей монеты.
- Острая автокорреляция. Сравним полный цикл с его же копией, циклически сдвинутой на любое число позиций (не 0 и не кратное K): несовпадений окажется ровно на одно больше, чем совпадений. На языке теории сигналов автокорреляционная функция равна 1 при нулевом сдвиге и при любом другом — без «боковых лепестков». Именно это ценят радиолокация и навигация.
Пятиразрядный регистр с отводами n = 2, m = 5 запущен из состояния
; выход берётся с . Его полный цикл:
1010111011000111110011010010000. Проверьте на нём все три свойства: число единиц и
нулей, распределение длин серий, сравнение с циклическими сдвигами на 1, 2 и 3 позиции.
Решение
1. Длина 31, единиц 16, нулей 15 — на одну больше, как и положено.
2. Разобьём на серии. Последовательность циклична, но первый бит (1) и последний (0) различны, поэтому серии не склеиваются через границу: 1 | 0 | 1 | 0 | 111 | 0 | 11 | 000 | 11111 | 00 | 11 | 0 | 1 | 00 | 1 | 0000. Всего 16 серий: длины 1 — 8 (половина), длины 2 — 4 (четверть), длины 3 — 2 (восьмая), длины 4 — одна (серия нулей), длины 5 — одна (серия единиц). Самая длинная серия единиц равна m, нулей — m − 1, как и должно быть: пять единиц подряд — это состояние 11111, а пять нулей — запрещённая ловушка.
3. Заменим биты на ±1 и сложим произведения с копией, сдвинутой на k. При k = 0 сумма 31, при k = 1, 2, 3 (и любом другом от 1 до 30) — ровно −1: 15 совпадений и 16 несовпадений. Нормированная автокорреляция — 1 и . Проверить можно в модели выше (m = 5, n = 2).
В генераторе для испытаний линий связи работает регистр максимальной длины с m = 39 (отводы 35 и 39) на тактовой частоте 10 МГц. Через сколько часов последовательность повторится? Сколько единиц будет в полном цикле?
Решение
тактов; при 10 МГц это 54 976 с, т. е. 15,3 ч. Единиц , нулей на одну меньше. Сутки работы прибора — и то меньше двух циклов.
9.6.3Почему цифровой шум лучше аналогового
- Шум из регистра максимальной длины получают фильтром нижних частот со срезом намного ниже такта.
- Полоса перестраивается тактом, амплитуда и спектр рассчитываются заранее, схема простая и надёжная.
- Цифровой «шум» повторяем, а с цифровым фильтром его форма вообще не зависит от тактовой частоты.
Итак, выход регистра максимальной длины после фильтра нижних частот, срез которого намного ниже тактовой частоты, превращается в белый шум ограниченной полосы. Прежде чем считать спектр, сравним такой источник с традиционным — шумящим стабилитрономСтабилитрон (диод Зенера) — диод, работающий в обратном пробое: в широком диапазоне токов напряжение на нём почти постоянно. или резистором с усилителем.
- Предсказуемость. Спектр и амплитуда шума известны заранее и рассчитываются по формулам, а полосу можно менять в широчайших пределах, просто меняя тактовую частоту. Схема — несколько цифровых микросхем, ей не нужна настройка.
- Стабильность. Шумовые диоды капризны: уровень шума плывёт с температурой и разнится от экземпляра к экземпляру. А маломощный аналоговый генератор шумаГенератор шума — источник шума с известной плотностью: дробовой шум вакуумного диода, лавинный шум стабилитрона, цифровой псевдослучайный регистр. — это микровольтовый сигнал, который боится наводок и взаимовлияния каскадов; у цифрового уровни сигнала — вольты.
- Повторяемость. Цифровая схема выдаёт один и тот же «шум» каждый цикл. Если отфильтровать его взвешенным цифровым фильтром (о нём чуть ниже), получится повторяемый шумовой сигнал, форма которого вообще не зависит от тактовой частоты, — можно сравнивать результаты испытаний, проведённых в разные дни.
| Цифровой (регистр + фильтр) | Аналоговый (шумящий диод, резистор) | |
|---|---|---|
| Полоса | перестраивается тактовой частотой | задаётся фильтром, перестраивать трудно |
| Амплитуда и спектр | рассчитываются: | зависят от экземпляра, дрейфуют |
| Наводки | нечувствителен — уровни логики большие | микровольтовый источник, боится наводок |
| Повторяемость | да — та же последовательность каждый цикл | нет |
9.6.4Спектр выхода регистра и напряжение шума
- Спектр — линии через с огибающей : плоский до 12 % такта (0,2 дБ), −3 дБ на 44 %, нули на и гармониках.
- ФНЧФильтр низких частот (ФНЧ) пропускает частоты ниже среза и ослабляет высокие; простейший — последовательный R и конденсатор на землю. со срезом 5–10 % такта даёт белый шум ограниченной полосы.
- Плотность шума на низких частотах В/Гц; эффективное напряжение — умножить на корень из шумовой полосыЭквивалентная шумовая полоса — ширина воображаемого прямоугольного фильтра, пропускающего ту же мощность белого шума, что и реальный: . Для однозвенного RC‑фильтра ..
Начнём с ответа, а потом поймём, откуда он берётся. Спектр выхода регистра максимальной длины тянется от частоты повторения всей последовательности, , до тактовой частоты и дальше. До 12 % тактовой частоты он плоский с точностью 0,2 дБ, а к 44 % спадает на 3 дБ.
Уровни без постоянной составляющей
Сначала уберём постоянную составляющую: логическую «1» будем выдавать как вольт, а «0» — как (диаграмма ниже). Способов много: двухтактный транзисторный каскад с точной фиксацией уровней и малым выходным сопротивлением, МОП-ключи, диодная фиксация, быстрый ОУ, в суммирующую точку которого подан постоянный ток смещенияСмещение — постоянный режим транзистора (ток покоя, напряжения на выводах), при котором он работает в активном режиме в течение всего периода сигнала.. Один из самых простых — КМОП-коммутатор 4053, питаемый от , входы которого подключены прямо к шинам питания, а за ним повторитель на ОУ (схема ниже).
Что здесь что (5)
- Шина +a. точный уровень для «1»
- Шина −a. точный уровень для «0»
- КМОПКМОП — комплементарные МОП-транзисторы: n- и p-канальные приборы на одном кристалле. Основа почти всей цифровой логики и аналоговых ключей.-ключ 4053. бит ПСП выбирает, какую шину подключить
- Повторитель на ОУ. малое выходное сопротивление, уровни не зависят от нагрузки
- Выход ±a. сигнал без постоянной составляющей
Автокорреляция — дискретная и непрерывная
Мы уже знаем, что автокорреляция ПСП имеет единственный пик. Посчитаем её двумя способами. Если считать биты числами +1 и −1 и складывать произведения соответствующих бит последовательности и её сдвинутой копии, получим дискретную автокорреляцию: она определена только для сдвигов на целое число тактов. При нулевом сдвиге она равна K, а при любом другом (кроме кратных K) — −1, ничтожно мало по сравнению с K (график ниже, слева).
Если же рассматривать неотфильтрованный выход как аналоговый сигнал, принимающий значения и , и сдвигать его на произвольное время, получится непрерывная автокорреляция (справа): треугольник шириной ±1 такт вокруг нуля, а при сдвигах больше такта в любую сторону — никакой корреляции (точнее, ).
Откуда берётся спектр
Энергетический спектр — это преобразование Фурье автокорреляции. Поскольку последовательность периодична, спектр состоит из отдельных равноотстоящих линий — на частоте повторения и всех её кратных. Пусть это не смущает: при K в миллионы и более линии стоят так густо, что для любого измерения короче цикла регистра спектр неотличим от непрерывного. А огибающая линий — преобразование Фурье треугольной автокорреляции, т. е. квадрат функции :
У этого спектра необычная деталь: на тактовой частоте и всех её гармониках мощности шума нет вовсе — провалы до нуля.
Сколько вольт шума
Для аналогового шума используют лишь низкочастотную, плоскую часть спектра. Плотность там выражается через половину размаха и тактовую частоту:
Формула проста: это плотность случайного телеграфного сигнала с длительностью такта . Его односторонняя спектральная плотностьСпектральная плотность шума — эффективное напряжение шума, приходящееся на полосу 1 Гц, в В/√Гц. Для белого шума в полосе напряжение равно . мощности на нулевой частоте равна ; на более высоких частотах её надо умножить на огибающую. Мощность сигнала всегда одна и та же, а такт лишь решает, по какой полосе её «размазать».
Посчитаем простой источник шума (схема ниже): регистр на 500 кГц, выход ±5 В, затем RC-цепочка 8,2 кОм · 0,01 мкФ.
- Регистр 500 кГц, выход ±5,0 Вза ним RC-фильтр с частотой −3 дБ кГц
- Плотностьна выходе преобразователя уровнейПреобразователь уровней — микросхема, принимающая логику одного напряжения питания и выдающая ту же логику с уровнями другого (40109, 14504, LTC1045). мВ/Гц½
- Шумовая полосаШумовая полоса фильтра — ширина идеального прямоугольного фильтра, пропускающего ту же мощность белого шума; у RC-фильтра . RC-фильтра(раздел 7.4) равна кГц = 3,05 кГц
- Эффективное напряжение В, а спектр — как у RC-фильтра нижних частот
Что здесь что (4)
- Тактовый генератор 500 кГц. задаёт полосу: плоский спектр до 60 кГц
- Регистр максимальной длины. период много больше времени измерения
- Преобразователь уровня. точные ±5 В без постоянной составляющей
- RC-фильтр 8,2 кОм · 0,01 мкФ. срез 1,94 кГц; шумовая полоса 3,05 кГц
Для проверки фильтра в аудиоусилителе собран генератор: регистр максимальной длины на 250 кГц, выход ±2,5 В, RC-фильтр с частотой −3 дБ 500 Гц. Найдите спектральную плотность шума до фильтра и эффективное напряжение шума на его выходе.
Решение
мВ/Гц½ — срез 500 Гц составляет 0,2 % такта, глубоко в плоской части спектра. Шумовая полоса RC-фильтра Гц, отсюда В эфф. Если оставить фильтр прежним, а такт поднять вчетверо, выходной шум уменьшится вдвое: мощность распределится по вчетверо более широкой полосе.
9.6.5Фильтрация: аналоговая и цифровая
- Полезная полоса ПСП — от до ≈ 20 % такта; аналоговый фильтр при смене такта приходится перестраивать.
- Цифровой фильтр — взвешенная резисторами сумма разрядов регистра с весами ; его срез сам следует за тактом.
- Конечная сумма бит — не настоящий гауссов шум: пики ограничены (коэффициент амплитудыКоэффициент амплитуды (пик-фактор) — отношение пикового значения сигнала к эффективному. У синусоиды , у гауссова шума — неограничен. около 4,3 для 32 бит).
| Аналоговый фильтр | Цифровой (взвешенная сумма бит) | |
|---|---|---|
| Частота среза при смене такта | надо перестраивать | сама следует за тактом: |
| Самые низкие срезы | на долях герца практически беспомощен | сколь угодно низкие |
| Плоскость спектра | задаёт фильтр, надо измерять | задают веса |
| Выход | непрерывный | набор дискретных уровней; чем больше бит, тем ближе к гауссову |
Аналоговый фильтр
Полезный спектр генератора тянется от частоты повторения цикла, , до примерно 20 % тактовой частоты (там плотность падает на 0,6 дБ). Простая RC-цепочка, как в примере выше, должна иметь срез намного ниже такта, скажем меньше 1 % . Чтобы использовать полосу ближе к такту, нужны фильтры с крутым срезом — Баттерворта, Чебышева. Но тогда неравномерностьНеравномерность — размах пульсаций АЧХ внутри полосы пропускания, в децибелах. спектра в полосе определяется уже фильтром, разбросом его деталей, и её надо измерять. А если нужна точная плотность шума в В/Гц½, придётся измерить и реальный коэффициент передачи фильтра.
Цифровой фильтр из резисторов
Главное неудобство аналогового фильтра — при смене тактовой частоты в несколько раз его срез приходится перестраивать. Есть изящный выход: сложить с разными весами несколько последовательных выходных бит. Это нерекурсивныйНерекурсивный (КИХ) фильтр: выход — взвешенная сумма конечного числа отсчётов входа, без обратной связи. цифровой фильтр; его частота среза сама пропорциональна тактовой, и опуститься можно хоть до сотых долей герца, где аналоговые фильтры практически беспомощны.
Устроить такую сумму проще простого. Последовательные биты уже лежат рядом — в соседних разрядах регистра. Берём параллельные выходы разрядов и подключаем их через резисторы разного номинала к суммирующей точкеСуммирующая точка — инвертирующий вход ОУ в инвертирующей схеме: в ней складываются входные токи и ток обратной связи; потенциал — виртуальная земля. ОУ. Для фильтра нижних частот веса должны следовать функции ; она принимает значения обоих знаков, поэтому часть выходов придётся складывать через инвертирующий сумматорСумматор — инвертирующий усилитель с несколькими входными резисторами в одну мнимую землю: .. Конденсаторов нет вовсе, и выход представляет собой набор дискретных уровней.
Чем больше бит участвует в сумме, тем ближе распределение выхода к гауссову и тем «непрерывнее» сигнал. Поэтому выходов берут как можно больше — при необходимости добавляют разряды регистра за пределами петли обратной связи, просто как линию задержки. Уровни «0» и «1» должны быть стабильными; тут идеальна КМОП-логика: её выходы практически точно равны нулю и напряжению питания.
Лабораторный генератор шума с перестройкой полосы
Соберём всё вместе (блок-схема ниже). Задача — источник белого шума с полосой, которую можно выбирать от килогерц до сотых долей герца, причём выходное напряжение не должно меняться при переключении полосы.
Что здесь что (6)
- Кварц 4,096 МГц. стабильная тактовая частота
- Делитель. счётчик 74HC4040 и мультиплексорМультиплексор — набор ключей с дешифратором: по двоичному адресу соединяет с выходом один из нескольких входов.: такт от 2,048 МГц до 1 кГц через степени двойки — 12 диапазонов
- 39-разрядный регистр (5 × 74HC164). отводы 35 и 39 через инвертирующий XOR; состояний
- Весовые резисторы. 24 разряда с весами — цифровой ФНЧ со срезом
- Дифференциальный усилительДифференциальный усилитель усиливает разность двух входных напряжений и подавляет их общую (синфазную) часть.. вычитает сумму «отрицательных» выходов из «положительных»; убирает постоянную составляющую
- Выходной буферБуфер — повторитель с : огромное входное и малое выходное сопротивление, развязывает источник и нагрузку.. 0,5 В эфф. на 50 Ом — от такта не зависит
- Кварцевый генератор 4,096 МГц, двоичный счётчик и мультиплексор выбирают такт регистра от 2,048 МГц до 1 кГц ступенями через степень двойки — 12 диапазонов.
- 39-разрядный регистр из пяти 8-разрядных регистров 74HC164 с обратной связью от 35-го и 39-го разрядов (по таблице выше) — последовательность максимальной длины с состояниями: даже на наибольшей частоте цикл длится больше трёх суток.
- 24 последовательных разряда через резисторы с весами подаются на два сумматора: один собирает разряды с положительными весами, другой — с отрицательными, а дифференциальный усилитель вычитает одно из другого.
- Усиление выбрано так, чтобы на нагрузке 50 Ом было 0,5 В эфф. (1 В на холостом ходу) без постоянной составляющей, — и это напряжение не зависит от такта, т. е. от выбранной полосы!
Срез цифрового фильтра равен : белый шум от постоянного тока до 100 кГц на верхнем диапазоне и до 50 Гц на нижнем; добавив разряды делителю, можно спуститься и к долям герца.
Тонкости
Обратите внимание, как получается нулевая постоянная составляющая: КМОП-уровни 0 и +5 В имеют среднее +2,5 В, но после вычитания «положительной» и «отрицательной» сумм с равными суммарными весами оно уходит. Цифровую фильтрацию взвешенными резисторами применяют многие промышленные генераторы шума.
Простейший генератор шума складывает 9 последовательных бит ПСП (каждый бит ±1) с весами 1, 2, 3, 4, 5, 4, 3, 2, 1. Биты считайте независимыми. Найдите коэффициент амплитуды (отношение пикового значения к эффективному) и пиковое напряжение, если выход отмасштабирован до 1 В эфф.
Решение
Пик достигается, когда все биты совпадают по знаку с весами: . Дисперсия суммы независимых ±1 равна , эффективное значение . Коэффициент амплитуды , при 1 В эфф. пик 2,71 В. У настоящего гауссова шума пики сколь угодно велики (4σ — примерно раз на 16 000 отсчётов), так что 9 бит — грубое приближение. 32 бита с весами дают около 4,3–4,5.
9.6.6Насколько случайна псевдослучайная последовательность
- Полный цикл ПСП случаен «с перебором»: блуждание по её битам кончается ровно в одном шаге от старта.
- Отрезок, много более короткий, чем цикл, неотличим от честной монеты: при .
- Больше отводов (порядка m/2) — лучше шумовые свойства; корреляции высших порядков всё равно остаются.
Перечитайте свойства последовательности максимальной длины: точно на одну единицу больше, чем нулей, ровно нужное число серий каждой длины, идеально плоская автокорреляция. Настоящая монета так аккуратно себя не ведёт! За миллион бросков орлов не будет ровно на одного больше, чем решек, а автокорреляция конечного отрезка никогда не окажется идеально ровной. ПСП слишком правильна, чтобы быть случайной.
Вот наглядная проверка. Устроим случайное блуждание: на каждую «1» делаем шаг вперёд, на каждый «0» — шаг назад. После полного цикла регистра мы окажемся ровно в одном шаге от старта. Для настоящего блуждания это было бы невероятное совпадение.
Но все эти «слишком правильные» свойства относятся только к полному циклу из бит. Короткий отрезок ведёт себя почти как честная монета. Представьте хорошо перетасованную колоду, в которой поровну красных и чёрных карт, и вытаскивайте карты по одной, не возвращая. Первые карты появляются почти случайно, но чем меньше карт остаётся, тем сильнее сказывается то, что общее число красных и чёрных известно: под конец цвет последних карт можно просто вычислить.
Сделаем это количественно. Будем считать единственным «неслучайным» свойством точное равенство числа единиц и нулей в цикле (лишнюю единицу забудем): цикл — «колода» из K/2 единиц и K/2 нулей. Для выборки без возвращения из такой колоды среднеквадратичное удаление блуждания от старта после r шагов равно
У истинно случайного блуждания , а множитель — это поправка на конечность колоды. Пока , он практически равен единице, и по этому критерию генератор ПСП неотличим от настоящей монеты; легко убедиться и моделированием, прогнав тысячи блужданий по нескольку тысяч шагов на длинном регистре.
Конечно, простой критерий — не гарантия. Более тонкие статистические тесты, например на корреляции высших порядков, могут обнаружить закономерности. Они передаются и аналоговому шуму, полученному фильтрацией ПСП: распределение амплитуд может быть вполне гауссовым, а корреляции высших порядков — не такими, как у настоящего шума.
12-разрядный регистр максимальной длины () управляет случайным блужданием робота в игре. Найдите среднеквадратичное удаление от старта после 1000 шагов и сравните с истинно случайным блужданием. После скольких шагов удаление станет равным одному шагу?
Решение
против — отличие уже заметно, ведь r составляет четверть цикла. При : ; при формула даёт 0 (реально — 1 шаг из-за лишней единицы). Вывод: для имитации случайности берите отрезки, много более короткие, чем цикл, — т. е. регистр подлиннее.
9.6.7Цифровые фильтры
- Нерекурсивный фильтр — взвешенная сумма отсчётов ; симметричный смотрит и в «будущее», а его веса — ряд Фурье нужной АЧХ.
- РекурсивныйРекурсивный (БИХ) фильтр: в выход входят и прошлые значения самого выхода, например . , — цифровая RC-цепь в одну строку программы.
- Коммутируемые конденсаторыКоммутируемый конденсатор: ёмкость , переключаемая с частотой , переносит заряд как резистор . делают то же аппаратно: , перестройка тактом.
- Взвешенная сумма выходов счётчика ДжонсонаСчётчик Джонсона — регистр сдвига с инверсной обратной связью (): из k триггеров даёт 2k состояний. даёт ступенчатую синусоиду .
Генератор шума подвёл нас к важной теме. Там фильтр нижних частот складывал с весами 24 соседних значения ПСП, и каждое из них было всего лишь 0 или +5 В. Но ничто не мешает подавать на такой «фильтр» и аналоговый сигнал, взятый через равные интервалы времени, — отсчёты :
Каждый выходной отсчёт — взвешенная сумма нескольких входных (схема ниже). Обратите внимание: такой фильтр может быть симметричным во времени — усреднять для текущего выхода и прошлые, и «будущие» отсчёты. Ничего мистического: «будущий» отсчёт просто уже лежит в регистре, а выход выдаётся с задержкой. Аналоговые фильтры так не умеют: они видят только прошлое и соответствуют цифровым фильтрам, у которых веса отличны от нуля лишь при .
Что здесь что (5)
- «Будущее» x_i+3. отсчёт, пришедший позже текущего: симметричный фильтр ждёт его — выход запаздывает
- Текущий отсчёт x_i. вес — самый большой
- Прошлое x_i−3. аналоговые фильтры видят только прошлое
- Веса h_k. у ФНЧ — по
- Сумматор. взвешенная сумма — отсчёт выхода
Как веса задают частотную характеристику
Для симметричного фильтра () частотная характеристика получается особенно наглядной:
Это ряд Фурье по частоте, а — его коэффициенты. Значит, рецепт проектирования прост: нарисуйте желаемую АЧХ, разложите её в ряд Фурье — и получите веса. Отсюда и в генераторе шума: это фурье-коэффициенты прямоугольной характеристики идеального ФНЧ. Сдвиг фазы симметричного фильтра на любой частоте равен 0 или 180°, без искажений формы импульсов групповой задержкойГрупповая задержка — время, на которое фильтр задерживает огибающую сигнала данной частоты..
Рекурсивные фильтры
Совсем другой класс получится, если подавать на вход фильтра, кроме внешнего сигнала, ещё и его собственный выход — фильтр с обратной связью. Такие фильтры называют рекурсивными (или фильтрами с бесконечной импульсной характеристикой), в отличие от рассмотренных нерекурсивных (с конечной). Простейший пример:
| Нерекурсивный (КИХ) | Рекурсивный (БИХ) | |
|---|---|---|
| Обратная связь | нет: только отсчёты входа | есть: прошлые отсчёты выхода |
| Импульсная характеристика | конечная | бесконечная (экспонента) |
| Может смотреть в «будущее» | да (симметричный) | нет — как аналоговый фильтр |
| Арифметика | много умножений на отсчёт | одно-два умножения; нужен запас разрядности |
Это цифровой двойник RC-фильтра нижних частот с постоянной времениПостоянная времени (или ) — за неё экспонента проходит 63% пути к новому значению; за — 99%. RC: каждый новый выход немного «подтягивается» к текущему входу, как напряжение на конденсаторе. Полного тождества с аналоговой цепью нет — мешает дискретность отсчётов, — но чем больше RC по сравнению с интервалом между отсчётами, тем сходство лучше.
Пример. Возьмём постоянную времени в 10 интервалов: , т. е. . Тогда и .
Когда данные уже лежат в памяти массивом отсчётов, такой фильтр — естественный выбор: один проход, одно умножение и одно сложение на отсчёт. На любом языке программирования это три строки:
A = exp(−TS/TC); B = 1 − A
для I от 2 до N:
X[I] = A·X[I−1] + B·X[I]
Здесь X — массив данных, TS — интервал между отсчётами, TC — нужная постоянная времени. Фильтрация идёт «на месте»: исходные данные заменяются отфильтрованными (если исходник нужен, пишите результат в другой массив).
Микроконтроллер датчика вибрации берёт отсчёты с частотой 10 кГц и сглаживает их рекурсивным ФНЧ с постоянной времени, равной 200 интервалам между отсчётами. Найдите коэффициент A и частоту среза по уровню −3 дБ.
Решение
, . мс мс, Гц. Коэффициент очень близок к 1, и это ловушка: в 16-разрядной арифметике с фиксированной точкой поправка для малых сигналов округляется до нуля, и фильтр «залипает». Рекурсивным фильтрам с большой постоянной времени нужен запас разрядов — 32-разрядный накопитель или плавающая точка.
Фильтр на коммутируемых конденсаторах
Тот же рекурсивный фильтр легко построить и аппаратно (схема ниже). Полевые ключи и переключаются по очереди с тактовой частотой: сначала маленький заряжается до входного напряжения, потом отдаёт заряд большому . Если на было , а заряжен до , то после соединения на обоих окажется
а это и есть рекурсивный фильтр с . Приравняв к , найдём частоту среза (приближение — при ):
Что здесь что (6)
- Ключ S₁. подключает ко входу: заряжается до
- C₁. переносит за такт порцию заряда
- Ключ S₂. соединяет с — заряд делится
- C₂. накопитель, : «память» фильтра,
- Повторитель. снимает напряжение с , не нагружая его
- Управление ключами. поочерёдно, без перекрытия; замкнут бо́льшую часть периода
Выведите формулу частоты среза фильтра на коммутируемых конденсаторах и рассчитайте её для микросхемного фильтра с пФ, пФ и частотой переключения 400 кГц. Каким эквивалентным резистором служит переключаемый конденсаторПереключаемый конденсатор: конденсатор с ключами, переключаемыми с частотой , переносит заряд как резистор . ?
Решение
Из сохранения заряда ; у рекурсивного RC-фильтра . Отсюда и . Приближение хорошо при ; если записать множитель как вместо логарифма, ошибка будет большой — следите за этим в справочниках.
Числа: , Гц (приближённо 159,2 Гц).
Эквивалентный резистор: за такт переносит заряд , средний ток — как через резистор кОм. С нФ это и даёт Гц. Резистор 500 кОм на кристалле занял бы огромную площадь, а конденсатор 5 пФ — крошечную: вот почему такие фильтры так популярны в микросхемах.
Фильтр практичен во всех отношениях, а его главное достоинство — частота среза перестраивается электронно, тактовой частотой . Обычно ставят КМОП-ключи, а берут намного больше ; поэтому управляющие импульсы несимметричны: бо́льшую часть периода замкнут , чтобы успел зарядиться. Это простейший фильтр с коммутацией; к тому же классу относятся фильтры на матрицах коммутируемых конденсаторов. Их частотная характеристика периодична — повторяется с частотой такта, — и это удобно для гребенчатых и узкополосных режекторных фильтровРежекторный фильтр («ловушка») подавляет узкую полосу частот вокруг , остальные пропускает..
Для любого классического фильтра — Баттерворта, Чебышева и других — можно построить дискретный аналог: ФНЧ, ФВЧФильтр высоких частот (ФВЧ) пропускает частоты выше среза и ослабляет низкие; простейший — последовательный C и резистор на землю., полосовой, режекторный, симметричный во времени или с настоящим запаздыванием. Обработка сигналов в виде отсчётов давно стала основной, и цифровые фильтры — её рабочий инструмент.
Готовых недорогих микросхем фильтров на коммутируемых конденсаторах множество:
| Микросхема | Что умеет |
|---|---|
| MF4 (National) | 4-звенный ФНЧ Баттерворта в восьмивыводном корпусе, без внешних деталей; одно питание +5…+14 В; срез от 0,1 Гц до 20 кГц задаётся внешним тактом |
| MF5, MF10 и аналоги других фирм (AMI, Linear Technology, Reticon) | «универсальные» фильтры: внешние резисторы выбирают тип (ФНЧ, ФВЧ, полосовой, режекторный) и характеристику (Баттерворта, Чебышева…), такт — частоту среза |
| LTC1062, MAX280 | 5-звенные ФНЧ с нулевой ошибкой по постоянному току: сигнал идёт к выходу через резистор, а коммутируемая схема через конденсатор лишь «отсасывает» высокочастотные составляющие |
| MAX260 и подобные | параметры фильтра задаются микропроцессором |
| Фильтр на коммутируемых конденсаторах | Активный фильтр на ОУ | |
|---|---|---|
| Частотный диапазон | до верхнего края звукового | до мегагерц |
| Перестройка | тактом — просто и в широких пределах | сменой R или C |
| Помехи | проникает такт, обычно 10–25 мВ | нет |
| Динамический диапазонДинамический диапазон — отношение наибольшего неискажённого сигнала к уровню шума, в децибелах. | 80 дБ и менее (собственный шум) | 140 дБ и больше |
У фильтров с коммутацией есть и ограничения. Работают они лишь до верхнего края звукового диапазона. На выход просачивается тактовая частота — обычно 10–25 мВ, — что особенно неприятно, когда такт попадает в полосу пропусканияПолоса пропускания — частоты, которые фильтр пропускает почти без ослабления; граница — обычно точка −3 дБ. (у ФВЧ). Собственный шум ограничивает динамический диапазон примерно 80 дБ, тогда как у фильтра на хорошем ОУ он может превышать 140 дБ. Зато они просты и перестраиваются тактом; поэтому их так любят в модемах и аппаратуре связи (раздел 5.2).
Анализатор вибраций подшипников использует MF4 как фильтр нижних частот со срезом 8 кГц. Какая нужна тактовая частота? В какой полосе входных частот составляющие нужно подавить заранее, чтобы после дискретизации они не наложились на полезную полосу 0…8 кГц?
Решение
кГц. Дискретный фильтр «видит» входные частоты так же, как : составляющие от до 808 кГц попадут в полосу 0…8 кГц. Убрать их должен простой аналоговый фильтр перед MF4; благо такт в 100 раз выше среза, и обычно хватает одного RC-звена с частотой среза в несколько раз выше 8 кГц.
Синусоида из регистра: счётчик Джонсона
Тот же приём — взвешенная сумма выходов регистра — даёт простой цифровой генератор синусоиды. Возьмём 8-разрядный регистр с параллельными выходами (например, 4015 или 74HC164) и подадим на его вход инвертированный выход последнего разряда. Получится счётчик Джонсона — кольцевой счётчик, у которого состояний вдвое больше, чем разрядов: 2n = 16.
- 00000000старт из «всех нулей»
- 10000000 → 11111111единицы заполняют регистр слева направо — выход растёт
- 01111111 → 00000000затем так же «вытекают» — выход спадает
- 16 тактоводин период синусоиды
Сначала регистр заполняется единицами слева направо, затем так же заполняется нулями, и всё повторяется. Если подключить выходы разрядов к суммирующей точке через резисторы с подходящими весами, сумма будет восьмиуровневым приближением синусоиды (16 ступенек за период) с частотой . Первые ненулевые искажения — 15-я и 17-я гармоники, ослабленные примерно на 24 дБ; их легко добивает простой RC-фильтр, а перестройка частоты генератора — это просто смена такта.
Генератор тестового тона на счётчике Джонсона: подъём выхода при включении t-го разряда должен быть пропорционален , t = 1…8. Резистор самого «тяжёлого» разряда (t = 4 и 5) выбран 22 кОм. Найдите резистор крайних разрядов (t = 1 и 8) и уровень 17-й гармоники ступенчатой синусоиды в дБ.
Решение
Токи через резисторы пропорциональны весам, значит, сопротивления — обратно пропорциональны: кОм; остальные — 38,8 кОм (t = 2, 7) и 26,0 кОм (t = 3, 6). Ступенчатая синусоида из 16 ступеней — это отсчёты синуса, «удержанные» на такт; её спектр содержит лишь гармоники с амплитудами от основной: 15-я — дБ, 17-я — дБ. Все гармоники до 14-й при точных весах равны нулю. Равноценный вариант — 7 резисторов с весами , k = 1…7, если брать выходы иначе.