主要内容

锁相环输出的相位噪声

本例展示了如何预测锁相环(PLL)输出端的相位噪声,使用PLL测试台模拟PLL,并将模拟结果与理论预测进行比较。

此示例根据您选择的配置,单独或组合展示三相噪声效果:

  1. 参考调制或相位噪声

  2. VCO相位噪声

  3. VCO相位噪声由反馈预分频器限制

打开模型pllphaseNoiseexample.slx。

Open_System(“PllPhaseNoiseExample.slx”);

这个例子使用了整数N锁相环单模预分频器来自混合信号块集™.

PLL TESTBEONH为PLL产生参考输入信号,并测量PLL的输出处的相位谱密度。

该模型中的可选PRBS6参考相位调制用于将响应与对VCO相位噪声的响应进行对比对参考相位变化的对比。

频谱估计器输入端的低通重采样是抗混叠滤波器。这些滤波器将可变步长离散信号转换为频谱估计器所需的固定步长离散信号。

PLL输入和输出信号的光谱估计并记录在基础工作区中,以便将模拟结果与理论计算结果进行比较。

示例模型中的示波器为模拟提供了进度指示器。

为了在各种条件下评估PLL的行为,请为每个不同的条件使用单独的工作区文件。此示例提供了五个这样的支持.MAT文件。金宝app所有这些都产生相同的环路瞬态响应。

  1. 基线.Mat-尽可能接近理想。用于评价模型和模拟器引入的数值噪声。

  2. ReferenceModulation.mat-介绍参考相位调制。用于评估锁相环的相位传递函数。

  3. vOphasenoise.mat-引入VCO相位噪声和预分频比等于1。用于评估锁相环控制回路的误差功能。

  4. inbandphaseNoise.mat-引入VCO相位噪声和大于1的预分频器比率。用于评估预分频器比率对PLL控制回路误差函数的影响。

  5. TotalPhaseNoise.mat-所有相位噪声源均已启用,且预分频器比率大于1。

理论计算

本节将演示如何计算锁相环的期望响应。

PLL的目标环路带宽为2MHz,相位裕度为45度。环路滤波器组件按实际水平缩放,电荷泵输出电流按相同的因数缩放,以保持相同的环路动态。

功能getPllLoopResponse计算环路增益作为频率的函数,然后计算从锁相环外部或内部信号的预期响应。定义输入参数,如电荷泵输出电流,VCO灵敏度,预分压器比和无源环路滤波器的分量值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)

这个脚本制备预期光谱计算参考相位调制和VCO输出相位噪声的谱密度。脚本还将结果与锁相环响应相结合,以获得在锁相环输出的相位噪声谱密度。参考相位调制是一个确定的过程,频谱分量的振幅表示为载波振幅(dBc)的一个分数。相比之下,VCO相位噪声是一个随机过程,其谱密度以dBc/Hz表示。

定义的输入参数制备预期光谱脚本如参考输入频率,每个符号的参考循环数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;%PLL测试台目标相位噪声(dBc/Hz)

如果是变量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)。

  • 输出频谱-在PLL的参考输入(dBm到一个1欧姆负载的分辨率带宽的期望频谱值的向量cfgresbandwidth.).

  • 输出频率-计算期望输出频谱的频率向量(Hz)。

  • 指数谱- PLL输出处的预期频谱值的向量(DBM进入一个欧姆负载的分辨率带宽cfgresbandwidth.).

prepareExpectedSpectra;

研究预期结果

在本节中,检查预期的PLL行为。

首先查看PLL的闭环响应。考虑三个基本响应:瞬态响应,传递函数和错误功能。

瞬态响应

在大多数PLL应用中,当循环最初获取阶段锁时,环路瞬态响应是最重要的。对于非常小的初始频率偏移或用于相对高的闭环带宽,瞬态响应可合理地预测循环采集时间。然而,在许多情况下,在发生频率采集之后,环瞬态响应仅表示相位采集期间的响应。此示例仅解决相位采集时间。

绘制锁相环的瞬态响应。

图(1);情节(LoopPhStep.Time LoopPhStep.Data);标题({'PLL循环瞬态响应''到单位输入阶段步骤'}); xlabel(“秒”);伊莱贝尔(“输出阶段”);

转换功能

当期望PLL非常精确地跟踪调制输入或期望它从噪声输入中滤除噪声时,从参考输入到PLL输出的传递函数可能很重要。

创建锁相环传递函数的对数-对数图。

图(2);Semilogx(Loopfrequency,20 * log10(ABS(漏洞));标题(锁相环传递函数的); xlabel('赫兹');伊莱贝尔(“dB”);

误差函数

PLL控制回路应能抑制PLL内部产生的相位噪声,如VCO相位噪声。VCO相位噪声和PLL输出之间的传递函数有时称为回路误差函数。检查该传递函数有助于在将回路误差应用于另一噪声源之前对其进行补偿。

创建锁相环错误函数的日志-日志图。

图(3);semilogx(LoopFrequency,20*log10(abs(LoopEofs));头衔(“PLL环路错误功能”); xlabel('赫兹');伊莱贝尔(“dB”);

在锁相环输出处绘制总期望相位噪声。

图(4);绘图(输出频率、输出频谱);标题(锁相环输出光谱的); xlabel('赫兹');伊莱贝尔(“将dBm转换为1欧姆”);xlim ([PllN * CfgRef-2 * PllFoffset(结束),PllN * CfgRef + 2 * PllFoffset(结束)]);

这个phaseNoiseMeasurefunction是PLL Testbench使用的回调函数。它显示目标输出相位噪声谱密度以及模拟的或预期的相位噪声谱密度。

要将预期的输出相位噪声与特定的设计目标进行比较,请定义工作区变量cfgtargetspectrum..cfgtargetspectrum.由两列阵列组成,指定PLL输出处的目标相位噪声。第一列指定频率偏移(以Hz为单位),第二列指定相应的相位噪声频谱密度(如果为dBc/Hz)。PLL测试台使用回调函数phaseNoiseMeasure显示预期和模拟的相位噪声谱密度。

以DBC / Hz为单位查看预期的PLL输出相位噪声。

(~) = phaseNoiseMeasure (ExpOutputFrequency ExpOutputSpectrum,...cfgresbandwidth,cfgtargetspectrum(:,1)。',“上”,“5”,...cfgtargetspectrum(:,2)。');

如果环路响应不令人满意,您可以查看更详细的结果,如环路滤波器跨越阻抗(loopzofs.)以获得更多的见解,帮助您改进PLL设计。

运行模拟

虽然配置过程很简单,但是要配置许多参数。使用配置示例PLL脚本配置PLL Simulink®模型,然后执行模型。金宝app

配置示例PLL;模拟输出=模拟(“PllPhaseNoiseExample”);

要使绘图更容易,将结果转换为以下四个工作空间变量:

  • SimInputFrequency—存储模拟的输入频谱的频率向量(Hz)。

  • SiminputSpectrum.-PLL(dBm)参考输入处的频谱值矢量,以1欧姆的分辨率带宽转换为1欧姆负载cfgresbandwidth.).

  • SimOutputFrequency-计算模拟输出频谱的频率矢量(Hz)。

  • SimOutputSpectrum- PLL输出的模拟频谱值的向量(DBM成一个欧姆负载,分辨率带宽cfgresbandwidth.).

使结果更易于从工作区打印。

siminputfrequency =重塑(simout.inputfrequency.data(:,结束),1,[]);siminputspectrum =重塑(simout.inputspectrum.data(:,end),1,[]);simoutputprequency = REPAPE(SIMOUT.OUTPUTFREQUENCY.DATA(:,结束),1,[]);SimoutputSpectrum = REPAPE(SIMOUT.OUTPRINTSPECTRUM.DATA(:,END),1,[]);

比较预期和模拟结果

比较锁相环输出的预期和模拟相位噪声。

图(4);绘图(输出频率、输出频谱);标题(锁相环输出光谱的); xlabel('赫兹');伊莱贝尔(“将dBm转换为1欧姆”);xlim ([PllN * CfgRef-2 * PllFoffset(结束),PllN * CfgRef + 2 * PllFoffset(结束)]);持有;情节(SimOutputFrequency SimOutputSpectrum);持有离开

以DBC / Hz为单位查看预期的PLL输出相位噪声。

(~) = phaseNoiseMeasure (SimOutputFrequency SimOutputSpectrum,...SimOutputFrequency(2)-SimOutputFrequency(1),...cfgtargetspectrum(:,1)。',“上”,“5”CfgTargetSpectrum(: 2)。');

保存配置和结果

将整个工作区(包括当前状态下的系统配置和结果)保存到文件中。如果Workspacefile.变量已经存在,则可以将当前状态保存到该文件。若要保存到新文件,请更改Workspacefile..

如果存在(“工作空间文件”,“var”)保存(工作空间文件);结束

另请参阅

||

相关话题