exponenta event banner

Фазовый шум на выходе PLL

В этом примере показано, как предсказать фазовый шум на выходе контура фазовой автоподстройки частоты (ФАПЧ), смоделировать ФАПЧ с использованием тестовой схемы ФАПЧ и сравнить результаты моделирования с теоретическими прогнозами.

В этом примере демонстрируются три эффекта фазового шума, по отдельности или вместе, в зависимости от выбранной конфигурации:

  1. Опорная модуляция или фазовый шум

  2. Фазовый шум ГУН

  3. Фазовый шум ГУН, субдискретизированный прескалером обратной связи

Откройте модель PllPhaseNoaseExample.slx.

open_system('PllPhaseNoiseExample.slx');

В этом примере используется целочисленная N PLL с одним модулем Prescaler из Blockset™ смешанного сигнала.

Блок тестирования ФАПЧ генерирует опорный входной сигнал для ФАПЧ и измеряет спектральную плотность фазы на выходе ФАПЧ.

Необязательная модуляция опорной фазы PRBS6 в этой модели используется для сравнения отклика на изменение опорной фазы с ответом на шум фазы ГУН.

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

Спектры входного и выходного сигналов PLL оцениваются и регистрируются в базовой рабочей области для сравнения результатов моделирования с результатами теоретических расчетов.

Осциллограф в примерной модели обеспечивает индикатор хода выполнения моделирования.

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

  1. Baseline.mat - Как можно ближе к идеалу. Используйте для оценки численного шума, введенного моделью и симулятором.

  2. ReferenceModulation.mat - Ввести модуляцию опорной фазы. Используйте для оценки фазовой передаточной функции ФАПЧ.

  3. VCOPhaseNoise.mat - Ввести фазовый шум ГУН и отношение предалайтеров, равное единице. Используйте для оценки функции ошибок контура управления PLL.

  4. InbandPhaseNoise.mat - Ввести фазовый шум ГУН и коэффициент прескалера больше единицы. Используйте для оценки влияния коэффициента prescaler на функцию ошибок контура управления PLL.

  5. TotalPhaseNoise.mat - Все источники фазового шума включены, и отношение прескалеров больше единицы.

Теоретические расчеты

В этом разделе показано, как вычислить ожидаемый отклик ФАПЧ.

Целевая полоса пропускания контура ФАПЧ составляет 2 МГц с запасом по фазе 45 градусов. Компоненты петлевого фильтра масштабируются до практического уровня, а выходной ток зарядного насоса масштабируется на тот же коэффициент для поддержания той же самой динамики петли.

Функция getPllLoopResponse вычисляет коэффициент усиления контура как функцию частоты, а затем вычисляет ожидаемый отклик на сигналы извне или внутри ФАПЧ. Определите входные параметры, такие как выходной ток зарядного насоса, чувствительность ГУН, коэффициент предалайтера и значения компонентов пассивного петлевого фильтра для getPllLoopResponse функция для использования.

PllKphi = 5e-3;     % Charge Pump output current
PllKvco = 100e6;    % VCO sensitivity
PllN    = 70;       % Prescaler ratio
PllR2   = 1.33e3;   % Loop filter resistance for second order response (ohms)
PllR3   = 1.7e4;    % Loop filter resistance for third order response (ohms)
PllR4   = 0;        % Loop filter resistance for fourth order response (ohms)
PllC1   = 1.31e-11; % Loop filter direct capacitance (F)
PllC2   = 1.44e-10; % Loop filter capacitance for second order response (F)
PllC3   = 9.41e-13; % Loop filter capacitance for third order response (F)
PllC4   = 0;        % Loop filter capacitance for fourth order response (F)

Сценарий prepareExpectedSpectra вычисляет спектральную плотность модуляции опорной фазы и шума выходной фазы ГУН. Сценарий затем также объединяет результат с откликом контура ФАПЧ для получения спектральной плотности фазового шума на выходе ФАПЧ. Опорная фазовая модуляция представляет собой детерминированный процесс, для которого амплитуда спектральных компонентов выражается как доля амплитуды несущей (dBc). В противоположность этому фазовый шум ГУН представляет собой стохастический процесс, для которого спектральная плотность выражается в дБк/Гц.

Определите входные параметры для prepareExpectedSpectra сценарий, такой как опорная входная частота, количество опорных циклов на символ PRBS6 структуры данных фазовой модуляции, амплитуда одной спектральной составляющей PRBS6 опорной фазовой модуляции, ширина полосы разрешения для оценки спектров с фазовым шумом, вектор сдвига частоты и спектральные плотности фазового шума при заданном сдвиге частоты.

PllAddPhaseNoise = 'on'; % Enable VCO phase noise
PllFoffset    = [30e3 100e3 1e6 3e6 10e6]; % VCO offset frequencies (Hz)
PllPhaseNoise = [-56 -106 -132 -143 -152]; % VCO output phase noise (dBc/Hz)
CfgSelectRefMod = '0';   % Enable reference phase noise modulation
CfgRef  = 30e6;          % Reference frequency
CfgCyclesPerSymbol = 2;  % Reference cycles per PRBS6 modulation symbol
CfgModLevel   = -110;    % Reference phase modulation level (dBc/Hz)
CfgResBandwidth = 100e3; % PLL Testbench resolution bandwidth
CfgTargetSpectrum = [100e3 -145;1e6 -135;3e6 -140;10e6 -150];
                         % PLL Testbench target phase noise (dBc/Hz)

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

if exist('WorkspaceFile','var') && exist(WorkspaceFile,'file')
    load(WorkspaceFile);
end

Проанализируйте контур управления PLL с помощью getPllLoopResponse функция. Выходами этой функции являются:

  • LoopFrequency - Точки частоты, в которых вычисляются ожидаемые отклики.

  • LoopZofs - полное сопротивление передачи петлевого фильтра в зависимости от частоты.

  • LoopGofs - коэффициент усиления контура от выхода прескалера до входа ГУН, включая чувствительность напряжения ГУН. Следует отметить, что коэффициент prescaler не включается в этот выходной сигнал, а включается в функции передачи с замкнутым контуром.

  • LoopHofs - Функция переноса фазы по замкнутому контуру от опорного входа ФАПЧ к выходу ФАПЧ.

  • LoopEofs - Функция переноса фазовой ошибки замкнутого контура относительно выхода ГУН.

[LoopFrequency, LoopZofs, LoopGofs, LoopHofs, LoopEofs, LoopPhStep] = ...
    getPllLoopResponse([0,PllR2,PllR3,PllR4],[PllC1,PllC2,PllC3,PllC4], ...
                        PllKphi,PllKvco,PllN);

Организация вычисления ожидаемой спектральной плотности для размещения спектральных компонентов непосредственно в частотных ячейках.

Переменные рабочей области для ожидаемой спектральной плотности:

  • ExpInputFrequency - вектор частот, для которых вычисляется ожидаемый входной спектр (Гц).

  • ExpInputSpectrum - Вектор ожидаемых значений спектра на опорном входе в ФАПЧ (дБм в одноомную нагрузку при разрешающей полосе пропускания CfgResBandwidth).

  • ExpOutputFrequency - вектор частот, для которых вычисляется ожидаемый выходной спектр (Гц).

  • ExpOutputSpectrum - Вектор ожидаемых значений спектра на выходе ФАПЧ (дБм в одноомную нагрузку при разрешающей полосе пропускания CfgResBandwidth).

prepareExpectedSpectra;

Анализ ожидаемых результатов

В этом разделе рассматривается ожидаемое поведение PLL.

Начните с просмотра обратной реакции ФАПЧ. Рассмотрим три основных ответа: временный ответ, передаточная функция и функция ошибки.

Переходная реакция

В большинстве приложений ФАПЧ отклик на переходные процессы контура является наиболее важным, когда контур первоначально получает фазовую блокировку. Для очень малых начальных сдвигов частоты или для относительно высокой полосы пропускания замкнутого контура отклик переходного процесса достаточно точно предсказывает время захвата контура. Однако во многих случаях отклик петлевого переходного процесса представляет отклик только во время получения фазы после того, как уже произошло получение частоты. В этом примере рассматривается только время получения фазы.

Постройте график петлевого переходного отклика ФАПЧ.

figure(1);
plot(LoopPhStep.Time,LoopPhStep.Data);
title({'PLL Loop Transient Response';'To Unit Input Phase Step'});
xlabel('Seconds');
ylabel('Output Phase');

Передаточная функция

Передаточная функция от опорного входного сигнала к выходному сигналу ФАПЧ может быть важной либо тогда, когда предполагается, что ФАПЧ очень точно отслеживает модулированный входной сигнал, либо когда ожидается фильтрация шума от шумного входного сигнала.

Создайте график регистрации функции переноса PLL.

figure(2);
semilogx(LoopFrequency,20*log10(abs(LoopHofs)));
title('PLL Transfer Function');
xlabel('Hz');
ylabel('dB');

Функция ошибки

Ожидается, что контур управления ФАПЧ отклонит фазовый шум, генерируемый внутри самой ФАПЧ, такой как фазовый шум ГУН. Передаточная функция между фазовым шумом ГУН и выходным сигналом ФАПЧ иногда называется функцией ошибки контура. Изучение этой передаточной функции помогает компенсировать ошибку цикла до ее применения к другому источнику шума.

Создайте график регистрации ошибок контура PLL.

figure(3);
semilogx(LoopFrequency,20*log10(abs(LoopEofs)));
title('PLL Loop Error Function');
xlabel('Hz');
ylabel('dB');

Постройте график общего ожидаемого фазового шума на выходе ФАПЧ.

figure(4);
plot(ExpOutputFrequency,ExpOutputSpectrum);
title('PLL Output Spectrum');
xlabel('Hz');
ylabel('dBm into 1 ohm');
xlim([PllN*CfgRef-2*PllFoffset(end), PllN*CfgRef+2*PllFoffset(end)]);

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

Чтобы сравнить ожидаемый выходной фазовый шум с определенным целевым значением конструкции, определите переменную рабочего пространства. CfgTargetSpectrum. CfgTargetSpectrum состоит из двух массивов столбцов, которые задают целевой фазовый шум на выходе ФАПЧ. Первый столбец определяет частотные смещения в Гц, а второй столбец определяет соответствующую спектральную плотность фазового шума, если dBc/Hz. В PLL Testbench используется функция обратного вызова phaseNoiseMeasure отображение ожидаемой и моделируемой спектральной плотности фазового шума.

Просмотрите ожидаемый выходной фазовый шум PLL в единицах dBc/Hz.

[~] = phaseNoiseMeasure(ExpOutputFrequency,ExpOutputSpectrum,...
    CfgResBandwidth, CfgTargetSpectrum(:,1).','on','5', ...
    CfgTargetSpectrum(:,2).');

Если реакция контура не удовлетворительна, можно просмотреть более подробные результаты, такие как переходное состояние фильтра контура (LoopZofs), чтобы получить дополнительную информацию, которая может помочь вам улучшить дизайн PLL.

Запуск моделирования

Несмотря на простоту процесса конфигурирования, необходимо сконфигурировать множество параметров. Используйте configureExamplePLL сценарий для настройки модели PLL Simulink ®, затем выполните модель.

configureExamplePll;
SimOut = sim('PllPhaseNoiseExample');

Чтобы упростить печать, преобразуйте результаты в следующие четыре переменные рабочей области:

  • SimInputFrequency - вектор частот, для которых хранится входной спектр моделирования (Гц).

  • SimInputSpectrum - Вектор значений спектра на опорном входе в ФАПЧ (дБм в одноомную нагрузку при разрешающей полосе пропускания CfgResBandwidth).

  • SimOutputFrequency - вектор частот, для которых вычисляется выходной спектр моделирования (Гц).

  • SimOutputSpectrum - Вектор смоделированных значений спектра на выходе ФАПЧ (дБм в одноомную нагрузку при разрешающей полосе пропускания CfgResBandwidth).

Облегчите печать результатов из рабочей области.

SimInputFrequency = reshape(SimOut.InputFrequency.Data(:,end),1,[]);
SimInputSpectrum = reshape(SimOut.InputSpectrum.Data(:,end),1,[]);
SimOutputFrequency = reshape(SimOut.OutputFrequency.Data(:,end),1,[]);
SimOutputSpectrum = reshape(SimOut.OutputSpectrum.Data(:,end),1,[]);

Сравнение ожидаемых и смоделированных результатов

Сравнение ожидаемого и моделируемого фазового шума на выходе ФАПЧ.

figure(4);
plot(ExpOutputFrequency,ExpOutputSpectrum);
title('PLL Output Spectrum');
xlabel('Hz');
ylabel('dBm into 1 ohm');
xlim([PllN*CfgRef-2*PllFoffset(end), PllN*CfgRef+2*PllFoffset(end)]);
hold on;
plot(SimOutputFrequency,SimOutputSpectrum);
hold off;

Просмотрите ожидаемый выходной фазовый шум PLL в единицах dBc/Hz.

[~] = phaseNoiseMeasure(SimOutputFrequency,SimOutputSpectrum,...
    SimOutputFrequency(2)-SimOutputFrequency(1),...
    CfgTargetSpectrum(:,1).','on','5',CfgTargetSpectrum(:,2).');

Сохранение конфигурации и результатов

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

if exist('WorkspaceFile','var')
    save(WorkspaceFile);
end

См. также

| |

Связанные темы