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