Измерение беспроблемной динамической области значений (SFDR)

Этот пример показывает, как анализировать численно управляемый генератор (NCO) цифрового преобразователя частоты (DDC), реализованный в арифметике с фиксированной точкой. Пример измеряет паразитную свободную динамическую область значений (SFDR) NCO и исследует эффекты добавления фазы dith. Количество dither бит влияет на выбор аппаратной реализации. Пример показывает компромиссы между уровнем шумового пола, ложными эффектами и количеством dither бит. DDC в примере, разработанный для соответствия спецификации GSM, моделирует Graychip 4016.

Введение

Численно управляемые генераторы (NCO) являются эффективным средством генерирования синусоидальных сигналов и применяются, когда вам требуется непрерывный синусоидальный сигнал с переменной частотой.

DDC является ключевым компонентом цифровых радиостанций. Он преобразует высокие скорости дискретизации цифрового радио вниз к более низким скоростям дискретизации (baseband) для дальнейшей и легкой обработки. Наш DDC имеет скорость входа 69,333 МГц и имеет задачу преобразовать скорость вниз до 270,833 кГц в соответствии со спецификациями GSM.

DDC состоит из NCO и смесителя для квадратурного преобразования входного сигнала в полосу частот модулирующих сигналов. Затем Cascaded Integrator-Comb (CIC) lowpass фильтрует сгенерированный модулированный сигнал и вместе с две конечной импульсной характеристики децимирующими фильтрами понижает значение сигнала для достижения желаемой низкой частоты дискретизации, которая затем готова к дальнейшей обработке. Конечная стадия, в зависимости от применения, часто включает в себя ресамплер, который интерполирует или децимирует сигнал для достижения желаемой частоты дискретизации. Дополнительная фильтрация может быть достигнута с помощью ресамплера. См. блок типового DDC, ниже. Обратите внимание, что Simulink ® обрабатывает сложные сигналы, поэтому мы не должны обрабатывать I и Q каналы отдельно.

Хотя этот пример фокусируется на анализе NCO, пример, озаглавленный «Реализация цепочки фильтров цифрового преобразователя частоты», фокусируется на разработке трехэтапной, многоразовой, с фиксированной точкой фильтрации и генерации HDL-кода, доступен в системной Toolbox™ DSP.

Численно управляемый генератор

Секция цифрового микшера DDC включает в себя умножитель и NCO, которые обеспечивают выбор канала или настройку для радио. Смеситель в основном является генератором синуса-косинуса, создавая комплексные числа для каждой пары синуса-косинуса. Типичная NCO имеет четыре компонента: аккумулятор фазы, сумматор фазы, генератор dither и интерполяционная таблица синуса-косинуса.

Вот типовая схема NCO, смоделированная в Simulink, подобная тому, что вы можете увидеть в таблице данных Graychip.

open_system('ddcncomodel')

На основе частоты входа фазы аккумулятор NCO вырабатывает значения, которые обращаются к интерполяционной таблице синус-косинуса. Фазовый сумматор задает смещение фазы, которое модулирует выход фазового аккумулятора. Генератор Dither обеспечивает разрежение фазы, чтобы уменьшить амплитудный шум квантования и улучшить SFDR NCO. Блок Sine/Cosine Lookup производит фактический комплексный синусоидальный сигнал, и выход сохранен в переменной nco_nodither.

В Грейчипе частота настройки задается как нормированное значение относительно тактовой частоты чипа. Так для частоты настройки F нормированная частота является F/Fclk, где Fclk является тактовой частотой чипа. Смещение фазы задается в радианах в диапазоне от 0 до 2pi. В этом примере нормированная частота настройки устанавливается равной 5/24, в то время как смещение фазы устанавливается равным 0. Частота настройки задается как 32-битное слово, и смещение фазы задается как 16-битовое слово.

Поскольку NCO реализован с помощью арифметики с фиксированной точкой, он испытывает нежелательные эффекты амплитудного квантования. Эти числовые искажения вызваны эффектами конечного размера слова. В основном, синусоиды квантуются, создавая совокупные, детерминированные и периодические ошибки во временном интервале. Эти ошибки появляются как линия спектры или шпоры в частотный диапазон. Величина ослабления от пика интересующего сигнала до наивысшего отжима является SFDR.

SFDR грайчипа составляет 106 дБ, но спецификация GSM требует, чтобы SFDR был больше 110 дБ. Существует несколько способов улучшить SFDR, и вы исследуете добавление фазы dith к NCO.

NCO Graychip содержит генератор dither фазы, который в основном является генератором случайных целочисленных чисел, используемым для улучшения чистоты выходного сигнала генератора. Дитеринг вызывает непреднамеренную периодичность шума квантования (который вызывает «всплески» в спектрах и, таким образом, плохую SFDR), распространяющуюся по широкому спектру, эффективно уменьшая этот нежелательный спектральный peaks. Однако применяется сохранение энергии, поэтому распространение эффективно повышает общее шумовое перекрытие. То есть дитеринг хорош для SFDR, но только до точки.

Запустим модель NCO и проанализируем ее выход в рабочем пространстве MATLAB. Эта модель не использует дитеринг.

sim('ddcncomodel')
whos nco*
  Name              Size                  Bytes  Class     Attributes

  nco_nodither      1x1x20545            328720  double    complex   

Рисунок ниже отображает действительную часть первых 128 выборок вывода NCO, сохраненных в переменной, nco_nodither.

plot(real(squeeze(nco_nodither(1:128))))
grid
title('Real Part of NCO Output - No Dithering')
ylabel('Amplitude')
xlabel('Samples')

SFDR выхода NCO

Давайте рассмотрим SFDR выхода NCO.

Вычислите и постройте график SFDR вывода NCO

Fs = 69.333e6;
sfdr(real(nco_nodither),Fs);

Как ожидалось, график спектральной степени показывает пик на 14,44 МГц, который является частотой настройки NCO, 5/24 * Fs = 14,444 МГц.

SFDR, однако, составляет около 106,17 дБ, что слишком высоко, чтобы соответствовать спецификации GSM, которая требует 110 дБ или более. Мы можем улучшить эту динамическую область значений с помощью фазы диферирования.

Исследование эффектов дитеринга

Чтобы исследовать добавление dither к NCO, схема NCO, показанная выше, была инкапсулирована в подсистему и повторена три раза. Для каждого НКО выбирали разное количество dither. Несмотря на то, что NCO позволяет задать область значений от 1 до 19 бит dither, вы попробуете всего несколько значений. Выполнение этой модели даст три различных выхода NCO на основе количества добавленного dither.

open_system('ddcncowithdithermodel')

Выполнение симуляции даст три сигнала в рабочем пространстве MATLAB, которые можно затем проанализировать с помощью алгоритма спектрального анализа, определенного выше. Можно запустить симуляцию из модели или из командной строки с помощью команды sim.

sim('ddcncowithdithermodel')

После завершения симуляции у вас остаются сигналы, которые являются выходными данными NCO. Каждый сигнал показывает разное количество рассеивания.

whos nco*
  Name              Size                  Bytes  Class     Attributes

  nco_dither3       1x1x20501            328016  double    complex   
  nco_dither5       1x1x20501            328016  double    complex   
  nco_dither7       1x1x20501            328016  double    complex   
  nco_nodither      1x1x20545            328720  double    complex   

Вычислите и постройте график SFDR после добавления 3 бит дитеринга.

figure
sfdr(real(nco_dither3),Fs)
ans =

  107.6285

С добавлением трёх бит dither самая высокая шпура теперь составляет около -112 дБ. SFDR составляет 107,63 дБ. Он все еще не соответствует спецификации GSM.

Теперь добавьте 5 бит дитеринга.

figure
sfdr(real(nco_dither5),Fs)
ans =

  123.4065

С добавлением пяти бит dither самая высокая шпура теперь составляет около -127 дБ.

SFDR составляет 123,41 дБ, что превышает спецификацию GSM.

Похоже, что больше dither даёт лучшие результаты, поэтому добавьте 7 бит дитеринга.

figure
sfdr(real(nco_dither7),Fs)
ans =

  113.7189

Обратите внимание, что наш вычисленный SFDR деградировал до 113,72 дБ. Это связано с широкополосным шумом, генерируемым диферингом, который начинает обгонять степень ложного содержимого.

Использование 7 бит дитеринга соответствует спецификации GSM, но не так эффективно, как использование 5 бит дитеринга.

Сравнение результатов

Сведите в таблицу SFDR для каждого выхода NCO по величинам диферирования для каждого вывода NCO.

Number of     Spur Free Dynamic
Dither bits   Range(dB)
   0            106.17
   3            107.63
   5            123.41
   7            113.72

Сводные данные

В этом примере анализируется выход NCO, используемого в цифровом преобразователе частоты для приложения GSM. Спектральный анализ использовался, чтобы измерить SFDR, различие между самой высокой шпорой и пиком интересующего сигнала. Шпоры являются детерминированными, периодическими ошибками, которые являются результатом эффектов квантования. Пример также исследовал эффекты добавления dither в NCO, который добавляет случайные данные в NCO для улучшения его чистоты. Мы обнаружили, что использование пяти бит дитеринга достигло самого высокого SFDR.

См. также