数字锁相环DPLL基本认识
🌈以下是自己关于锁相环的学习及认识,参考教材是杜勇老师主编的《锁相环原理及FPGA实现》,老师的教材编写风格真的很幽默,而且通俗易懂,虽然很难,但是不乏趣味性。参考教材下载链接已放在文末。
一阶锁相环原理
一. 锁相环的组成
1.1 总体概述
根据不同的应用情况,实际工程设计中的锁相环路有很多种,如用于载波提取的窄带跟踪电路、用于解调器的解调环、用于提高本振频率稳定度的分频或倍频锁相环电路等。虽然存在各种形式的环路,但它们都是由三个基本部件组成:鉴相器(Phase Detector,PD)、环路滤波器(Loop Filter,LF)和电压控制振荡器(Voltage ControlledOscillator,VCO)。其基本电路组成原理图如下:
为便于后续对环路模型的深入讨论,首先有必要对图 中各节点信号之间的转换关系进行明确。其中$\theta_{1}(t)$为输入信号的瞬时相位,以弧度( rad)为单位;$\theta_{2}(t)$ 为 VCO 输出频率 信 号 的 瞬时 相 位 , 以弧 度 ( rad ) 为 单 位 ; $u_{d}(t)$ 为 $\theta_{1}(t)$与 $\theta_{2}(t)$ 的 差 值 $\theta_{e}(t)$( 令$\theta_\mathrm{e}(t)=\theta_1(t)-\theta_2(t)$)的函数,是一个电压信号,单位为伏特( V); $u_{c}(t)$ 为 $u_{d}(t)$ 经 LF 滤波后的电压信号,单位为伏特( V)。
1.2 压控振荡器VCO
-
从 VCO 的功能来看,它是一个电压与频率的变换装置,在环路中作为压控振荡器,它的振荡频率随输入控制电压线性地变化,其变化关系为$$\omega_\mathrm{v}(t)=\omega_\mathrm{o}+K_0u_\mathrm{c}(t)$$
式中,$w_{v}(t)$是压控振荡器的瞬时角频率,单位为 rad/s ; $w_{0}$ 是压控振荡器的固有振荡角频率,即没有输入控制电压情况下的振荡角频率,单位为 rad/s ; $K_{0}$ 为 VCO 的频率控制灵敏度或称增益系数,单位是 rad/(s*V) 。实际应用中,模拟压控振荡器的控制特性只有有限的线性控制范围,超出这个范围之后控制灵敏度将会下降。
-
使用SystemView对VCO器件进行仿真
元件名称 元件参数(Parameters) 信号源 Source: Time Gain= 1v/sec Offset = 0v VCO Amp= 1v Freq: 5Hz Phase= 0deg Mod_Gain= 2Hz/v Output_0=Quadrature (Sin0) 根据最后的仿真波形不难得出,随着输入电压的增大,VCO的输出信号频率也随之增大。
-
VCO是一个积分器
因为对信号瞬时相位进行微分,就可以得到信号的瞬时频率;反之,对信号的频率进行积分,就可以得到信号的瞬时相位。因此VCO 输入电压$u_{c}(t)$与输出信号的相位之间的关系如下:$$\int_0^t\omega_\mathrm{v}(\tau)\mathrm{d}\tau=\omega_\mathrm{o}t+K_0\int_0^tu_\mathrm{c}(\tau)\mathrm{d}\tau $$
上式中除了积分因子之外,还有线性乘法因子,所以它还不是纯粹的积分器。由于鉴相器的输出$u_{d}(t)$,为$\theta_{1}(t)$ 与 $\theta_{2}(t)$的差值 $\theta_{e}(t)$的函数。也就是说,$u_{d}(t)$不是与 VCO 的瞬时相位相关,而是与 VCO 和输入信号的瞬时相位差相关的。既然是相位差,因此完全可以人为任意设定一个基准相位(即参考相位),输入信号与输出信号的相位都与这个基准相位进行比较,再将比较的结果进行差值。但对于本地VCO 来讲,一旦 VCO 器件选定,其固有频率就确定了。因此,我们可以将 VCO的自然振荡角频率产生的相位$w_{0}(t)$作为基准相位。
1.3 鉴相器PD
-
鉴相器原理
不妨假设初始的输入信号表示为
$$u_\mathrm{i}(t)=U_\mathrm{i}\sin[\omega_\mathrm{i}t+\theta_\mathrm{i}(t)]=U_\mathrm{i}\sin[\omega_\mathrm{0}t+(\omega_\mathrm{i}-\omega_\mathrm{0})t+\theta_\mathrm{i}(t)]$$
令$\theta_1(t)=\Delta\omega_0t+\theta_\mathrm{i}(t)$,$\Delta\omega_\mathrm{o}=\omega_\mathrm{i}-\omega_0$,其中 $w_{0}$为输入信号与 VCO 自然角频率之间的固有角频率差。因此,环路的瞬时相差和频差可以用下式表示:$$\theta_\mathrm{e}(t)=\theta_1(t)-\theta_2(t)=\Delta\omega_\mathrm{o}t+\theta_\mathrm{i}(t)-\theta_2(t)$$
鉴相器,顾名思义,是一个相位比较装置,用来检测输入信号相位$ \theta_1(t)$与反馈信号( VCO输出信号)相位$\theta_2(t)$之间的相位差$\theta_e(t)$。输出的误差信号$u_\mathrm{d}(t)$是相差$\theta_e(t)$的函数。也就是说,只要某个装置的输出信号电压值的变化,能够直接反映相差$\theta_e(t)$的变化,就可以实现鉴相功能。当然,这种变化的转换最好具有线性的关系,否则分析和使用起来将十分复杂。实际上,鉴相器的特性可以是多种多样的,有正弦形特性、三角形特性、锯齿形特性等。鉴相器,它可用乘法器与低通滤波器的串接作为模型,其原理图如下所示:
-
正弦鉴相器
设乘法器的相乘系数为Km (这是一个无量纲的系数),输入信号$u_i(t)$与反馈信号$u_o(t)$ 相乘后的输出为$$\begin{aligned}K_\mathrm{m}u_\mathrm{i}(t)u_\mathrm{o}(t)& =K_\text{m}U_\text{i}\sin[\omega_\text{o}t+\theta_1(t)]U_\text{o}\sin[\omega_\text{o}t+\theta_2(t)] \&=-\frac12K_\text{m}U_\text{i}U_\text{o}\cos[2\omega_\text{o}t+\theta_1(t)+\theta_2(t)] \&+\frac12K_\text{m}U_\text{i}U_\text{o}\cos[\theta_1(t)-\theta_2(t)]\end{aligned}$$
乘法器输出结果经过低通滤波器( Low Pass Filter,LPF)滤除频率为$2w_0$的高频分量之后,得到误差电压为$$\begin{aligned}u_{\mathrm{d}}(t)&=\frac12K_\mathrm{m}U_\mathrm{i}U_\mathrm{o}\cos[\theta_1(t)-\theta_2(t)]\&=U_\mathrm{d}\cos\theta_\mathrm{e}(t)\end{aligned}$$
其中$ U_d = \frac12K_\mathrm{m}U_\mathrm{i}U_\mathrm{o}$为鉴相器输出的最大电压。
-
余弦鉴相器
它与正弦鉴相器的区别就在于它的输出$u_o(t)$,其推导过程如下: $$\begin{aligned}K_\mathrm{m}u_\mathrm{i}(t)u_\mathrm{o}(t)& =K_\text{m}U_\text{i}\sin[\omega_\text{o}t+\theta_1(t)]U_\text{o}\cos[\omega_\text{o}t+\theta_2(t)] \&=\frac12K_\text{m}U_\text{i}U_\text{o}\sin[2\omega_\text{o}t+\theta_1(t)+\theta_2(t)] \&+\frac12K_\text{m}U_\text{i}U_\text{o}\sin[\theta_1(t)-\theta_2(t)]\end{aligned}$$
乘法器输出结果经过低通滤波器( Low Pass Filter,LPF)滤除频率为$2w_0$的高频分量之后,得到误差电压为 $$\begin{aligned}u_{\mathrm{d}}(t)&=\frac12K_\mathrm{m}U_\mathrm{i}U_\mathrm{o}\sin[\theta_1(t)-\theta_2(t)]\&=U_\mathrm{d}\sin\theta_\mathrm{e}(t)\end{aligned}$$
其中$ U_d = \frac12K_\mathrm{m}U_\mathrm{i}U_\mathrm{o}$为鉴相器输出的最大电压。
-
$u_d(t)$求解
针对正余弦鉴相器的输出不同,我们需要对正弦鉴相器角度进行转化,令$\theta_{\mathrm{el}}(t)=\theta_{\mathrm{e}}(t)+\pi/2$,$\theta_{21}(t)=\theta_2(t)-\pi/2$,则正弦鉴相器的输出就有如下变换:$$\begin{aligned}u_{\mathrm{d}}(t)&=U_{\mathrm{d}}\cos\theta_{\mathrm{e}}(t)\&=U_{\mathrm{d}}\cos[\theta_{\mathrm{el}}(t)-\pi/2]\&=U_{\mathrm{d}}\sin\theta_{\mathrm{el}}(t)\end{aligned}$$
其中:$\theta_{\text{е}1}(t)=\theta_1(t)-\theta_{21}(t)$
通过转化之后,无论是正余弦,他们都可以满足正弦鉴相器曲线。
仔细观察一下正弦曲线,在一个$2\pi$周期内,可以将线分为两段来处理:$(-\pi/2,\pi/2)$ 和$(\pi/2,3\pi/2)$。上升段可以近似成斜率为Ud 的直线,下降段可以近似成斜率为- Ud 的直线(实际上,只有当环路工作在锁定状态时,鉴相特性处在零度附近,正弦特性才具有最佳的线性特性)。当 $-\pi/2<\theta_{\mathrm{el}}(t)<\pi/2$时,输出可近似为:$$u_{\mathrm{d}}(t)=U_{\mathrm{d}}\sin\theta_{\mathrm{el}}(t)\approx U_{\mathrm{d}}\theta_{\mathrm{el}}(t)$$
1.4 环路滤波器LF
简单说来,环路滤波器是将鉴相器输出含有纹波的信号平均化,将此变换为交流成分少的直流信号的低通滤波器。实际上,环路滤波器确实是一个低通滤波器,但不仅仅是普通的低通滤波器, 除了完成低通滤波功能外,还有一种重要作用,即决定整个 PLL 电路的传输特性,进而决定 PLL 电路的稳定性、捕获带宽、捕获速度等几乎所有的重要特性。
因此,环路滤波器的作用有两点:一是低通滤波器作用,且通带要远低于鉴相器的带宽,因为 VCO 只有在输入纹波小的直流信号时,才能输出寄生成分小的高质量正弦信号;二是控制环路特性,并且这才是环路滤波器的主要功能。再进一步讲,对于电子工程师来讲,所谓锁相环电路设计,其实就是在设计环路滤波器而已。
二. 最简单锁相环的SystemView仿真
相位相同
元件 | 参数 |
---|---|
信号源 | Amplitude=1 V; Fequency=100 Hz; Phase=0; |
乘法器 | ---- |
低通滤波器 | Design Filters=Analog; Filter Type=Chebyshev; No.of Poles=4; Low Cuttoff=150 Hz; Filter Pass-Band=Lowpass; Inband Ripple=0.1 dB |
增益放大器 | Gain Units=Linear; Gain=1 |
VCO | Amplitude=1 V; Fequency=100 Hz; Phase=0; Mod Gain=100 Hz/V |
相位不同
元件 | 参数 |
---|---|
信号源 | Amplitude=1 V; Fequency=100 Hz; Phase=90; |
乘法器 | ---- |
低通滤波器 | Design Filters=Analog; Filter Type=Chebyshev; No.of Poles=4; Low Cuttoff=150 Hz; Filter Pass-Band=Lowpass; Inband Ripple=0.1 dB |
增益放大器 | Gain Units=Linear; Gain=1 |
VCO | Amplitude=1 V; Fequency=100 Hz; Phase=60; Mod Gain=100 Hz/V |