Как работает прямой цифровой синтез
Прямой цифровой синтез (DDS, Direct Digital Synthesis) — способ получить синусоиду точно заданной частоты чисто цифровым путём, без перестраиваемого LC-генератора и без петли ФАПЧ. Сердце схемы — N-разрядный аккумулятор фазы: на каждом такте опорной частоты fclk к нему прибавляется целое слово настройки FTW (frequency tuning word). Старшие биты аккумулятора служат адресом таблицы синуса (ПЗУ «фаза → амплитуда»), а её отсчёты идут на ЦАП, который и рисует ступенчатую синусоиду. Чем больше FTW, тем быстрее «прокручивается» фаза и тем выше выходная частота.
fout = (FTW / 2ᴺ) · fclk FTW = round(fout · 2ᴺ / fclk)
Δf = fclk / 2ᴺ предел: fout < fclk/2 (Найквист)
Из формулы видно, что fout прямо пропорциональна слову FTW и опорной частоте и обратно пропорциональна 2ᴺ. Полный оборот фазы (2ᴺ отсчётов) укладывается в fclk / FTW тактов, поэтому одна ступенька FTW сдвигает частоту ровно на Δf = fclk / 2ᴺ — это и есть шаг (разрешение) синтезатора. Аккумулятор работает как счётчик по модулю 2ᴺ: при переполнении он естественным образом «заворачивается» через ноль, что и соответствует переходу фазы через 2π. Именно поэтому линейно нарастающий код на выходе аккумулятора превращается в периодическую синусоиду, а частота повторения задаётся тем, насколько быстро код добегает до переполнения. В отличие от петли ФАПЧ, где частота меняется дискретными кратными опоры и приходится ждать захвата петли, DDS перестраивается почти непрерывно и мгновенно, без переходных процессов и без «звона».
Слово настройки, разрешение и шаг
FTW — целое число, поэтому желаемую частоту приходится округлять до ближайшего кратного шагу Δf. Разрешение задаётся только разрядностью аккумулятора и опорной частотой, а не разрядностью ЦАП: у 32-битного DDS при fclk = 100 МГц шаг всего 23,3 мГц (сотые доли герца), а у 48-битного — доли микрогерца. Разрядность ЦАП влияет не на частоту, а на чистоту спектра — уровень паразитных составляющих. Тонкость перестройки практически недостижима для аналоговых генераторов и ФАПЧ с целочисленным делителем — это главное преимущество DDS.
Важно понимать баланс: чтобы расширить диапазон вверх, поднимают тактовую частоту, но при неизменном N это огрубляет шаг Δf; чтобы вернуть мелкую сетку, наращивают разрядность аккумулятора. Максимальное слово FTW = 2ᴺ − 1 соответствует частоте почти fclk, но такие значения запрещены пределом Найквиста и на практике недостижимы. Слово настройки удобно записывать в шестнадцатеричном виде: именно так его загружают в регистры микросхемы (перевод — в калькуляторе систем счисления), поэтому виджет выдаёт FTW и в десятичном, и в hex-формате.
Ошибка квантования и спектральная чистота
Поскольку FTW целое, реальная частота почти всегда чуть отличается от заданной. Ошибка не превышает половины шага, |Δ| ≤ Δf / 2, и для 32 бит это область сотых долей герца — пренебрежимо для связи, но заметно для метрологии. Отдельная плата за цифровую природу — фазовый шум и дискретные «спуры»: усечение фазы (когда в адрес таблицы идут не все биты аккумулятора) и ступеньки ЦАП добавляют в спектр паразитные линии. Их уровень оценивают в децибелах относительно несущей (dBc), а суммарную «чистоту» — по динамическому диапазону, свободному от паразитных составляющих (SFDR). С усечением фазы борются подмешиванием псевдослучайного шума (дизеринг): он размывает регулярные спуры в равномерный шумовой фон, менее заметный на слух и в узкой полосе. Джиттер тактового генератора целиком переносится на выход и умножает фазовый шум, поэтому опору берут от малошумящего кварцевого генератора, а не от дешёвого RC-осциллятора.
Найквист, зеркало и фильтр реконструкции
Как у любого дискретного устройства, у DDS есть предел Найквиста: воспроизводимы только частоты ниже fclk / 2. Выше порога начинается алиасинг — сигнал складывается в зеркальную частоту, и восстановить его нельзя. Но даже ниже Найквиста ЦАП всегда порождает образ (зеркало) на частоте fclk − fout; калькулятор рисует его оранжевой линией на спектре. Чтобы образ не мешал, на выходе ставят ФНЧ реконструкции (обычно LC-фильтр), полосу которого выбирают так, чтобы пропустить fout и подавить зеркало. Практическое правило: держать fout не выше 40 % fclk — тогда между полезной и зеркальной частотами остаётся зазор, и фильтр реализуем разумным порядком. Вдобавок амплитуда спадает по закону sinc (роллофф удержания ЦАП): к краю диапазона выход слабеет, что при необходимости компенсируют инверсным sinc-фильтром.
Разрешение по разрядности аккумулятора
При фиксированной опоре fclk = 100 МГц шаг частоты зависит только от разрядности N — чем больше бит, тем мельче сетка частот и тем шире максимальное слово настройки.
| Разрядность N | Отсчётов 2ᴺ | Шаг Δf при 100 МГц |
| 24 бита | 16 777 216 | 5,96 Гц |
| 28 бит | 268 435 456 | 373 мГц |
| 32 бита | 4 294 967 296 | 23,3 мГц |
| 40 бит | 1 099 511 627 776 | 91 мкГц |
| 48 бит | 281 474 976 710 656 | 0,36 мкГц |
Где применяют — и где не годится
DDS применяют в трансиверах и приёмниках (гетеродины, плавные VFO любительских КВ-аппаратов), в генераторах сигналов и функциональных генераторах, при синтезе промежуточной частоты, свипировании и формировании ЧМ/ФМ, для тактирования АЦП, а также в звуковой технике — для точных нот и тонов. Он незаменим там, где нужна быстрая и мелкая перестройка: смена FTW переключает частоту за один такт без «звона» петли. Границы: верхняя частота ограничена fclk / 2 и на практике 40 % fclk, поэтому для СВЧ DDS ставят задающим узлом, а вверх поднимают умножителем или ФАПЧ. Для анализа спектра выхода и выбора длины окна пригодится разрешение БПФ. Типовые микросхемы — AD9850/AD9851 для любительской техники и AD9910/AD9912 для лабораторных генераторов; в них уже встроены аккумулятор, таблица синуса и быстрый ЦАП. Отдельная сильная сторона DDS — линейная частотная модуляция (чирп) для радаров и сонаров: FTW плавно наращивают по программе, получая точный свип без аналоговой перестройки. По спектральной чистоте DDS всё же уступает хорошему аналоговому LC-генератору из-за спуров, поэтому в прецизионных РЧ-приложениях его выход обязательно фильтруют, а иногда переносят вверх на «чистом» гетеродине, оставляя DDS лишь узкую полосу подстройки.
Пример
На значениях по умолчанию (fclk = 100 МГц, N = 32, fout = 10 МГц) слово настройки FTW = round(0,1 · 2³²) = round(429 496 729,6) = 429 496 730 (0x1999999A). Реальная частота = 429 496 730 / 2³² · 100 МГц ≈ 10 МГц, разрешение Δf = 100 МГц / 2³² = 23,283 мГц (≈ 0,0233 Гц). Ошибка округления — +9,313 мГц (FTW округлён вверх на 0,4 шага), зеркало ЦАП лежит на fclk − fout = 90 МГц и легко срезается ФНЧ, ведь предел Найквиста здесь 50 МГц.
См. также: PLL loop-filter · Найквист / дискретизация · зеркальная частота · ноты ↔ частоты · длина волны · все калькуляторы
|