Как предсказать частоту и амплитуду продуктов первичного усечения кода фазы (PPT) в спектре выходного сигнала DDS-синтезатора

Суббота , 13, Июль 2019 Leave a comment

В типовой реализации современных DDS-синтезаторов частоты выходной синусоидальный сигнал (точнее – его кусочно-линейная аппроксимация) формируется цифро-аналоговым преобразователем, на вход которого подаются табличные значения функции синус для каждого следующего значения фазы, поступающего с так называемого аккумулятора фазы – специального N-разрядного двоичного счётчика с линейно нарастающим кодом на выходе по каждому тактовому импульсу на входе (до очередного переполнения).

Шаг приращения кода на выходе аккумулятора фазы определяет частоту выходного сигнала и задаётся значением, записанным в специальный N-разрядный регистр – слово настройки частоты (FTW —  frequency tuning word), в соответствии со следующим выражением:

                    [1]

где:

fO – частота сигнала на выходе DDS-синтезатора;
fS – тактовая частота на входе аккумулятора фазы;
FTW – значение слова настройки частоты.

Для каждого конкретного DDS-синтезатора разрядность N его аккумулятора фазы и слова настройки частоты FTW определяет тот шаг, ту величину, на которую изменится частота выходного сигнала fO при увеличении или уменьшении значения, записанного в FTW, на единицу младшего разряда (LSB). Таким образом, точность настройки частоты DDS-синтезатора определяется её изменением при изменении на единицу значения младшего разряда (LSB) слова настройки частоты FTW. Например, 32-разрядный DDS-синтезатор (N=32) имеет более точную настройку частоты чем 24-разрядный (N=24).

Чтобы продемонстрировать возможности очень точной настройки частоты DDS-синтезатора, рассмотрим DDS-синтезатор AD9912, у которого разрядность N=48 даёт разрешение по настройке частоты в единицу на 248 (то есть единицу на 281474976710656). Фактически, при частоте тактового сигнала fS=1 ГГц, DDS-синтезатор AD9912 даёт разрешение 3,6 мкГц (0,0000036 Гц).

Рис.1. Блок-схема DDS-синтезатора.

При внимательном рассмотрении представленной на рис.1 блок-схемы DDS-синтезатора с N-разрядным словом настройки частоты FTW обращает на себя внимание явное несоответствие между количеством бит N на выходе аккумулятора фазы и количеством бит P на входе блока преобразования угла фазы в амплитуду, а именно P ≤ N. Именно это несоответствие приводит к появлению в спектре выходного сигнала нежелательных составляющих, вызванных таким усечением кода фазы.

Чтобы спрогнозировать появление в спектре выходного сигнала нежелательных составляющих, вызванных усечением кода фазы, важно знать значение P для конкретного DDS-синтезатора. В приводимых здесь рекомендациях по применению описывается метод расчёта частоты и амплитуды вызванных усечением кода фазы составляющих выходного сигнала, в частности, первичным усечением кода фазы (PPT – Primary Phase Truncation) при любой разрядности слова настройки частоты FTW.

     Усечение кода фазы

Аккумулятор фазы и слово настройки частоты FTW составляют элемент управления частотой DDS-синтезатора. Однако, в дополнение к элементу управления частотой, у DDS-синтезатора имеется ещё блок преобразования угла фазы в амплитуду, который конвертирует выходной N-разрядный код аккумулятора фазы в код амплитуды. Блок преобразования угла фазы в амплитуду составляет основную часть цифровой схемы DDS-синтезатора. Поэтому увеличение разрешения (уменьшение шага) настройки частоты DDS-синтезатора путём увеличения разрядности N слова настройки частоты FTW приводит к неоправданному увеличению объёма и усложнению цифровой схемы реализации блока преобразования угла фазы в амплитуду.

На самом деле нет практической необходимости конвертировать все N бит кода фазы в амплитуду. На практике вместо этого, как показано на рис.1, в DDS-синтезаторах только часть разрядов кода фазы на выходе аккумулятора фазы используется для преобразования угла фазы в амплитуду, а именно P старших значащих бит (MSB) из N. Это усечение разрядности существенно упрощает схему реализации блока преобразования угла фазы в амплитуду. Однако это происходит ценой возможного появления спектральных артефактов (в частности, продуктов усечения кода фазы) в выходном сигнале DDS-синтезатора.

     Продукты усечения кода фазы

По определению, в DDS-синтезаторе, разработанном с P = N, нет усечения кода фазы. Поэтому в спектре его выходного сигнала продукты усечения кода фазы отсутствуют. Однако на практике у DDS-синтезаторов с P < N, что предполагает усечение кода фазы.

Существуют три категории продуктов усечения кода фазы: 1-го порядка, 2-го порядка и 3-го порядка. Эти категории возникают из спектральных характеристик, обусловленных каскадным включением в DDS-синтезаторе преобразователя угла фазы в амплитуду и цифро-аналогового преобразователя (DAC – Digital-to-Analog Converter).

Рис.2. Формирование спектра выходного сигнала DDS-синтезатора.

На рис.2 графически представлен спектральный состав выходного сигнала, включая продукты, частота и амплитуда которых были рассчитаны путём применения преобразования Фурье к блоку преобразования угла фазы в амплитуду (с P-разрядным входным кодом фазы), и гармоники, возникающие из-за нелинейности неидеального цифро-аналогового преобразователя DAC. В общем случае спектр содержит 2P частотных составляющих. В таблице 1 они пронумерованы от 0 до (2P-1), разбиты на категории и детально описаны.

Таблица 1

ИндексЦветКатегория частотной составляющей
0чёрныйПостоянная составляющая (DC)
1красныйОсновная частота настройки fO (частота Фурье)
(2P-1)зелёныйПродукт усечения кода фазы 1-го порядка (расположен зеркально основной частоте относительно частоты Найквиста)
от 2 до H и
от (2P-H) до (2P-2)
голубойПродукты усечения кода фазы 2-го порядка. Первая группа состоит из гармоник, вносимых цифро-аналоговым преобразователем (DAC), вторая — их зеркальное отображение относительно частоты Найквиста.
от (H+1) до (2P-H-1)серыйПродукты усечения кода фазы 3-го порядка. Эти продукты составляют продукты квантования (и их зеркальное отображение), связанные с блоком преобразования угла фазы в амплитуду и цифро-аналоговым преобразователем (DAC)

     Продукты первичного усечения кода фазы (PPT-продукты)

Многие из продуктов усечения кода фазы каждого из порядков (1-го, 2-го и 3-го) могут присутствовать в спектре выходного сигнала DDS-синтезатора, в зависимости от конкретного значения слова настройки частоты FTW. Но здесь основное внимание будет уделено наибольшим из продуктов 1-го порядка, а именно продуктам первичного усечения кода фазы (PPT – Primary Phase Truncation).

Поскольку выходной сигнал DDS-синтезатора является результатом генерирования дискретных уровней по выборкам фазы (на выходе аккумулятора фазы), спектр этого сигнала следует рассматривать в рамках теории цифровой обработки сигналов. Спектр выходного сигнала DDS-синтезатора представлен на рис.2 в виде двух идентичных спектров, каждый из которых охватывает диапазон частот, равный половине частоты дискретизации fS. Эти два спектра расположены зеркально друг к другу по оси частот относительно частоты Найквиста (fS / 2). Таким образом, продукты первичного усечения кода фазы представлены в спектре двумя составляющими. Первая из них расположена на отрезке оси частот между 0 Гц и fS / 2, а вторая, зеркальная к первой, – между fS / 2 и fS.

Необходимо заметить, что, хотя уровни двух продуктов первичного усечения кода фазы (PPT) в спектре выходного сигнала и являются наибольшими среди продуктов 1-го порядка, они могут не быть наибольшими среди всех продуктов усечения кода фазы в целом. Уровни некоторых продуктов 2-го порядка могут быть ещё больше из-за механизма распределения продуктов усечения кода фазы в спектре выходного сигнала DDS-синтезатора.

Невозможно предсказать уровень продуктов усечения кода фазы 2-го и 3-го порядков. Уровень продуктов 2-го порядка зависит от уровня вносимых нелинейных искажений и гармоник, причиной возникновения которых является нелинейность цифро-аналогового преобразователя (DAC) конкретного DDS-синтезатора. Уровень продуктов усечения кода фазы 3-го порядка связан с ошибками квантования, случайными по своей природе.

     Самый правый ненулевой бит

Для расчёта амплитуды и частоты продуктов первичного усечения кода фазы (PPT) должны быть известны следующие величины:

  • тактовая частота fS;
  • разрядность аккумулятора фазы N и блока преобразования угла фазы в амплитуду P;
  • конкретное значение слова настройки частоты FTW.

Для конкретного DDS-синтезатора N и P неизменны, и тактовая частота fS обычно тоже. Слово настройки частоты FTW, напротив, свободно изменяемая величина, устанавливающая значение частоты выходного сигнала fO в соответствии с выражением [1]. Но значение слова настройки частоты FTW не только задаёт положение fO на оси частот спектра выходного сигнала DDS-синтезатора, но и положение на этой оси продуктов усечения кода фазы. Фактически, наиболее важной характеристикой конкретного значения слова настройки частоты FTW, определяющей спектральный состав выходного сигнала DDS-синтезатора, является количество нулей, следующих подряд справа от последней значащей единицы в конце двоичной записи слова настройки частоты FTW. Это количество оконечных нулей определяет важный параметр L – положение самого правого ненулевого бита в двоичном представлении значения слова настройки частоты FTW.

Позиция бита L в слове настройки частоты FTW зависит от конкретного значения FTW (вспомним, что значение FTW устанавливается в соответствии с требуемой частотой выходного сигнала DDS-синтезатора, согласно выражению [1]). Эта зависимость важна, поскольку позиция бита L для любого конкретного значения FTW определяет, как именно в спектре выходного сигнала DDS-синтезатора будут распределены продукты усечения кода фазы.

На рис.3 показано, как определить значение L для любого заданного значения слова настройки частоты FTW. Сначала значение слова настройки частоты FTW следует записать в двоичном представлении (со всеми ведущими нулями, то есть в полной разрядности). Затем надо пронумеровать биты FTW, начиная с самого старшего бита (MSB), присвоив ему значение 1. На рис.3 приведен пример 32-разрядного слова настройки частоты FTW, поэтому индексы (номера) бит следуют начиная с 1 и до 32. Значение L – это индекс последнего бита со значением 1, после которого следуют только нулевые биты, считая слева направо, то есть со старшего бита (MSB) к младшему (LSB). В качестве примера на рис.3 значение слова настройки частоты FTW взято равным 0x0036E580 (в шестнадцатеричном представлении), поэтому, в соответствии с вышеизложенным, значение L равно 25 для этого конкретного значения.

Рис.3. Индекс L в слове настройки частоты FTW.

Значение L для любого заданного значения FTW очень важно. Во-первых, значение L определяет, появятся ли вообще в спектре выходного сигнала DDS-синтезатора продукты усечения кода фазы. Если
L ≤ P, то продукты усечения кода фазы в спектре выходного сигнала отсутствуют. Однако при L > P в спектре выходного сигнала появляются продукты усечения кода фазы, в том числе продукты первичного усечения кода фазы (PPT). И во-вторых, значения L и P однозначно определяют амплитуду и частоту продуктов первичного усечения кода фазы (PPT) при L > P.

     Определение амплитуды PPT-продуктов

Обе составляющие продуктов первичного усечения кода фазы (PPT) имеют одинаковую амплитуду (см. выражение [2]). Зная заданное значение FTW и разрядность P конкретного DDS-синтезатора, амплитуду обеих составляющих продуктов первичного усечения кода фазы (PPT) определяют из следующего выражения:

                    [2]

где величина APPT выражена в dBc, то есть в децибелах относительно амплитуды основного сигнала с частотой fO.

Заметим, что аргументы двух функций sin в формуле [2] выражены в радианах.

Возьмём для примера DDS-синтезатор с P = 19, а значение слова настройки частоты FTW – как на рис.3. В этом случае амплитуда продуктов первичного усечения кода фазы (PPT), рассчитанная по формуле [2], составит -114,38789 dBc.

     Определение частоты PPT-продуктов

Для определения частоты двух составляющих продуктов первичного усечения кода фазы (PPT) необходимо выполнить несколько шагов. Сначала введём вспомогательную величину K и определим её как число, полученное усечением значения FTW до L бит с последующим преобразованием результата в десятичное представление. То есть, чтобы определить значение K, необходимо в двоичном представлении слова настройки частоты FTW отбросить крайние справа нули и полученное таким образом двоичное число из L бит перевести в его десятичное представление. Например, для значения FTW на рис.3 значение K = 28107 (двоичное число 000000000110110111001011 в его десятичном представлении).

Теперь используем K для вычисления позиций спектральных индексов (R1 и R2) двух PPT-продуктов по формулам [3] и [4]:

                            [3]

                    [4]

Например, для наших заданных DDS-синтезатора с P = 19 и значения FTW как на рис.3, значение в скобках (слева от оператора mod) в выражении [3] равно 14 736 134 709, а значение в скобках в выражении [4] равно 928 378 285 515. Остатки от деления этих значений на 225 (операция mod) будут соответственно такими:

     R1 = 5 739 061
     R2 = 27 815 371

Теперь, используя известные значения R1 и R2, по формулам [5] и [6] определим частоты двух PPT-продуктов (fPPT1 и fPPT2), а значит и положение этих продуктов на оси частот в спектре выходного сигнала DDS-синтезатора:

                    [5]

                    [6]

Например, для заданных значений fS = 250 МГц, значения FTW как на рис.3 и вычисленных в предыдущем примере значений R1 и R2, частоты двух PPT-продуктов будут следующими:

     fPPT1 = 42.759336531162261962890625 МГц
     fPPT2 = 207.240663468837738037109375 МГц

     Заключение

Описанный выше относительно простой способ прогнозирования частоты и амплитуды двух продуктов первичного усечения кода фазы (PPT-продуктов) в определённых случаях не так просто применить, поскольку уравнения [3] и [4] могут создавать проблемы с вычислениями. В частности, значение выражения в скобках, целочисленное по определению, может быть очень большим целым числом.

Чтобы проиллюстрировать проблемы с большими числами в этих вычислениях, рассмотрим DDS-синтезатор AD9912, у которого N = 48 и P = 19. Зададим значение слова настройки частоты FTW = 0x400000000001 (в шестнадцатеричном представлении), что соответствует 70 368 744 177 665 (в десятичном виде). В этом случае L = 48, поэтому K будет иметь то же значение, что и FTW.

Теперь по формуле [4] вычислим значение выражения, что слева от оператора mod. Выражение во внутренних скобках (2L – 2P + 1) после подстановки L = 48 и P = 19 даёт значение:

     (2L – 2P + 1) = 281 474 976 186 369

Соответственно значение выражения слева от оператора mod, вычисленное по формуле [4], будет равно:

     K × (2L – 2P + 1) = 70368744177665 × 281474976186369 = 19 807 040 591 672 948 094 687 248 385

Потребуется 94 бита чтобы представить это число в двоичной форме. Большинство вычислительных программных средств не могут корректно представлять целое число такого размера.

©2016 Analog Devices, Inc.

Перевод ©Задорожный Сергей Михайлович, 2019 г.

Оригинал статьи:
AN-1396 Application Note: «How to Predict the Frequency and Magnitude of the Primary Phase Truncation Spur in the Output Spectrum of a Direct Digital Synthesizer (DDS)», by Ken Gentile