Цифровая фазовая подстройка частоты

В этом примере показано, как смоделировать цифровую фазовую подстройку частоты с помощью Mixed-Signal Blockset™. В цифровой фазовой подстройке частоты обнаружение фазы выполняется к цифровому конвертеру (TDC) времени, фильтрация цикла выполняется цифровым фильтром, и генератор является в цифровой форме управляемым генератором (DCO). Этот пример демонстрирует поведенческую модель TDC, использование BiquadFilter от DSP Systen Toolbox™ как цифровой контурный фильтр и использование VCOs и DACs от Mixed-Signal Blockset, чтобы смоделировать DCO.

Этот пример также демонстрирует один метод для разработки цикла управления цифрового PLL при помощи архитектур PLL от Mixed-Signal Blockset, чтобы спроектировать аналоговый PLL и затем перевести аналоговый проект в его цифровой эквивалент.

Цифровой PLL

Открытый и запуск модель в качестве примера цифрового PLL. Затем выберите PLL Testbench в модели и нажмите кнопку шума фазы Plot (или вызовите функцию обратного вызова кнопки). Сохраните форму волны контурного фильтра и данные о шуме фазы для более позднего сравнения с аналоговыми результатами PLL.

open('DigitalPLL.slx');
simout = sim(gcs);
msblks.PLL.pllTBPlotPhaseNoiseButton([gcs '/PLL Testbench']);
dpll_vcntl = simout.dpll_vcntl;
getDigitalPllPhaseNoise;

Время к цифровому конвертеру

Поведенческая модель TDC использует триггируемые подсистемы, чтобы произвести время часов в возрастающих ребрах ссылочных часов и дробного делителя PLL. Это затем вычисляет разность между этими произведенными двумя, показывают время, и преобразует в целочисленное выходное значение на восемь битов. Чтобы смоделировать цифровую обратную связь, синхронизированную ссылкой, частота дискретизации выходного порта установлена в ссылочную частоту.

open_system('DigitalPLL/TDC','force');

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

Модель DCO представляет схему, в которой управление для VCO установлено цифро-аналоговым преобразователем (DAC). Преобразование в DAC инициировано ссылочными часами.

Ухудшение шума фазы в VCO включено. Модель DAC может также смоделировать ухудшения. Однако ухудшения DAC не включены в модели в качестве примера.

Вы могли альтернативно смоделировать DCO путем прямой установки массива напряжения управления VCO Mixed-Signal Blockset на массив последовательных целых чисел, который порождает линейную оболочку столбцов цифровых входных значений. Затем можно установить выходной массив частоты предоставлять выходную частоту для каждого возможного входного значения.

open_system('DigitalPLL/DCO','force');

Цифровой контурный фильтр

Контурным фильтром является BiquadFilter от DSP System Toolbox. Это синхронизируется в ссылочной тактовой частоте выходным портом TDC.

Цифровой контурный фильтр создан с использованием функция автоматизированного проектирования Целого числа N PLL с моделью Single Modulus Prescaler от библиотеки Mixed-Signal Blockset PLL Architectures. Аналоговый контурный фильтр спроектирован, чтобы достигнуть заданной полосы пропускания контура и запаса по фазе, затем значения схемы и демонстрационный интервал переводятся в коэффициенты цифрового фильтра. Чтобы получить правильное полное усиление цикла, масштабный коэффициент применяется к модели фильтра biquad контурного фильтра.

Деривация цикла получает параллели масштабного коэффициента та из Методики проектирования для Полностью цифровой Фазовой подстройки частоты На основе Аналогии Фазовой подстройки частоты Насоса Заряда.

Переменные, используемые в деривации,

  • $I_{CP}$ Заряжайте амплитуду тока максимума насоса

  • $Z(s)$ Аналоговый импеданс передачи контурного фильтра

  • $K_{VCO}$ Чувствительность VCO и для аналога и для цифрового PLLs

  • $T_{REF}$ Ссылочный период часов

  • $\Delta_{TDC}$ Разрешение времени TDC

  • $H(s)$ Цифровая передаточная функция контурного фильтра

  • $K_{DAC}$ Усиление DAC

Обратите внимание на то, что для этого примера, общая область значений TDC является двумя ссылочными периодами часов.

Уравнение, чтобы сделать усиление цикла аналога и цифрового PLLs равным:

$${{{I_{CP}}} \over {2\pi }}Z\left( s \right){{{K_{VCO}}} \over s} = {{2{T_{REF}}} \over {{2_\pi }}}{1 \over {{\Delta _{TDC}}}}H\left( s \right){K_{DAC}}{{{K_{VCO}}} \over s}$$

Поскольку TDC и DAC в этом примере были сконфигурированы, чтобы иметь то же количество битов, это уравнение уменьшает до:

$$H\left( s \right) = {{{I_{CP}}} \over 2}Z\left( s \right)$$

Начиная с функционального getSOSfromAnalogPLL включенный в этот пример производит коэффициенты фильтра, которые приводят к усилению фильтра$Z(s)$, масштабный коэффициент для контурного фильтра${{{I_{CP}}} \over 2}$.

В то время как коэффициенты контурного фильтра, входной сигнал и выходной сигнал в этом примере являются всей плавающей точкой двойной точности, также было бы возможно использовать Fixed-Point Designer™, чтобы смоделировать целый цифровой путь к обратной связи, использующий точно ту же цифровую точность в качестве в проектировании схем, таким образом получив еще более точную оценку ухудшений, таких как шум квантования.

Можно спроектировать и сконфигурировать цифровой контурный фильтр путем выполнения скрипта:

%%%designDigitalLoopFilter;

Сравните с аналоговым PLL

Можно сравнить захват цикла аналогового PLL к тому из цифрового PLL. Дополнительная высокочастотная пульсация в аналоговом ответе контурного фильтра происходит из-за формы волны насоса заряда.

open('AnalogPLL.slx');
simout = sim(gcs);
apll_vcntl = simout.apll_vcntl;
plotLoopFilterWaveforms;
msblks.PLL.pllTBPlotPhaseNoiseButton([gcs '/PLL Testbench']);
plot(xdpll,ydpll,'LineWidth',2,'DisplayName','Digital PLL');