В этом примере показано, как анализировать генератор с числовым управлением (NCO) цифрового понижающего преобразователя (DDC), реализованного в арифметике с фиксированной точкой. В примере измеряется паразитный свободный динамический диапазон (SFDR) NCO и исследуются эффекты добавления фазового сглаживания. Количество битов сглаживания влияет на варианты реализации аппаратных средств. В примере показаны компромиссы между уровнем нижнего уровня шума, паразитными эффектами и количеством битов сглаживания. DDC в данном примере, разработанный в соответствии со спецификацией GSM, моделирует Graychip 4016.
Генераторы с числовым управлением (NCO) являются эффективным средством генерации синусоидальных сигналов и полезны, когда требуется синусоидальный сигнал непрерывной фазы с переменной частотой.
DDC является ключевым компонентом цифровых радиостанций. Он преобразует высокие входные частоты дискретизации цифрового радио вниз к более низким скоростям дискретизации (основной полосе частот) для дальнейшей и более простой обработки. Наш DDC имеет входную скорость 69,333 МГц и имеет задачу преобразования скорости до 270,833 кГц в соответствии со спецификациями GSM.
DDC состоит из NCO и смесителя для квадратурного преобразования входного сигнала в основную полосу частот. Каскадный интегратор-гребенка (CIC) затем фильтрует низкочастотный сигнал и вместе с двумя КИХ-прореживающими фильтрами производит понижающую выборку сигнала для достижения желаемой низкой частоты дискретизации, которая затем готова для дальнейшей обработки. Заключительный этап, в зависимости от применения, часто включает в себя блок повторной дискретизации, который интерполирует или прореживает сигнал для достижения желаемой частоты дискретизации. Дополнительная фильтрация может быть достигнута с помощью блока повторной дискретизации. См. ниже блок-схему типичного DDC. Обратите внимание, что Simulink ® обрабатывает сложные сигналы, поэтому нам не нужно обрабатывать каналы I и Q отдельно.

В то время как этот пример фокусируется на анализе NCO, пример под названием «Реализация цепочки фильтров цифрового понижающего преобразователя», сосредоточенный на разработке трехступенчатой многоскоростной цепочки фильтров с фиксированной точкой и генерации кода HDL, доступен в DSP System Toolbox™.
Секция цифрового смесителя DDC включает в себя умножитель и NCO, которые обеспечивают выбор канала или настройку для радиосвязи. Смеситель в основном является генератором синус-косинус, создавая комплексные значения для каждой пары синус-косинус. Типичный NCO имеет четыре компонента: фазовый аккумулятор, фазовый сумматор, генератор сглаживания и таблицу поиска синусоидального косинуса.
Вот типичная схема NCO, смоделированная в Simulink, похожая на ту, что вы можете увидеть в спецификации Graychip.
open_system('ddcncomodel')

На основе входной частоты фазовый аккумулятор NCO вырабатывает значения, которые адресуют таблицу поиска синусоидального косинуса. Фазовый сумматор задает фазовый сдвиг, который модулирует выходной сигнал фазового аккумулятора. Генератор сглаживания обеспечивает фазовое колебание для уменьшения шума амплитудного квантования и улучшения SFDR NCO. Блок синусоидального/косинусоидального поиска формирует реальный комплексный синусоидальный сигнал, и выходной сигнал сохраняется в переменной nco_nodither.
В Graychip частота настройки задается как нормализованное значение относительно тактовой частоты микросхемы. Таким образом, для частоты настройки F нормированная частота равна F/Fclk, где Fclk - тактовая частота микросхемы. Фазовое смещение задается в радианах, в диапазоне от 0 до 2pi. В этом примере нормированная частота настройки устанавливается равной 5/24, в то время как фазовое смещение устанавливается равной 0. Частота настройки задается как 32-битное слово, а фазовый сдвиг - как 16-битное слово.
Поскольку NCO реализуется с использованием арифметики с фиксированной точкой, он испытывает нежелательные эффекты амплитудного квантования. Эти числовые искажения обусловлены эффектами конечной длины слова. В основном, синусоиды квантуются, создавая кумулятивные, детерминированные и периодические ошибки во временной области. Эти ошибки отображаются как линейные спектры или сигналы в частотной области. Величина затухания от пика представляющего интерес сигнала до самой высокой частоты является SFDR.
SFDR Graychip составляет 106 дБ, но спецификация GSM требует, чтобы SFDR был больше 110 дБ. Существует несколько способов улучшения SFDR, и вы изучите возможность добавления фазового сглаживания в NCO.
NCO Грейчипа содержит генератор фазового сглаживания, который в основном является генератором случайных целых чисел, используемым для улучшения выходной чистоты генератора. Расслоение приводит к тому, что непреднамеренные периодичности шума квантования (что вызывает «пики» в спектрах и, следовательно, плохое SFDR) распространяются по широкому спектру, эффективно уменьшая эти нежелательные спектральные пики. Однако экономия энергии применяется, так что распространение эффективно повышает общий уровень шума. То есть дизеринг хорош для 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
Fs = 69.333e6; sfdr(real(nco_nodither),Fs);

Как и ожидалось, график спектра мощности показывает пик на частоте 14,44 МГц, которая является частотой настройки NCO, 5/24 * Fs = 14,444 МГц.
SFDR, однако, составляет около 106,17 дБ, что слишком высоко, чтобы соответствовать спецификации GSM, которая требует 110 дБ или более. Мы можем улучшить этот динамический диапазон, используя фазовое расслоение.
Для изучения возможности добавления сглаживания в NCO схема NCO, показанная выше, была инкапсулирована в подсистему и дублирована три раза. Для каждого NCO выбирали различную величину сглаживания. Хотя NCO позволяет указать диапазон от 1 до 19 битов сглаживания, вы попытаетесь использовать лишь несколько значений. Выполнение этой модели приведет к трем различным выходам NCO в зависимости от количества добавленного сглаживания.
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

При добавлении трех битов сглаживания наивысшая скорость теперь составляет около -112 дБ. SFDR - 107,63 дБ. Он по-прежнему не соответствует спецификации GSM.
Теперь добавьте 5 бит дизеринга.
figure sfdr(real(nco_dither5),Fs)
ans = 123.4065

При добавлении пяти битов сглаживания наивысшая скорость теперь составляет около -127 дБ.
SFDR составляет 123,41 дБ, что превышает спецификацию GSM.
Кажется, что большее сглаживание дает лучшие результаты, поэтому добавьте 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, разности между наивысшим импульсом и пиком интересующего сигнала. Шпоры являются детерминированными периодическими ошибками, которые являются результатом эффектов квантования. В примере также исследованы эффекты добавления сглаживания в NCO, что добавляет случайные данные в NCO для улучшения его чистоты. Мы обнаружили, что при использовании пяти битов дизеринга достигнуто наивысшее значение SFDR.