exponenta event banner

Шум фазы в PLL Выход

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

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

  1. Ссылочная модуляция или шум фазы

  2. Шум фазы VCO

  3. Шум фазы VCO подпроизводится делителем частоты обратной связи

% Open the model PllPhaseNoiseExample.slx.
open_system('PllPhaseNoiseExample.slx');

Этот пример использует Целое число N PLL с Одним Делителем частоты Модуля от Смешанного Blockset Сигнала. Смотрите Целое число N PLL с Одним Делителем частоты Модуля для получения дополнительной информации.

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

Дополнительная ссылочная фазовая модуляция PRBS6 в этой модели используется, чтобы контрастировать ответ на ссылочное изменение фазы с ответом на шум фазы VCO.

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

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

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

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

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

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

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

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

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

Теоретические вычисления

Этот раздел показывает, как вычислить ожидаемый ответ PLL.

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

Функциональный getPllLoopResponse вычисляет усиление цикла как функцию частоты и затем вычисляет ожидаемый ответ на сигналы снаружи или в PLL. Задайте входные параметры, такие как текущий выход насоса заряда, чувствительность VCO, отношение делителя частоты и пассивные значения компонента контурного фильтра для 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)

scipt prepareExpectedSpectra вычисляет спектральную плотность ссылочной фазовой модуляции и VCO шум фазы выхода, затем комбинирует результат с ответом цикла PLL, чтобы получить шум фазы спектральная плотность при выходе PLL. Ссылочная фазовая модуляция является детерминированным процессом, для которого амплитуда спектральных компонентов выражается как часть амплитуды поставщика услуг (дБн), тогда как шум фазы VCO является stockastic процессом, для которого спектральная плотность выражается в дБн/Гц.

Задайте входные параметры для prepareExpectedSpectra скрипт, такой как ссылочная входная частота, количество ссылочных циклов на символ шаблона данных о фазовой модуляции PRBS6, амплитуду одного spectgral componentent ссылочной фазовой модуляции 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 - Усиление цикла от выхода делителя частоты к входу VCO, включая чувствительность напряжения VCO. Обратите внимание на то, что отношение делителя частоты не включено в этот выход, но включено в передаточные функции замкнутого цикла.

  • LoopHofs - Передняя сторона передаточной функции фазы замкнутого цикла он вход ссылки PLL к PLL выход

  • LoopEofs - Ошибочная передаточная функция фазы замкнутого цикла относительно VCO выход

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

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

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

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

  • ExpInputSpectrum - Вектор ожидаемых значений спектра в ссылочном входе к PLL (dBm в загрузку на один Ом в пропускной способности разрешения CfgResBandwidth)

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

  • ExpOutputSpectrum - Вектор ожидаемых значений спектра в PLL выход (dBm в загрузку на один Ом в пропускной способности разрешения CfgResBandwidth)

prepareExpectedSpectra;

Исследуйте ожидаемые результаты

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

Запустите путем рассмотрения ответа замкнутого цикла PLL. Рассмотрите три основных ответа: переходный процесс, передаточная функция, функция ошибок.

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

Постройте переходный процесс цикла в PLL.

figure(1);
plot(LoopPhStep.Time,LoopPhStep.Data);
title({'PLL Loop Transient Response';'to unit input phase step'});
xlabel('Seconds');
ylabel('Output Phase');

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

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

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

Функция ошибок: цикл управления PLL, как ожидают, отклонит шум фазы, сгенерированный в самом PLL, таком как шум фазы VCO. Передаточная функция между шумом фазы VCO и PLL выход иногда называется функцией ошибок цикла. Исследование этой передаточной функции помогает компенсировать ошибку цикла, прежде чем это будет применено к другому источнику шума.

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

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

Постройте общий ожидаемый шум фазы в PLL выход

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. Это отображает целевой выходной шум фазы спектральная плотность наряду с симулированным или ожидаемым шумом фазы спектральная плотность.

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

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

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

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

Запустите Simultaion

В то время как процесс настройки является совершенно прямым, существует много параметров, которые будут сконфигурированы. Используйте configureExamplePLL функция, чтобы сконфигурировать модель PLL Simulink.

% Configure the system.
configureExamplePll;
% Execute
SimOut = sim('PllPhaseNoiseExample');
Warning: Unable to resolve the name autosar.api.Utils.initMessageStreamHandler. 

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

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

  • SimInputSpectrum - Вектор значений спектра в ссылочном входе к PLL (dBm в загрузку на один Ом в пропускной способности разрешения CfgResBandwidth)

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

  • SimOutputSpectrum - Вектор симулированных значений спектра в PLL выход (dBm в загрузку на один Ом в пропускной способности разрешения 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,[]);

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

Сравните ожидаемый и симулированный шум фазы в PLL выход.

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 шум фазы выхода в модулях дБн/Гц.

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

Сохраните настройку и результаты

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

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