主要内容

数字锁相环路

这个例子展示了如何建模使用混合信号的数字锁相环路Blockset™。在数字锁相环路,相位检测是由时间数字转换器(TDC),循环过滤是由一个数字滤波器,振荡器是一个数控振荡器(DCO)。这个例子演示了TDC的行为模型,利用DSP体系认证工具箱的BiquadFilter™数字环路滤波器,并利用配装和dac模型的混合信号Blockset DCO。

这个示例还演示了一个数字锁相环的控制回路的设计方法通过使用混合信号的锁相环架构Blockset设计一个模拟锁相环,然后翻译等效的数字模拟电路设计。

数字锁相环

开放和运行示例模型的数字锁相环。然后选择锁相环Testbench模型中并单击图相位噪声按钮(或调用按钮的回调函数)。将回路滤波器波形和相位噪声数据保存以后比较模拟锁相环的结果。

打开(“DigitalPLL.slx”);simout = sim (bdroot);msblks.PLL.pllTBPlotPhaseNoiseButton ([bdroot' /锁相环Testbench”]);dpll_vcntl = simout.dpll_vcntl;getDigitalPllPhaseNoise;

时间数字转换器

TDC的行为模型使用触发子系统采样时钟时间上升边缘的参考时钟和锁相环的小数分频器。然后计算之间的区别这两个采样时钟时间和转换到一个8位整数输出值。模型的数字反馈回路以参考,输出端口采样率设置为参考频率。

open_system (“DigitalPLL / TDC”,“力”);

数字控制振荡器

DCO模型表示一个VCO电路的控制由一个数字模拟转换器(DAC)。引发的DAC转换是参考时钟。

启用了VCO相位噪声损伤。DAC模型也可以损伤模型。然而DAC障碍不启用的示例模型。

你可以另外模型DCO通过直接设置一个混合信号Blockset VCO的控制电压连续整数数组,数组横跨数字输入值的范围。然后你可以设置输出频率数组提供的输出频率为每一个可能的输入值。

open_system (“DigitalPLL / DCO”,“力”);

数字环路滤波器

从DSP系统回路滤波器是BiquadFilter工具箱。它是时钟基准时钟频率的输出端口TDC。

使用自动设计的数字环路滤波器设计的特点整数N与单一模量预定标器锁相环模型的混合信号Blockset锁相环结构库。模拟回路滤波器设计达到指定的环路带宽和相位,那么电路和样本区间值转换为数字滤波器系数。获得正确的整体环路增益,比例因子应用于biquad滤波器回路滤波器的模型。

推导的环路增益比例因子的相似之处全数字锁相环的设计过程基于电荷泵锁相环路类比

推导中使用的变量

  • 美元I_ {CP} $电荷泵最大电流振幅

  • Z (s)美元模拟回路滤波器传输阻抗

  • 美元K_ {VCO} $模拟和数字锁相环的VCO的敏感性

  • T_ {REF}识别美元参考时钟周期

  • $ \ Delta_ {TDC} $TDC时间分辨率

  • H (s)美元数字环路滤波器传递函数

  • 美元K_ {DAC} $DAC获得

注意,在这个例子中,TDC是2的总范围参考时钟周期。

方程来模拟和数字锁相环的环路增益等于:

$ $ {{{I_ {CP}}}在{2 \π}}\ Z \离开(s \右){{{K_ {VCO}}} \ / s} = {{2 {T_ {REF}识别}}\ /{{2 _ \π}}}{1 \ /{{\三角洲_ {TDC}}}} H \离开(s \右){K_ {DAC}} {{{K_ {VCO}}} \ / s} $ $

自TDC和DAC在这个例子中已经配置为具有相同数量的比特,这个方程减少:

$ $ H \左(s \右)= {{{I_ {CP}}} \ / 2} Z \ (s \右)$ $

因为这个函数getSOSfromAnalogPLL包括在这个例子中产生滤波器系数,导致滤波器增益Z (s)美元的比例因子循环过滤器$ {{{I_ {CP}}} \ / 2} $

回路滤波器系数,输入信号和输出信号在这个例子都是双精度浮点数,也可以用定点设计师™模型整个数字反馈路径使用完全相同的数字精确的电路设计,从而获得更精确的评估量化噪声等障碍。

你可以设计和配置数字环路滤波器通过运行脚本:

% % % designDigitalLoopFilter;

比较模拟锁相环

你可以比较的循环采集模拟锁相环的数字锁相环。额外的高频纹波的模拟回路滤波器响应是由于电荷泵波形。

打开(“AnalogPLL.slx”);simout = sim (bdroot);apll_vcntl = simout.apll_vcntl;plotLoopFilterWaveforms;msblks.PLL.pllTBPlotPhaseNoiseButton ([bdroot' /锁相环Testbench”]);情节(xdpll ydpll,“线宽”2,“DisplayName的”,“数字锁相环”);