该示例说明了如何预测锁相环(PLL)输出处的相位噪声,使用PLL测试窗模拟PLL,并将模拟结果与理论预测进行比较。
此示例根据您选择的配置,单独或组合展示三相噪声效果:
参考调制或相位噪声
VCO相位噪声
VCO相位噪声由反馈预分频器限制
打开模型pllphaseNoiseexample.slx。
Open_System(“PllPhaseNoiseExample.slx”);
此示例使用带单模预分频器的整数N锁相环来自混合信号块集™。
PLL TESTBEONH为PLL产生参考输入信号,并测量PLL的输出处的相位谱密度。
该模型中的可选PRBS6参考相位调制用于将响应与对VCO相位噪声的响应进行对比对参考相位变化的对比。
输入到频谱估计器的低通重采样器是抗锯齿滤波器。这些滤波器将变量步长信号转换为频谱估计器所需的固定步骤离散信号。
PLL输入和输出信号的光谱估计并记录在基础工作区中,以便将模拟结果与理论计算结果进行比较。
示例模型中的示波器提供了模拟的进度指示符。
为了在各种条件下评估PLL的行为,请为每个不同的条件使用单独的工作区文件。此示例提供了五个这样的支持.MAT文件。万博1manbetx所有这些都产生相同的环路瞬态响应。
基线.Mat
-尽可能接近理想。用于评估由模型和模拟器引入的数值噪声。
ReferenceModulation.mat
- 引入参考相位调制。用于评估PLL的相位传递函数。
vcophasenoise.mat
-引入VCO相位噪声和前置分频器比等于1。用于计算锁相环控制环路的误差函数。
InbandPhasenoise.mat
- 引入VCO相位噪声和大于1的预分频器比例。用于评估预分频器比对PLL控制回路的误差功能的影响。
TotalPhaseNoise.mat
- 所有相位噪声源使能,并且预分频器比率大于1。
本节介绍如何计算锁相环的期望响应。
PLL的目标环路带宽是2 MHz,具有45度相位余量。环路滤波器组件缩放到实际水平,电荷泵输出电流由相同的因素缩放以保持相同的循环动态。
功能getPllLoopResponse
计算环路增益作为频率的函数,然后计算从锁相环外部或内部信号的预期响应。定义输入参数,如电荷泵输出电流,压控振荡器灵敏度,前置分频器比和无源环路滤波器元件值getPllLoopResponse
函数使用。
PllKphi = 5 e - 3;%电荷泵输出电流pllkvco = 100e6;% VCO的敏感性PllN = 70;%预分频器比例PLLR2 = 1.33E3;用于二阶响应的%环路滤波器电阻(欧姆)PLLR3 = 1.7E4;用于三阶响应的%环形滤波器电阻(欧姆)PllR4 = 0;第四阶响应的%环滤波电阻(欧姆)PllC1 = 1.31 e-11;%环路滤波器直接电容(F)PllC2 = 1.44平台以及;%二阶响应环路滤波器电容(F)PLLC3 = 9.41E-13;%三阶响应环路滤波器电容(F)PllC4 = 0;第四阶响应的%环路滤波器电容(f)
这个脚本prepareexpectedspectra
计算参考相位调制的谱密度和压控振荡器输出相位噪声。然后该脚本还将结果与锁相环响应相结合,以获得相位噪声谱密度在锁相环的输出。参考相位调制是一个确定性的过程,其中频谱分量的振幅表示为载波振幅(dBc)的一部分。相比之下,压控振荡器相位噪声是一个随机过程,其谱密度以dBc/Hz表示。
定义输入参数prepareexpectedspectra
脚本如参考输入频率,每个符号的参考循环数PRBS6相位调制数据图案,PRBS6的单个光谱分量的幅度的幅度,分辨率带宽评估相位噪声,频率偏移矢量和相位噪声谱的光谱指定频率偏移的密度。
plladdphasenoise =“上”;%启用VCO相位噪声PLLFOFFSET = [30E3 100E3 1E6 3E6 10E6];%VCO偏移频率(Hz)PllPhaseNoise = [-56 -106 -132 -143 -152];%VCO输出相位噪声(DBC / HZ)cfgselectrefmod ='0';%启用参考相位噪声调制CfgRef = 30 e6;%参考频率cfgcyclespersymbol = 2;每PRBS6调制符号%参考周期CfgModLevel = -110;%参考相位调制电平(dBc/Hz)cfgresbandwidth = 100e3;%PLL TESTBENCH分辨率带宽CfgTargetSpectrum = [100e3 -145;1e6 -135;3e6 -140;10e6 -150];%PLL Testbench目标相位噪声(DBC / Hz)
如果是变量Workspacefile.
存在并指向可以加载的文件,将该文件加载到工作区中。要使用此示例提供的配置,请设置值Workspacefile.
到该配置的文件的名称。
如果存在('workspacefile'那“var”)&&存在(workspacefile,'文件')负载(工作空间文件);结束
使用该分析PLL控制环路getPllLoopResponse
功能。此功能的输出是:
Loopfrice.
- 计算预期响应的频率点。
loopzofs.
- 作为频率的函数的环路滤波器的传输阻抗。
LoopGofs
- 从预分频器的输出到VCO输入的环路增益,包括VCO电压灵敏度。请注意,预分频器比例不包括在此输出中,但包含在闭环传输功能中。
浮胶
- 从PLL参考输入到PLL输出的闭环相位传递函数。
Loopeofs.
- 相对于VCO输出的闭环相位误差传递函数。
[LoopFrequency,Loopzofs,Loopgofs,Loophofs,Loopeofs,Loopphstep] =......getPllLoopResponse ([0 PllR2 PllR3 PllR4], [PllC1、PllC2 PllC3, PllC4),......PLLKPHI,PLLKVCO,PLLN);
组织期望谱密度的计算,将谱分量直接放入频率箱。
期望谱密度的工作空间变量为:
ExpInputfrequency.
-期望的输入频谱被计算的频率矢量(Hz)。
ExpInputSpectrum.
-期望频谱值的向量在参考输入PLL (dBm到一个欧姆负载在分辨率带宽cfgresbandwidth.
).
expRuitptrequency
-期望输出频谱是计算的频率矢量(Hz)。
expReptpectrum.
- PLL输出处的预期频谱值的向量(DBM进入一个欧姆负载的分辨率带宽cfgresbandwidth.
).
prepareExpectedSpectra;
在本节中,检查预期的PLL行为。
首先查看PLL的闭环响应。考虑三个基本响应:瞬态响应,传递函数和错误功能。
瞬态反应
在大多数PLL应用中,当循环最初获取阶段锁时,环路瞬态响应是最重要的。对于非常小的初始频率偏移或用于相对高的闭环带宽,瞬态响应可合理地预测循环采集时间。然而,在许多情况下,在发生频率采集之后,环瞬态响应仅表示相位采集期间的响应。此示例仅解决相位采集时间。
绘制环路瞬态响应的锁相环。
图(1);情节(LoopPhStep.Time LoopPhStep.Data);标题({'PLL循环瞬态响应';'到单位输入阶段步骤'});Xlabel('秒');ylabel(“输出阶段”);
转换功能
来自PLL输出的参考输入的传递函数可能是重要的,当预期PLL非常准确地或者预期从噪声输入中过滤输出噪声时,可以是重要的。
创建一个锁相环传递函数的对数-对数图。
图(2);Semilogx(Loopfrequency,20 * log10(ABS(漏洞));标题(锁相环传递函数的);Xlabel('赫兹');ylabel('D b');
错误功能
PLL控制回路预计将拒绝在PLL本身内产生的相位噪声,例如VCO相位噪声。VCO相位噪声和PLL输出之间的传递函数有时称为环路错误功能。检查此传输功能有助于在将循环错误应用于另一个噪声源之前进行补偿。
创建一个锁相环误差函数的对数-对数图。
图(3);semilogx(Loopfrequency,20 * log10(ABS(LOOPEOFS)));标题('PLL循环错误功能');Xlabel('赫兹');ylabel('D b');
绘制锁相环输出的总期望相位噪声。
图(4);绘图(expRutputfrequency,expRutpectrum);标题(锁相环输出光谱的);Xlabel('赫兹');ylabel('dbm成1欧姆');xlim ([PllN * CfgRef-2 * PllFoffset(结束),PllN * CfgRef + 2 * PllFoffset(结束)]);
这phaseNoiseMeasure
函数是PLL Testbench使用的回调函数。它显示了目标输出的相位噪声谱密度以及模拟或期望的相位噪声谱密度。
要将预期的输出相位噪声与特定的设计目标进行比较,请定义工作区变量cfgtargetspectrum.
。cfgtargetspectrum.
由两个列数阵列组成,可在PLL的输出端指定目标相位噪声。第一个列指定Hz中的频率偏移,第二列指定如果DBC / Hz,则指定相应的相位噪声谱密度。PLL TestBench使用回调函数phaseNoiseMeasure
显示预期和模拟相位噪声谱密度。
以DBC / Hz为单位查看预期的PLL输出相位噪声。
(~) = phaseNoiseMeasure (ExpOutputFrequency ExpOutputSpectrum,......cfgresbandwidth,cfgtargetspectrum(:,1)。',“上”那“5”那......cfgtargetspectrum(:,2)。');
如果环路响应不令人满意,您可以查看更详细的结果,如环路滤波器跨阻抗(loopzofs.
)获得额外的见解,可以帮助您提高PLL设计。
虽然配置过程很简单,但是要配置许多参数。使用configureexamplepll.
脚本配置PLL Simulink®模型,然后执行模型。万博1manbetx
configureexamplepll;simout = sim('pllphasenoiseexample');
要使绘图更容易,将结果转换为以下四个工作空间变量:
SimInputFrequency
-频率矢量,其中输入频谱的模拟存储(Hz)。
SiminputSpectrum.
- 在PLL的参考输入处的光谱值向量(DBM进入一个欧姆负载的分辨率带宽cfgresbandwidth.
).
SimOutputFrequency
- 计算模拟的输出频谱的频率向量(Hz)。
SimOutputSpectrum
- PLL输出的模拟频谱值的向量(DBM成一个欧姆负载,分辨率带宽cfgresbandwidth.
).
使结果更容易从工作区绘制。
SimInputFrequency =重塑(SimOut.InputFrequency.Data(:,结束),1,[]);SimInputSpectrum =重塑(SimOut.InputSpectrum.Data(:,结束),1,[]);SimOutputFrequency =重塑(SimOut.OutputFrequency.Data(:,结束),1,[]);SimOutputSpectrum =重塑(SimOut.OutputSpectrum.Data(:,结束),1,[]);
比较锁相环输出的预期相位噪声和模拟相位噪声。
图(4);绘图(expRutputfrequency,expRutpectrum);标题(锁相环输出光谱的);Xlabel('赫兹');ylabel('dbm成1欧姆');xlim ([PllN * CfgRef-2 * PllFoffset(结束),PllN * CfgRef + 2 * PllFoffset(结束)]);持有上;情节(SimOutputFrequency SimOutputSpectrum);持有离开;
以DBC / Hz为单位查看预期的PLL输出相位噪声。
(~) = phaseNoiseMeasure (SimOutputFrequency SimOutputSpectrum,......Simoutputprequency(2)-SimOutputFrequency(1),......cfgtargetspectrum(:,1)。',“上”那“5”CfgTargetSpectrum(: 2)。');
保存整个工作空间,包括当前状态的系统配置和结果,到文件。如果是Workspacefile.
变量已经存在,则可以将当前状态保存到该文件中。若要保存到新文件,请更改值Workspacefile.
。
如果存在('workspacefile'那“var”)保存(Workspacefile);结束
带单模预分频器的整数N锁相环|PLL Testbench.|可变脉冲延迟