锁相环输出的相位噪声
这个例子展示了如何预测锁相环(PLL)输出的相位噪声,使用锁相环测试平台模拟锁相环,并将模拟结果与理论预测进行比较。
这个例子演示了三相噪声效应,单独或组合,取决于你选择的配置:
参考调制或相位噪声
压控振荡器相位噪声
VCO相位噪声由反馈预分级器下采样
打开模型PllPhaseNoiseExample.slx
.
open_system (“PllPhaseNoiseExample.slx”);
本例使用整数N锁相环与单模量预分频器来自混合信号区块集™。
锁相环测试台产生锁相环的参考输入信号,并测量锁相环输出处的相位谱密度。
该模型中可选的PRBS6参考相位调制用于对比参考相位变化的响应与VCO相位噪声的响应。
频谱估计器输入端的低通重采样器是抗混叠滤波器。这些滤波器将可变步长离散信号转换为频谱估计器所需的固定步长离散信号。
锁相环输入和输出信号的频谱被估计并记录在基本工作空间中,以便您可以将模拟结果与理论计算结果进行比较。
示例模型中的示波器为仿真提供了一个进度指示器。
要评估PLL在各种条件下的行为,请为每个不同的条件集使用单独的工作空间文件。本例提供了五个这样的支持.mat文件。万博1manbetx它们都产生相同的回路瞬态响应。
Baseline.mat
-尽可能接近理想。用于评价模型和模拟器引入的数值噪声。ReferenceModulation.mat
-引入参考相位调制。用于评估锁相环的相位传递函数。VCOPhaseNoise.mat
-引入VCO相位噪声和等于1的预分级比。用于计算锁相环控制回路的误差函数。InbandPhaseNoise.mat
-引入VCO相位噪声和大于1的预缩放比。用于评估预标比对锁相环控制回路误差函数的影响。TotalPhaseNoise.mat
—开启所有相位噪声源,且预分频比大于1。
理论计算
本节展示如何计算锁相环的预期响应。
锁相环的目标环路带宽为2 MHz,相位裕度为45度。环路滤波器组件按比例缩放到实际水平,电荷泵输出电流按相同因素缩放,以保持相同的环路动态。
这个函数getPllLoopResponse
计算环增益作为频率的函数,然后计算来自锁相环外部或内部信号的预期响应。定义输入参数,如电荷泵输出电流,压控振荡器灵敏度,预分频比和无源环路滤波器组件的值getPllLoopResponse
函数要使用。
PllKphi = 5e-3;%电荷泵输出电流PllKvco = 100e6;VCO灵敏度%pln = 70;%分级前比例PllR2 = 1.33e3;二级响应回路滤波电阻%(欧姆)PllR3 = 1.7e4;三阶响应回路滤波电阻%(欧姆)PllR4 = 0;四阶响应回路滤波器电阻%(欧姆)PllC1 = 1.31e-11;%回路滤波器直接电容(F)PllC2 = 1.44e-10;%二级响应回路滤波器电容(F)PllC3 = 9.41e-13;%三阶响应回路滤波器电容(F)PllC4 = 0;四阶响应回路滤波器电容% (F)
这个脚本prepareExpectedSpectra
计算参考相位调制的谱密度和压控振荡器输出相位噪声。然后,该脚本还将结果与锁相环响应相结合,以获得锁相环输出处的相位噪声谱密度。参考相位调制是一个确定的过程,其中频谱分量的振幅表示为载波振幅(dBc)的一个分数。相比之下,VCO相位噪声是一个随机过程,其谱密度以dBc/Hz表示。
属性的输入参数prepareExpectedSpectra
脚本,如参考输入频率,PRBS6相位调制数据模式的每个符号的参考周期数,PRBS6参考相位调制的单个频谱分量的振幅,用于评估具有相位噪声的光谱的分辨率带宽,频偏矢量,以及在指定频偏处的相位噪声频谱密度。
PllAddPhaseNoise =“上”;%启用VCO相位噪声PllFoffset = [30e3 100e3 1e6 3e6 10e6];VCO偏置频率百分比(Hz)PllPhaseNoise = [-92 -106 -132 -143 -152];% VCO输出相位噪声(dBc/Hz)CfgSelectRefMod =' 0 ';启用参考相位噪声调制CfgRef = 30e6;%参考频率CfgCyclesPerSymbol = 2;%每个PRBS6调制符号的参考周期CfgModLevel = -110;%参考相位调制电平(dBc/Hz)CfgResBandwidth = 100e3;% PLL测试台分辨率带宽CfgTargetSpectrum = [100e3 -145;1e6 -135;3e6 -140;10e6 -150];测试台目标相位噪声(dBc/Hz)
如果变量WorkspaceFile
存在并指向可加载的文件,将该文件加载到工作区中。若要使用本示例提供的配置,请设置的值WorkspaceFile
到该配置的文件的名称。
如果存在(“WorkspaceFile”,“var”) &&存在(工作区文件,“文件”)负载(WorkspaceFile);结束
分析锁相环控制环路getPllLoopResponse
函数。这个函数的输出是:
LoopFrequency
-计算预期响应的频率点。LoopZofs
-环路滤波器的传递阻抗作为频率的函数。LoopGofs
—从预分频器输出到VCO输入的环路增益,包括VCO电压灵敏度。请注意,这个输出中不包括预分级比,但包含在闭环传递函数中。LoopHofs
-从锁相环参考输入到锁相环输出的闭环相位传递函数。LoopEofs
-关于VCO输出的闭环相位误差传递函数。
[LoopFrequency, LoopZofs, LoopGofs, LoopHofs, LoopEofs, LoopPhStep] =...getPllLoopResponse ([0 PllR2 PllR3 PllR4], [PllC1、PllC2 PllC3, PllC4),...PllKphi、PllKvco PllN);
组织期望谱密度的计算,将谱分量直接放入频率箱中。
预期谱密度的工作空间变量为:
ExpInputFrequency
-计算预期输入频谱的频率矢量(Hz)。ExpInputSpectrum
-在锁相环(dBm)的参考输入处的期望频谱值向量,在分辨率带宽为的1欧姆负载CfgResBandwidth
).ExpOutputFrequency
-计算预期输出频谱的频率矢量(Hz)。ExpOutputSpectrum
-锁相环输出处(dBm到1欧姆负载,分辨率带宽为)的预期频谱值矢量CfgResBandwidth
).
prepareExpectedSpectra;
检查预期结果
在本节中,研究预期的锁相环行为。
首先看一下锁相环的闭环响应。考虑三个基本响应:瞬态响应、传递函数和误差函数。
瞬态响应
在锁相环的大多数应用中,环的暂态响应在环最初获得锁相时是最重要的。对于非常小的初始频率偏移或相对较高的闭环带宽,瞬态响应可以相当准确地预测环路采集时间。但是,在很多情况下,环路瞬态响应仅表示频率采集已经完成后,相位采集过程中的响应。本例仅处理相位采集时间。
绘制锁相环的环路瞬态响应。
图(1);情节(LoopPhStep.Time LoopPhStep.Data);标题({锁相环瞬态响应;到单元输入相位步长});包含(“秒”);ylabel (“输出阶段”);
传递函数
从参考输入到锁相环输出的传递函数在锁相环期望非常精确地跟踪调制输入或期望从噪声输入中滤除噪声时都是重要的。
创建锁相环传递函数的对数-对数图。
图(2);semilogx (LoopFrequency, 20 * log10 (abs (LoopHofs)));标题(锁相环传递函数);包含(“赫兹”);ylabel (“数据库”);
误差函数
锁相环控制环路被期望抑制锁相环内部产生的相位噪声,例如VCO相位噪声。压控振荡器相位噪声和锁相环输出之间的传递函数有时被称为环路误差函数。检查此传递函数有助于在应用于另一个噪声源之前补偿环路误差。
创建锁相环错误函数的log-log图。
图(3);semilogx (LoopFrequency, 20 * log10 (abs (LoopEofs)));标题(锁相环误差函数);包含(“赫兹”);ylabel (“数据库”);
在锁相环输出处绘制总期望相位噪声。
图(4);情节(ExpOutputFrequency ExpOutputSpectrum);标题(锁相环输出谱);包含(“赫兹”);ylabel (dBm变为1欧姆);xlim ([PllN * CfgRef-2 * PllFoffset(结束),PllN * CfgRef + 2 * PllFoffset(结束)]);
的phaseNoiseMeasure
function是PLL测试平台使用的回调函数。它显示了目标输出相位噪声谱密度以及模拟或预期的相位噪声谱密度。
要将预期的输出相位噪声与特定的设计目标进行比较,请定义工作空间变量CfgTargetSpectrum
.CfgTargetSpectrum
由两个列阵列组成,在锁相环的输出处指定目标相位噪声。第一列表示频率偏移(Hz),第二列表示相应的相位噪声谱密度(dBc/Hz)。PLL测试平台使用回调函数phaseNoiseMeasure
显示预期的和模拟的相位噪声谱密度。
以dBc/Hz为单位查看预期锁相环输出相位噪声。
[~] = phasenoismeasure (ExpOutputFrequency,ExpOutputSpectrum, ExpOutputSpectrum, ExpOutputSpectrum)...CfgResBandwidth CfgTargetSpectrum(: 1)。”“上”,“5”,...CfgTargetSpectrum(:, 2)。');
如果环路响应不令人满意,则可以查看更详细的结果,例如环路滤波器跨阻(LoopZofs
),以获得额外的见解,可以帮助您改进锁相环设计。
运行模拟
虽然配置过程很简单,但有许多参数需要配置。使用configureExamplePLL
脚本配置PLL Simulink®模型,然后执行模型。万博1manbetx
configureExamplePll;SimOut = sim(“PllPhaseNoiseExample”);
为了使绘图更容易,将结果转换为以下四个工作区变量:
SimInputFrequency
-存储模拟输入频谱的频率矢量(Hz)。SimInputSpectrum
-在锁相环的参考输入处的频谱值矢量(dBm到一个1欧姆负载,分辨率带宽为CfgResBandwidth
).SimOutputFrequency
-计算模拟输出频谱的频率矢量(Hz)。SimOutputSpectrum
-锁相环输出处的模拟频谱值矢量(dBm到1欧姆负载,分辨率带宽为CfgResBandwidth
).
使结果更容易从工作区绘制。
simminputfrequency =重塑(SimOut.InputFrequency.Data(:,end),1,[]);simminputspectrum =重塑(SimOut.InputSpectrum.Data(:,end),1,[]);SimOutputFrequency =重塑(SimOut.OutputFrequency.Data(:,end),1,[]);SimOutputSpectrum =重塑(SimOut.OutputSpectrum.Data(:,end),1,[]);
比较预期结果和模拟结果
比较锁相环输出的预期相位噪声和模拟相位噪声。
图(4);情节(ExpOutputFrequency ExpOutputSpectrum);标题(锁相环输出谱);包含(“赫兹”);ylabel (dBm变为1欧姆);xlim ([PllN * CfgRef-2 * PllFoffset(结束),PllN * CfgRef + 2 * PllFoffset(结束)]);持有在;情节(SimOutputFrequency SimOutputSpectrum);持有从;
以dBc/Hz为单位查看预期锁相环输出相位噪声。
[~] = phasenoismeasure (SimOutputFrequency,SimOutputSpectrum,...SimOutputFrequency (2) -SimOutputFrequency (1),...CfgTargetSpectrum(: 1)。”“上”,“5”CfgTargetSpectrum(: 2)。');
保存配置和结果
将整个工作空间,包括当前状态的系统配置和结果保存到一个文件中。如果WorkspaceFile
变量已经存在,则可以将当前状态重新保存到该文件中。要保存到新文件,请更改的值WorkspaceFile
.
如果存在(“WorkspaceFile”,“var”)保存(WorkspaceFile);结束
另请参阅
整数N锁相环与单模量预分频器|锁相环Testbench|可变脉冲延迟