数字锁相环的FPGA实现(一)

数字锁相环的FPGA实现(一)

电赛著

开篇之前,感谢杜勇老师,和他所著的《数字通信同步技术的MATLAB与FPGA实现,Altera/Verilog版》

[TOC]

说到锁相环,相信大家都熟悉.锁相环路(Phase Locked Loop,PLL)是一个闭环的相位控制系统.这博客分成两篇,第一篇讲锁相环的基本原理和参数设置,第二篇写实战.

锁相环的环路模型

可以先看锁相环的组成再跳回来看这里.

假设输入信号和本地振荡器的输出信号是
\begin{aligned} u_{\mathrm{i}}(t) &=U_{\mathrm{i}} \sin \left[\omega_{\mathrm{i}} t+\theta_{\mathrm{i}}(t)\right] \\ u_{\mathrm{o}}(t) &=U_{\mathrm{o}} \cos \left[\omega_{\mathrm{o}} t+\theta_{\mathrm{o}}(t)\right] \end{aligned}

我们通过这个来得到他们的瞬时相差和瞬时频差:
\begin{array}{c}{\theta_{\mathrm{c}}(t)=\left(\omega_{\mathrm{i}}-\omega_{\mathrm{o}}\right) t+\theta_{\mathrm{i}}(t)-\theta_{\mathrm{o}}(t)=\Delta \omega_{0} t+\theta_{\mathrm{i}}(t)-\theta_{\mathrm{o}}(t)} \\ {\dot{\theta}_{\mathrm{e}}(t)=\left(\omega_{\mathrm{i}}-\omega_{\mathrm{o}}\right)+\dot{\theta}_{\mathrm{i}}(t)-\dot{\theta}_{\mathrm{o}}(t)=\Delta \omega_{0}+\dot{\theta}_{\mathrm{i}}(t)-\dot{\theta}_{\mathrm{o}}(t)}\end{array}

锁定与跟踪

总所周知,我们一般假设输入信号的频率和本地振荡器的初始频率(也叫作自由振荡频率)是不同的,也就是说在这种情况下两者会存在固定频差\Delta\omega_0,如果没有进行相位追踪的话,显然两信号的相差\theta_e(t)就会爆炸.如果我们可以控制固定频差在一个很小的范围,就能保证两个信号的相位差在2n\pi左右一个很小的范围震荡,这个就是锁相环路的捕获过程,如下:

image

当瞬时相差稳定在附近,频差接近为0的时候,称锁相环进入同步状态,或称为跟踪状态
所以我们可以定义同步态的定义为:

再定义两个锁相环的参量,捕获时间和捕获带


a

环路的基本性能要求

如上所述,锁相环路存在两种状态,捕获状态和同步状态,就两种不同的工作状态下会有不同的性能参数:

  1. 捕获状态下的捕获时间
    T_p = t_a -t_0
    因为捕获时间其实和t_0是有关系的,毕竟不同时间切入的瞬时相差是不一样的,在这里我们取起始频差等于\Delta\omega_p的初始状态来计算最大捕获时间
  2. 环路的捕获带\Delta\omega_p,即环路能通过捕获状态进入同步状态的最大固有频差|\Delta\omega_0|_{max}
  3. 稳态相差,反映环路的跟踪精度
    \theta_{\mathrm{e}}(\infty)=\left|\theta_{\mathrm{i}}(t)-\varepsilon_{\theta e}\right|_{\max }
  4. 对已经锁定的环路,若改变其固有频差\Delta\omega_0环路所能最大稳定的频率称为同步带\Delta\omega_H
    b

    我们可以看看捕获带和同步带之间的关系,应该注意到在捕捉带外,同步带以内的频带,一旦出现失锁,是不能够重新捕获的

显然,不介绍基本结构和动态方程之前谈性能是没意义的,所以:

锁相环的组成

因为我们需要锁相环来实现相位跟踪,最终的目的是为了实现输出信号和输入信号的同步,出于此来考虑的话,我们需要这个系统的相位误差是可收敛的,即锁相环的系统模型是一个相位的负反馈控制系统,他的基本组成大家也清楚:


c

分别有:

  1. PD(Phase Detector)鉴相器
  2. LF(Loop Filter)环路滤波器
  3. VCO(Voltage-Controlled Oscillator,VCO)压控振荡源

鉴相器(PD)

名副其实,鉴相器就是用来进行相位比较的,
比较常用的就是我们上课所讲过的乘法器加低通滤波器所构成的正弦型特性的鉴相器:


d

但实际上到后面实现数字锁相环的时候可能就有不一样的方法了,敬请期待.

不妨推导一下:(设乘法器增益为K_m)
\begin{aligned} K_{\mathrm{m}} u_{\mathrm{i}}(t) u_{\mathrm{o}}(t)=& K_{\mathrm{m}} U_{\mathrm{i}} \sin \left[\omega_{0} t+\theta_{1}(t)\right] U_{\mathrm{o}} \cos \left[\omega_{0} t+\theta_{2}(t)\right] \\=& \frac{1}{2} K_{\mathrm{m}} U_{i} U_{\mathrm{o}} \sin \left[2 \omega_{0} t+\theta_{1}(t)+\theta_{2}(t)\right] \\ &+\frac{1}{2} K_{\mathrm{m}} U_{\mathrm{i}} U_{\mathrm{o}} \sin \left[\theta_{1}(t)-\theta_{2}(t)\right] \end{aligned}

经过LPF滤除2\omega的高频分量之后,得到:
u_{\mathrm{d}}(t)=\frac{1}{2} K_{\mathrm{m}} U_{\mathrm{i}} U_{\mathrm{o}} \sin \left[\theta_{1}(t)-\theta_{2}(t)\right]=U_{\mathrm{d}} \sin \theta_{\mathrm{e}}(t)
其中:
U_d = \frac12 K_m U_i U_o

环路滤波器(LF)

环路滤波器具有低通特性,一方面起着LPF的作用,另一方面是调节锁相环的参数的重要环节之一.对环路滤波器来说,他是一个线性电路,所以在时域分析中可用一个传输算子F(p)来表示,其实p是微分算子,在频域中就可以用F(s)来表示:

e

在这里我们不妨直接举一个我们都熟知的又有源比例积分滤波器:

f

可用较为轻松地算出他的传输算子:

其中:

其中A为运放开环增益,假设非常大,那么我们可用代入进行一些近似:

所以经过近似后,我们可用得到:

其中:

这个简化模型,特别如果有的时候,性能会接近无源比例积分滤波器

压控振荡器(VCO)

显然,对压控振荡器来说,他的本征方程是:
\omega_{\mathrm{v}}(t)=\omega_{0}+K_{0} u_{\mathrm{c}}(t)
其中
\omega_{\mathrm{v}}(t)表示输出瞬时角频率,K_0为控制灵敏度或增益系数,单位是rad/s \cdot V
我们可以轻松看出,他的控制特性依然是线性的.
而压控振荡器输出到鉴相器中,我们所需要考虑的是他所变化的相位情况,即:
\begin{array}{l}{\int_{0}^{t} \omega_{\mathrm{v}}(\tau) \mathrm{d} \tau=\omega_{0} t+K_{0} \int_{0}^{t} u_{\mathrm{c}}(\tau) \mathrm{d} \tau} \\ {\theta_{2}(t)=K_{0} \int_{0}^{t} u_{\mathrm{c}}(\tau) \mathrm{d} \tau=\frac{K_{0}}{p} u_{\mathrm{c}}(t)}\end{array}

所以我们可以看出鉴相器输出的相位误差信号和压控振荡器的电压控制信号中存在一个积分关系,而这个积分关系自然而然是在压控振荡源中完成的,对锁相环整体的性能也有比较大的影响.

锁相环的动态方程

现在要把刚刚介绍的三个部分综合起来一个系统来看了

非线性相位模型

锁相环在时域上的传输流程是这样的

g

在考虑相位模型前,我们可以先反过来考虑稳态相差的问题,因为这涉及到锁相环稳定的可能性.显然在锁相环捕获的时候会逐步接近到同步状态的时候有,但是两个信号间存在稳态误差(相位)使得控制电压不为0,从而使输出频率在输入频率间震荡.但实际上对理想二阶环(A无穷大)来说,当环路锁定时,稳态相差理论上为0.但具体的分析还看后头

从上述模型中不难得出:
\begin{array} \theta_e(t) = \theta_1(t)-\theta_2(t) \\ \theta_2(t) = K_0U_d\frac{F(p)}{p}sin \theta_e(t) \end{array}
代入得锁相环路动态方程的一般形式:
p \theta_{\mathrm{e}}(t)=p \theta_{1}(t)-K_{0} U_{\mathrm{d}} F(p) \sin \theta_{\mathrm{e}}(t)\tag{*}
不妨定义环路增益
K = K_0U_d
显然这个环路增益表示的是VCO的最大频偏量,因为U_d是误差信号的最大值,K_0是增益系数(见上)

因为经过环路滤波器之后输出的误差信号是直流的,所以稳态误差很容易就可以解出:
\theta_{\mathrm{e}}(\infty)=\arcsin \frac{\Delta \omega_{0}}{K F(j 0)}
这时考虑环路滤波器的传递因子F(p),当A>>0时,有下列近似
F(p)=-\frac{1+p \tau_{2}}{p \tau_{1}}
其中:
\tau_{1}=R_{1} C, \quad \tau_{2}=R_{2} C

所以容易得F(j0) = \infty,这也是刚刚所说的理想二阶环没有稳态误差的来源.
但是实际上,因为A不可能无穷大,上式也只是近似得来的,所以上面的式子成立的可能性几乎也为0...

不妨将F(p)代入锁相环的动态方程:
p^{2} \tau_{1} \theta_{\mathrm{e}}(t)=p^{2} \tau_{1} \theta_{1}(t)-K\left(1+p \tau_{2}\right) \sin \theta_{\mathrm{e}}(t)
因为环路滤波器只有一个极点,传输算子是一阶的,所以相应的环路动态方程是二阶非线性微分方程,所以这种锁相环路称为二阶锁相环路.本博客缺少了对RC积分滤波器和无源比例积分滤波器的分析,有兴趣的pong友可以自行回去看书

线性相位模型

线性相位模型就是将 非线性相位模型 近似得出的,因为显然动态方程是一个高阶的非线性微分方程(特别是加上噪声之后),而又由于瞬时相差一般是很小的,回顾一下高等数学的等价无穷小,我们容易想到sin(x)~x:

h

也就是说,我们可以把正弦换成:

斜率是的直线代替,代入式得:

再令环路增益:

则得到线性模型:

环路的传递函数

事先说明一点就是,这里对环路传递函数的建模是基于线性模型的,也就是说他同样存在上述的等价无穷小代换问题,所以不适应瞬时相差过大的情况.

不妨对线性模型做拉普拉斯变换:
s \theta_{\mathrm{e}}(s)=s \theta_{1}(s)-K F(s) \theta_{\mathrm{e}}(s)

  1. 考虑开环状态下(无反馈支路),输入相位\theta_1(t)驱动所引起的输出相位\theta_2(t)的响应:
    s (\theta_{\mathrm{1}}(s)-\theta_{\mathrm{2}}(s))=s \theta_{1}(s)-K F(s) \theta_{\mathrm{1}}(s)
    解得:
    H_0(s) = \frac{\theta_2(s)}{\theta_1(s)}\big |_{open loop} = K\frac{F(s)}{s}
  2. 考虑闭环状态下,输入相位\theta_1(t)驱动所引起的输出相位\theta_2(t)的响应:
    s (\theta_{\mathrm{1}}(s)-\theta_{\mathrm{2}}(s))=s \theta_{1}(s)-K F(s) (\theta_{\mathrm{1}}(s)-\theta_{\mathrm{2}}(s))

H(s) = \frac{\theta_2(s)}{\theta_1(s)}\big |_{close loop} = \frac{K F(s)}{s+K F(s)}

  1. 考虑闭环状态下,输入相位\theta_1(t)驱动所引起的误差相位\theta_e(t)的响应:
    s \theta_{\mathrm{e}}(s)=s \theta_{1}(s)-K F(s) \theta_{\mathrm{e}}(s)
    H_e (s) = \frac{\theta_e(s)}{\theta_1(s)}\big |_{close loop} = \frac{s}{s+K F(s)}

不妨将不同的环路滤波器的传递函数代入得下表:


i

显然此时的二阶系统经线性化后变成二阶线性系统,这个的话我们在学校学的知识就已经足以应付了(特别是电路),此时定义描述二阶线性系统的两个系统常量:无阻尼振荡频率\omega_n和阻尼系数\xi来描述系统的响应,对应关系见下表:

j

结语

这里先省略锁相环的性能分析,搞这个有点累,放到下一篇(或下几篇)博客再讨论,或者边实战边讨论吧.因为电赛这次做得题目最多就做一个位同步而已,根本就没有这么多的东西要看.我也只是先做一点基础铺垫,以免后面出问题.

想我尽早更新的方法之一

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,302评论 5 470
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,232评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,337评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,977评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,920评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,194评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,638评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,319评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,455评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,379评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,426评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,106评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,696评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,786评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,996评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,467评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,043评论 2 341

推荐阅读更多精彩内容

  • 姓名:徐娇 学号:17011210547 转自http://mp.weixin.qq.com/s/ok6S8sK...
    徐Jiao阅读 3,448评论 0 2
  • 看过这100个知识点,模电其实也不难 2016-03-18 21ic电子网 模电想必是电子专业的学生头疼的一门课程...
    岳坛阅读 2,678评论 1 16
  • 姓名 张立泽 学号:16020188014 转载自:http://bbs.eeworld.com.cn/dryc...
    Gideon_576c阅读 2,446评论 0 0
  • 今天新读李白的《闻王昌龄左迁龙标遥有此寄》,后两句:我寄愁心与明月,随风直到夜郎西。不得不说李白真的是一个非常感性...
    圆圆鼓鼓阅读 980评论 0 0
  • 今天听科学家种太阳在分答的小讲,最后一句都猜到了,来日以富贵相见。所以,现在和好基友在分别的时候也往往喜欢用这句话...
    闻舒阅读 821评论 0 2