Программно определяемое радио начинается с жадного шага: аналого-цифровой преобразователь оцифровывает всю входную полосу целиком, часто на частоте дискретизации в десятки мегавыборок в секунду, тогда как реальный сигнал интереса занимает доли мегагерца. Между этими двумя масштабами стоит децимация - цепочка квадратурного сдвига, фильтрации и прореживания отсчётов, которая вырезает нужную узкую полосу из широкого спектрального окна, отбрасывает всё лишнее и заодно повышает отношение сигнал/шум. Инженер, который понимает, как CIC-фильтр без единого умножителя, пара половинных FIR и осциллятор с числовым управлением превращают поток 61.44 Мвыб/с в аккуратные 48 квыб/с, способен осознанно выбирать параметры приёмника вместо того, чтобы доверять значениям по умолчанию.
Оцифровка широкой полосы и роль АЦП
Классическая архитектура SDR-приёмника держится на простом принципе: поднести АЦП как можно ближе к антенне и переложить максимум работы на цифровую обработку. Реальный тракт при этом всё же содержит малошумящий усилитель и смеситель, который переносит участок эфира с несущей вниз на промежуточную частоту или прямо на ноль, но дальше управление берёт конвертер. Типичная частота дискретизации широкополосного конвертера - 61.44 Мвыб/с: это число выбрано не случайно, оно кратно стандартным телекоммуникационным сеткам (3072 кГц, используемая в LTE, умножается ровно на 20), что упрощает последующие целочисленные децимации.
Частота Найквиста на входе такого потока равна 30.72 МГц: весь спектр от нуля до этой границы представлен в цифре, включая тепловой шум, помехи и соседние станции. Задача дальнейшей обработки - извлечь из этого плотного супа один узкий канал. Возьмём конкретный сценарий: пользователь настраивается на телеметрический пакет шириной 200 кГц, а конвертер выдаёт полосу 61.44 МГц. Коэффициент децимации составит 307.2, и его обычно реализуют не одним прореживанием, а каскадом: CIC делит на 16 (получаем 3.84 Мвыб/с), первый половинный FIR делит на 2 (1.92 Мвыб/с), второй и третий половинные дают ещё на 2 и 2 (960 и 480 квыб/с), а финальная дробная или целочисленная ступень доводит поток до нужной скорости, например 240 квыб/с.
Именно здесь скрыто главное преимущество цифрового подхода: форму фильтра определяют коэффициенты, а не номиналы конденсаторов, поэтому полосу можно перестраивать программно, а селективность достигает величин, недоступных аналоговым цепям разумной стоимости.
Квадратурный смеситель на NCO и перенос сигнала на нулевую частоту
Первый активный блок после АЦП - цифровой квадратурный смеситель. Осциллятор с числовым управлением (NCO) генерирует две точные квадратурные последовательности - синус и косинус - на программируемой частоте настройки. Умножение входного потока на эти последовательности даёт две ветви, I и Q, и математически эквивалентно переносу выбранной частоты в нулевую точку комплексного спектра: станция, стоявшая на смещении 12.5 МГц от центра, после смешивания оказывается на нуле, а всё, что было симметрично относительно неё, разворачивается в комплексную пару, позволяющую отличать нижнюю боковую от верхней.
NCO - это накопитель фазы на 32 или 48 бит с таблицей синусов. Шаг приращения фазы прямо задаёт частоту настройки: при тактовой 61.44 МГц и 32-битном аккумуляторе разрешение настройки составляет 61.44e6 / 2^32 ≈ 0.014 Гц, то есть настройка практически бесступенчатая. Это контрастирует с аналоговыми синтезаторами, где шаг перестройки определяется петлёй ФАПЧ.
Обрезание фазы при такой арифметике неизбежно порождает фазовые шумовые боковые лепестки (spurs), и здесь появляется приём под названием dither: к младшим разрядам фазового аккумулятора добавляют псевдослучайный битовый шум. Паразитные детерминированные тона размазываются в широкий шумовой фон, и хотя общий уровень шума чуть подрастает, спектр очищается от резких выбросов, которые были бы куда заметнее для приёмника. Более изощрённый вариант - шумообразование (noise shaping), когда ошибка квантования фазы проходит через фильтр на единичных задержках и выталкивается в область высоких частот, откуда её затем срезает последующий децимационный фильтр. Тот же трюк применяют и на выходе цепочки, округляя 16-битные отсчёты до 8 бит для передачи по USB: формирователь шума сохраняет полезные детали в узкой полосе ценой роста шума на краях, которые всё равно будут отфильтрованы.
CIC-фильтр без умножителей как первая ступень децимации
После смесителя поток всё ещё идёт на полной скорости 61.44 Мвыб/с, и умножать его на сотни коэффициентов классического FIR было бы расточительно. На помощь приходит каскадный интеграторно-гребенчатый фильтр (CIC) - конструкция, придуманная Юджином Хогенауэром, в которой нет ни одного умножителя: только сумматоры, регистры задержки и вычитатели. Интеграторная часть накапливает отсчёты, гребенчатая вычитает задержанные на длину децимации значения, и вместе они образуют фильтр с характеристикой вида |sin(πfM)/sin(πf)|^N, где M - коэффициент прореживания, N - число ступеней (обычно 3-5).
Гребенчатая характеристика имеет нули точно на частотах, которые после прореживания наложатся на полосу интереса, - а значит, CIC одновременно и дешёв, и поставляет подавление именно там, где оно нужнее всего. Расплата - завал АЧХ в рабочей полосе: трёхступенчатый CIC с децимацией на 16 при полосе сигнала 200 кГц из 3.84 МГц даёт спад порядка 0.3-0.5 дБ, а в более широкой полосе спад растёт быстро. Отсюда стандартный приём: после CIC ставят компенсирующий FIR с обратной характеристикой, который выпрямляет АЧХ в полосе пропускания. Заодно CIC легко делает программируемым: коэффициент децимации меняется простым изменением длины задержки в гребёнке, что идеально для настраиваемых приёмников.
Первое прореживание выполняется здесь же: после гребенчатой части отсчёты берутся лишь каждый M-й. Физический смысл прост - фильтр уже подавил всё, что наложилось бы на полезную полосу, и поток можно безболезненно замедлить. Частота Найквиста после этого шага сжимается с 30.72 МГц до 1.92 МГц.
Половинные FIR-фильтры и многоступенчатое прореживание
Дальше в игру вступают половинные фильтры (half-band FIR) - специальный класс симметричных КИХ-фильтров, у которых ровно половина коэффициентов равна нулю, а центральный равен 1/2. Это снова экономия на умножителях: фильтр на 39 отводов фактически выполняет около 20 умножений, причём часть коэффициентов настолько мала, что их аппроксимируют сдвигами и сложениями. Каждый половинный фильтр срезает верхнюю половину спектра и делит частоту дискретизации на 2, отсюда и название.
Каскад обычно выглядит так: 3.84 Мвыб/с после CIC превращаются в 1.92, затем 960, затем 480 квыб/с. Частота Найквиста на каждой ступени падает вдвое: 1.92 МГц, затем 960 кГц, затем 240 кГц. Половинные фильтры проектируют так, чтобы граница полосы пропускания чуть-чуть перекрывала полосу сигнала: при 200 кГц полезной полосы из 480 квыб/с переходная зона фильтра последней ступени лежит примерно между 100 и 140 кГц, что даёт подавление зеркальных составляющих на 60-80 дБ при 30-40 отводах.
Логика многоступенчатости - в суммарной вычислительной цене. Одноступенчатый FIR, давящий всё лишнее из 61.44 МГц до полосы 200 кГц сразу, потребовал бы тысяч отводов на полной скорости, то есть десятков миллиардов умножений в секунду. Каскад распределяет работу: дешёвый CIC глобит грубую работу на высокой скорости, а изящные FIR работают там, где поток уже медленный. Суммарная стоимость падает на два порядка, что и позволяет умещать весь приёмник в недорогой FPGA или даже в процессор общего назначения.
Алиасинг, процессинг-гейн и реальные цифры
Прореживание без предварительной фильтрации было бы губительно: по теореме Котельникова-Найквиста, любая составляющая выше половины новой частоты дискретизации накладывается внутрь полезной полосы (алиасинг), и отличить её от собственного сигнала уже невозможно. Поэтому последовательность строго фиксирована: сначала фильтр, потом прореживание, и именно в этой паре ступени каскада существуют. Практический критерий: перед каждым делением потока на K полоса сигнала должна умещаться в 1/(2K) от текущей частоты дискретизации с запасом на переходную зону.
Зато правильная децимация даёт настоящую добычу - процессинг-гейн. Квантование АЦП размазывает шум квантования равномерно от нуля до частоты Найквиста. Когда цифровой фильтр сужает полосу в M раз, шумовая мощность внутри остающейся полосы падает в M раз, а мощность узкополосного сигнала сохраняется. Выигрыш в отношении сигнал/шум составляет +10·log10(M) дБ. Для M = 307.2 это 10·log10(307.2) ≈ 24.9 дБ. Иначе говоря, эффективная разрядность конвертера растёт примерно на log2(M)/2 ≈ 4.1 бита: 12-битный АЦП в полосе 200 кГц ведёт себя как 16-битный. Это фундаментальный закон цифровой радиосвязи: полоса обменивается на динамический диапазон.
Полезные числовые ориентиры для практической настройки:
- Коэффициент децимации M = 64 (например, с 12.8 Мвыб/с до 200 квыб/с) добавляет +10·log10(64) ≈ +18.1 дБ к SNR в узкой полосе.
- Каждые 6 дБ процессинг-гейна эквивалентны одному дополнительному биту разрешения АЦП.
- После децимации на 4 частота Найквиста падает вчетверо, и все спектральные компоненты выше новой границы должны быть подавлены фильтром минимум до уровня шума, иначе они сложатся с полезным сигналом.
- В каскаде CIC на 16 и трёх половинных на 2 суммарная децимация составляет 128, а процессинг-гейн - 21.1 дБ.
Дешёвый приёмник RTL2832U и выбор полосы 200 кГц из 2.4 МГц
Вся описанная математика отлично видна на доступном железе. USB-приёмник на RTL2832U с тюнером R820T оцифровывает сигнал 8-битным АЦП и передаёт в компьютер комплексные квадратурные отсчёты на скорости обычно от 0.25 до 3.2 Мвыб/с; комфортный рабочий режим - 2.4 Мвыб/с с полосой обзора около 2.4 МГц. Внутри чипа уже есть собственный каскад децимации: тактовая частота внутренней обработки существенно выше, и поток проходит смеситель на NCO, CIC-подобную ступень и набор половинных фильтров, прежде чем уйти в USB-контроллер.
Когда пользователь в программе вроде SDRSharp или GQRX выставляет полосу приёма 200 кГц, происходят две разные вещи. Если 200 кГц - это полоса демодулятора внутри уже полученного потока 2.4 Мвыб/с, то программная децимация на ПК выполняет ещё один мини-каскад: программный NCO сдвигает выбранную станцию на ноль, КИХ-фильтр прореживает поток в 12 раз (2.4e6 / 200e3 = 12), и процессинг-гейн составляет 10·log10(12) ≈ 10.8 дБ - станция, которая в широком окне тонула в шуме, становится разборчивой. Если же пользователь меняет частоту дискретизации входного потока целиком, то перестраивается аппаратный каскад в чипе, и на компьютер просто приходит меньше данных и выше эффективное качество.
Наблюдаемый эффект един: широкое окно 2.4 МГц показывает картину эфира и служит панорамой, узкая полоса 200 кГц - рабочим инструментом демодуляции. Частота Найквиста на панораме равна 1.2 МГц по каждой квадратуре (комплексный поток покрывает полные 2.4 МГц), после децимации до 200 квыб/с она сжимается до 100 кГц, и всё, что стояло за пределами ±100 кГц от точки настройки, должно быть вырезано фильтром, иначе соседняя мощная станция сложится внутрь и выдаст себя характерным зеркальным свистом.
Инженерный баланс и ограничения
Децимационная цепочка - всегда компромисс между четырьмя величинами: вычислительной стоимостью, подавлением алиасинга, ровностью АЧХ и задержкой. Каждая половинная ступень добавляет задержку в десятки периодов новой частоты дискретизации, и в системах реального времени, например в цифровых трансиверах с быстрой перестройкой, это приходится считать в микросекундах. CIC-ступень требует компенсации спада, половинные фильтры - аккуратного выбора длины под переходную зону, а прореживание - строгой проверки, что помехи подавлены до уровня, где они не испортят демодулятор.
Итоговая метрика проста и наглядна: динамический диапазон в целевой полосе. Широкополосный АЦП, квадратурный смеситель, CIC и каскад половинных фильтров вместе превращают грубый, но быстрый конвертер в отличный узкополосный приёмник, выигрывая десятки децибел отношения сигнал/шум ровно там, где он нужен. Формула +10·log10(M) дБ - рабочий инструмент ежедневного проектирования: выбрал целевую полосу, разложил децимацию на удобные ступени, проверил частоты Найквиста до и после каждого прореживания, убедился, что алиасинг подавлен, - и цифровой приёмник готов слушать эфир чище, чем его аналоговый предшественник той же стоимости.