锁相环

锁相回路（PLL: Phase-locked loops）是利用回授（Feedback）控制原理实现的频率及相位的控制系统，其作用是将电路输出的信号与其外部的参考信号保持同步，当参考信号的频率或相位发生改变时，锁相回路会检测到这种变化，并且通过其内部的回授系统来调节输出频率，直到两者重新同步，这种同步又称为“锁相”（Phase-locked）。
锁相回路有许多种，最简单的锁相回路会包括以及鉴相器，形成回授回路。振荡器产生讯号，鉴相器比较输出讯号和输入周期讯号之间的相位，调整振荡器输出，设法和输入周期讯号同步。
若让输出讯号和输入讯号之间的相位一致，则两者的频率也会一致。因此，锁相回路除了让相位一致之外，也可以追踪输入讯号的频率，或是产生频率是输入讯号整数倍的信号。此特性可以用在电脑时脉的同步、及。
锁相回路常用在无线电、电信、电子计算机及其他电子设备中。锁相回路也可以用来解调变讯号、从高杂讯的通讯频道中恢复原始信号、产生频率为输入信号频率整数倍的频率（频率合成）、或在数位电路（例如微处理器）中产生准确的时钟脉冲。因为单一的积体电路即可提供完整的锁相回路机能，此技术已普遍使用在现在的电子设备中，输出频率从1Hz以下，到数GHz。
实际上类似的例子.
赛车.
锁相回路可以用赛车来说明：考虑两部车进行的绕圈赛车，一部车代表输入信号，另一部车代表锁相回路的输出，也就是压控振荡器（VCO）频率。每一圈代表一个完整的周期。每小时的圈数代表频率，两部车之间的距离代表信号之间的相位差。
大部份赛车的过程中，两部车都可以超过对方或落过对方，这类似锁相回路的非锁相状态。
但若有事故，赛车场会出现黄色警告旗，此时，任何一部车辆都不允许超过其他的车，也不允许被其他的车超过。此时的两部车就代表锁相回路在锁相状态下的输入信号和输出信号。每一个驾驶者都会量测其车辆和其他车辆的相位差。若和前车保持的距离太远了，会设法加速使距离拉近，若和前车保持的距离太近了，会设法减速使距离拉远。因此，两部车会保持固定的距离。因为车辆不允许超过其他的车，因此在相同时间内，两车绕的圈数会相同，因此两个信号的频率相同。
时钟的例子.
相位和时间成正比，因此相位差可以用时间差来表示。时钟相对其他时钟而言，某程度上会有锁相（固定时间差），但准确度可能有些不同。
若让时钟自行运作，各时钟计时的速率会有些微的差距。例如墙上的钟每一小时可能会比国家标准技术研究所的钟快了几秒，随著时间过去，时间差会越来越大。
若要让墙上的钟和参考时钟同步，可以每一周比较墙上的钟和参考时钟的时间（相位比较），然后调整墙上的钟。若没有调整，墙上的钟和参考时钟的偏差会越来越大。
有些时钟有计时调整功能，若比较时钟和标准时钟，发现时钟太快了，会设法让时钟的计时慢一点，若时钟太慢了，会设法让时钟的计时快一点。若顺利的话，时钟和标准时钟的误差会渐渐缩小。几周后，时钟就会准确的对应标准时钟（在时钟本身的稳定性范围内，频率和相位都和标准时钟一致）。
早期电动机械学中也有锁相回路，例如1921年的。
历史.
荷兰物理学家克里斯蒂安·惠更斯早在1673年就发现弱耦合的摆钟会有自发性同步的情形。在19世纪时，瑞利男爵发现弱耦合的风琴管及音叉也有同步的情形。1919年时，和J. H. Vincent发现二个调谐到频率略有差异的电子振荡器，若在谐振电路中耦合，会以相同的频率共振。电子振荡器的自动同步是由爱德华·阿普尔顿在1923年发现的。
1925年时，布里斯托尔大学电机系的大卫·罗宾森（David Robertson）教授，在威尔斯纪念大楼Great George钟敲钟出声的时钟控制电路中，引入了锁相的概念。罗宾森教授设计的钟有一个机电装置可以调整摆钟的振动速率，所用的修正讯号是来自一个比较电路，在每天上午格林威治时间10点时，比较格林威治天文台的电报脉冲以及摆钟的相位。其中除了现在电子锁相回路中会有的每一个组件之外，罗宾森的设计还有一个特点，其相位比较器是用继电器逻辑的方式实现相位/频率比较的机能，一直到1970年代之后才在电子电路中看到类似的设计。罗宾森的研究比后来1932年提出，后来命名为「锁相回路」（phase-lock loop）的研究要早。1932年的研究是英国科学家设法想找到可以代替埃德温·霍华德·阿姆斯特朗的超外差收音机、或的方案。在同差系统中，会将调到想要的频率，再乘上输入的信号。所得的输出信号会包括原始的调变资讯。原意是想发展一种调谐电路比超外差收音机要少的电路。因为本机振荡器的频率会快速的飘移，会有自动修正信号加到振荡器上，使其频率和相位和输入信号相同。此技术是在1932年时，在Henri de Bellescize发表在法文期刊L'Onde Électrique的论文中所提及。
至少从1930年代起，类比电视接收器的锁相回路垂直扫描和水平扫描电路，都会和广播信号的同步信号锁相。
西格尼蒂克在1969年推出了具有完整锁相回路机能的单片集成电路（例如NE565），类似技术的应用就不断的增加。后来RCA推出了CD4046互补式金属氧化物半导体的微功率锁相回路IC，是当时广为使用的积体电路。
结构和功能.
一个锁相回路电路通常由以下模块构成：
每个模块的简单原理描述如下：
性能指标.
减少抖动以及杂讯.
锁相回路的理想特性是是参考时脉和回授时脉的边缘可以对正。在PLL已经锁定时，两者相位的平均误差称为静态相位偏移（static phase offset）或稳态相位误差（steady-state phase error）。二个相位之间的变异称为追随抖动。理想上，静态相位偏移要是0，追随抖动越小越好。
是锁相回路会有的另一种抖动，是因为振荡器本身以及振荡器的频率控制电路元件所造成。在此一层面上，已有一些技术比其他技术的性能更好。最早的数位锁相回路是用射极耦合逻辑电路（ECL）组成，不过其功耗很高。若要让锁相回路有小的相位杂讯，最好避免使用电晶体－电晶体逻辑（TTL）或的互补式金属氧化物半导体（CMOS）等饱和逻辑特性的零件。
锁相回路的另一个理想特性是在电源及地的电压突然变化时,其产生的时脉频率和相位不会受到影响。这称为电源电压抑制比，抑制比越高越好。
若要改善输出的相位杂讯，其VCO可以用。
应用领域.
锁相回路常用在同步应用中，例如太空和门限扩展（threshold extension）的通讯、和符号同步。锁相回路也用在频率调制信号的解调变。在无线电发射机中，会用PLL来合成新的频率，是参考频率的倍数，和参考频率有相同的稳定度。
其他的应用有：
时脉恢复.
有些资料流，特别是高速的串列资料流（例如硬碟磁头读到的原始资料流），在传送时不会将其时脉信号一起送出。接收器利用类似的参考频率来产生时脉，再利用PLL将其时脉和接收资料的相位锁定同步。此程序称为。为了时脉功能，资料流中必须有够快的资料切换，以校正PLL振荡器的频率飘移。一般而言，会使用一些线路码（例如8b/10b），让二次资料切换时间间隔有一个明确的上限值
偏移校正.
若时脉和资料一起传送，会用时脉为准来进行资料取样。因为时脉接收后需放大，才能驱动正反器取样资料。时脉边缘和接收的资料窗之间会有一个有限大小的时间延迟，长度随过程、温度、电压而不同。此时间延迟会限制传送资料的速率。有一种消除延迟的方式是在接收端加入一个偏移校正（deskew）的PLL，使得每一次资料正反器的时脉都接收到的时间同相位。此应用中，常会使用一种特殊的锁相回路，称为（DLL）。
展频.
所有的电子系统都会发射一些不想要的无线电讯号。有许多的机构（例如美国的联邦通信委员会）会限制这些发射的能量，以及其带来的干扰。发射的杂讯其频率一般会有一个尖锐的频谱峰值（一般是在元件的工作频率，或是其几倍的谐波）。系统设计者可以用展频（spread-spectrum）PLL，将频谱上的能量分散在其他频段，使峰值降低，以减少对高Q值接收器的干扰。例如，将工作频率略为往上或往下调整（约1%），工作在数百MHz的元件，可以将其干扰频谱扩展到数MHz的频宽范围内，这可以大幅减少对调频广播频道（其频宽是数万Hz）的干扰。
时脉分配.
一般来说，晶片的参考时脉会驱动晶片中的锁相回路（PLL），接著驱动晶片内的时脉分配。时脉分配一般会以平衡分配，设法让时脉可以同时到达晶片的各个端点。其中一个端点是锁相回路的回授输入。锁相回路的功能是比较分配的时脉以及参考时脉，并且调整分配时脉的相位以及频率，使其分配时脉的相位以及频率和参考输入同步。
锁相回路无所不在，包括在距离数公尺的系统时钟校准，也用在晶片中的时脉里。有时参考信号不一定是单纯的时脉信号，也有可能是有够快资料转换的资料流，让锁相回路可以从资料流中取得正常且够快的时脉讯号。有时参考时脉的频率和分配时脉相同，也有可能分配时脉的频率和参考频率之间有有理数的比例关系。
AM侦测.
锁相回路可以同步的解调变调幅（AM）信号。锁相回路会从调幅信号的载波中还原频率以及相位资料。VCO收到的相位会和载波差90度，因此会调整相位差使其同步，再送到乘法器中。乘法器的输出包括频率信号的和以及差，再经过低通滤波后取得解调变信号。因为PLL只会针对很接近VCO输出的载波频率有反应，因此PLL AM侦测器有高度的选择性以及杂讯抑制能力，这是传统峰值型解调变器作不到的。不过，若调幅讯号的调变深度到100%，锁相回路可能会无法锁定（lose lock）。
频率合成.
在数位无线通讯系统（例如GSM、CDMA等）中，在传输时会用PLL针对本地振荡器进行上转换（up-conversion），在接收时也会对本地振荡器进行。大部份的行动电话中，此一机能已整合到单一的积体电路中，以减小行动电话的成本及体积。在基地站，因为讯号需要的高性能，需要用分立元件来达到所需的性能。GSM本地振荡器模组一般会用积体电路及分立的共振腔压控振荡器。
方块图.
鉴相器会比较两个输入信号，并产生和其相位差成正比的误差信号，误差信号会经过低通滤波，之后驱动压控振荡器（VCO），以产生输出相位。此输出会透过回授回路（可能再加上除频器）再成为系统的回授输入，因此形成负反馈。若输出相位偏移，误差信号会增加，使压控振荡器的相位往另一个方向变化，以减少相位误差。因此输出相位可以锁定另一输入信号（称为参考信号）的相位。
类比的锁相回路是由类比的鉴相器、低通滤波器以及压控振荡器组成，形成负反馈的组态。数位的锁相回路则会有数位的鉴相器，也可能在参考信号、反馈路径（或两者都有）加上除频器，让PLL输出的频率可以维持为参考信号频率的有理数。若将反馈路径的除以"N"除频器改为可程式化的吞脉冲计数器，也可以让输出信号的频率是参考信号的非整数倍。
振荡器会产生周期性的输出信号。假设一开始振荡器的频率几乎和参考信号相同，若振荡器的相位落后参考信号，鉴相器会增加振荡器的控制电压，使其频率加快。若振荡器的相位领先参考信号，鉴相器会降低振荡器的控制电压，使其频率减慢。因为一开始振荡器的频率可能会和参考信号的频率差很多。实务上的鉴相器也会回应频率差，目的是增加可允许输入的锁定范围。依应用的不同，可能会用压控振荡器的输出作为PLL系统的输出，也可能是以给振荡器的控制信号作为系统输出。
组成.
鉴相器.
鉴相器（phase detector，简称PD）会产生对应二信号相位差的电压。在鉴相器中，鉴相器的信号输入分别是参考输入，以及压控振荡器（VCO）输出的回授信号。鉴相器的输出可以用来控制压控振荡器，使二信号之间的相位差可以调整为定值，因此整个系统是负回授系统
不同种类的鉴相器有不同的性能特性。
例如，混频器会产生谐波，因此会产生不希望出现的频率边带，也称为参考突波（reference spurs），若希望压控振荡器（VCO）产生的是单一频率的讯号，这就会增加设计的复杂性。在滤波器设计需求中，会因为这部份的滤波而降低捕获范围，或是拉长锁定时间。在这些应用中会使用比较复杂的数位鉴相器，其输出不会有严重的参考突波问题。而且在锁波时，其输入的稳态的相差会接近90度。
在锁相回路应用中，常需要知道锁相回路是否有失锁（out of lock）的情形，比较复杂的数位鉴相器会有对应失锁的输出信号。
数位锁相回路中常会使用XOR 门当作简易鉴相器。若对线路作一些简单的修改，也可以用在类比锁相回路中。
滤波器.
锁相回路滤波器（多半是低通滤波器）一般会有两种不同的功能。
第一个功能是决定回路的动态特性（也称为稳定性）。这是指回路对扰动（例如参考频率的变动、田回授除频器的变化，或是启动）的响应特性。常见的考量是回路可以锁定的范围（pull-in范围、锁定范围、捕获范围），回路锁定的速度（lock时间，lock-up时间或安定时间）、特性等。依应用的不同，滤波器可能会是以下几种的一种或多种：单纯的比例（P，增益或衰减量）、积分（I，低通滤波器）、导数（D，高通滤波器）。回路的参数常会用波德图及相位裕度进行检验。控制理论中的常用概念（包括PID控制器）用设计此功能。
第二个功能是限制参考信号的频率能量范围（涟波），这是鉴相器输出以及VCO控制输入上的信号。此信号上若有不希望出现的频率边带，即为参考突波（reference spurs）。
此模组的设计可能主要会是上述二个功能中的一个，也有可能是比较复杂的模组，设法达到上述二功能。常见的取舍可能是增加系统频宽，但是会降低稳定值，或是加入阻尼使稳定性变好，但是降低系统反应速度，增加安定时间。上述的调整也会影响相位杂讯。
振荡器.
所有的锁相回路都会有可以调整输出频率的振荡器，可以是由类比电路驱动的类比振荡器（类比锁相回路），或是像部份数位锁相回路（DPLL）的作法，使用数位类比转换器（D-A converter）。若是全数位锁相回路（ADPLL），会用纯数位的振荡器。
回授路径以及除频器.
可以在PLL的振荡器和回授输入之间加入除频器，以进行。在无线电发射器的应用中常会用到可程式的除频器，因为可以用稳定、准确但昂贵的单一频率石英晶体谐振器产生许多不同的频率。
有些PLL在参考时脉和给鉴相器的参考输入之间加入除频器。若回授回路有除formula_1的除频器，而参考输入有除formula_2的除频器，可以让PLL的频率为参考频率的formula_3倍。直接给锁相回路较低频率的参考输入似乎不难，不过有时参考频率因为其他因素而受到限制，因此会改在参考时脉和给鉴相器的参考输入之间加入除频器。
乘频率的PLL也可以用将电子振荡器的输出锁定在参考信号的"N"次谐波来实现。此时就不用单纯的鉴相器，会用谐波混合器（harmonic mixer）。谐波混合器会将参考信号变成有许多谐波的脉冲序列，。VCO的输出会大约调整到接近其中的一个谐波。因此，想要的谐波混合器输出（表示"N"次谐波和VCO输出的差异）落在滤波器通带频率范围内。
回授回路中也不一定只能用除频器。回授回路中也可以用乘频器或频率混合器。乘频器会让VCO的输出是参考频率的几分之一。也可以是这些元件的组合。例如频率混合器加上除频器：这可以让除频器运作在很低的频率，但不会影响回路增益。
建模.
类比PLL的时域模型.
用类比乘法器作为鉴相器，使用线性滤波器的类比PLL，可以用以下方式来推导其方程式。令鉴相器的参考输入为formula_4，VCO的输出为formula_5，相位分别是formula_6和formula_7。formula_8和formula_9是各信号波形的函数。则鉴相器的输出formula_10为
VCO频率会是VCO输入的函数formula_12
其中formula_14为VCO的灵敏度，其单位为Hz / V，
formula_15是VCO的自由运行频率。
回路滤波器可以用以下线性微分方程系统来表示
其中formula_10是滤波器输入
formula_12是输波器输出，formula_19是
formula_20维方阵，
formula_21. formula_22是滤波器的初始状态。星号表示共轭转置。
因此PLL的系统如下
其中formula_24是初始的相位偏差量。
类比PLL的相位域模型.
考虑PLL的参考输入formula_4和VCO的输出
formula_5是高频讯号。
则针对任何片段可微的formula_27周期函数
formula_28 and formula_9，存在一函数
formula_30使得滤波器formula_31的输出
在相位域上渐近等于在时域模型中滤波器的输出（formula_33的差值，相对频率而言很小）
此处formula_30是鉴相器特性函数。
相位差标示为formula_35
则以下的动力系统可以描述PLL的行为
此处formula_38; formula_39 是参考振荡器的频率（假设formula_15是定值）。
举例.
考虑弦波信号
以及作为滤波器的单极点RC电路。其时域模型如下
此信号的鉴相器特性等于
因此相位域模型如下
此系统方程式和单摆的数学方程式等效
线性化的相位域模型.
锁相回路也可以进行拉普拉斯变换，当做控制系统来分析。其回路响应可以写为下式：
其中
回路中可以加入不同的回路滤波器，以控制回路特性。最简单的滤波器是一个极点的RC电路。其回路传递函数如下
回路响应为：
这是标准的谐振子型式。其分母和以下的二阶系统有关：
其中formula_55是阻尼比，formula_56是回路的自然频率。
针对单极点的RC滤波器
回路的自然频率是量测回路的响应时间，阻尼比则是和过冲和振铃（ringing）有关。理想上，自然频率越高越好，阻尼比应接近0.707（临界阻尼）。不过针对单极点滤波器，自然频率和阻尼比两者无法个别独立调整。考虑临界阻尼
另外一种比较有效的滤波器，超前－滞后滤波器（lag-lead filter），其中有一个极点和一个零点，可以用二个电阻和一个电容实现，其传递函数为
此滤波器有二个时间常数
自然频率和阻尼比和时间常数的关系如下
因此给定自然频率和阻尼比，可以针算回路滤波器的时间常数
真实应用中的回路滤波器设计会更复杂，可能会使用高阶的滤波器去降低特定来源的相位杂讯（可以参考以下D Banerjee的参考资料）。
用软体实现数位锁相回路.
数位锁相回路可以用硬体来实现，例如用像是CMOS 4046的积体电路。不过微处理器的速度越来越快，因此若锁相的频率没有到MHz的等级，这类的应用（例如精准的控制马达速度）可以用软体来实现锁相回路。用软体实现数位锁相回路有几个好处，对于反馈回路的客制比比较简单（包括参考信号和输出信号的除频、倍频或频率比例关系）。而且，软体实现容易了解，也容易作实验。以下是一个用MATLAB实现的数位鉴相器，这类的鉴相器强健性高，而且容易实现。
% This example is written in MATLAB
% Initialize variables
vcofreq = zeros(1, numiterations);
ervec = zeros(1, numiterations);
% Keep track of last states of reference, signal, and error signal
qsig = 0; qref = 0; lref = 0; lsig = 0; lersig = 0;
phs = 0;
freq = 0;
% Loop filter constants (proportional and derivative)
% Currently powers of two to facilitate multiplication by shifts
prop = 1 / 128;
deriv = 64;
for it = 1:numiterations
 % Simulate a local oscillator using a 16-bit counter
 phs = mod(phs + floor(freq / 2 ^ 16), 2 ^ 16);
 ref = phs &lt; 32768;
 % Get the next digital value (0 or 1) of the signal to track
 sig = tracksig(it);
 % Implement the phase-frequency detector
 rst = ~ (qsig &amp; qref); % Reset the "flip-flop" of the phase-frequency
 % detector when both signal and reference are high
 qsig = (qsig | (sig &amp; ~ lsig)) &amp; rst; % Trigger signal flip-flop and leading edge of signal
 qref = (qref | (ref &amp; ~ lref)) &amp; rst; % Trigger reference flip-flop on leading edge of reference
 lref = ref; lsig = sig; % Store these values for next iteration (for edge detection)
 ersig = qref - qsig; % Compute the error signal (whether frequency should increase or decrease)
 % Error signal is given by one or the other flip flop signal
 % Implement a pole-zero filter by proportional and derivative input to frequency
 filtered_ersig = ersig + (ersig - lersig) * deriv;
 % Keep error signal for proportional output
 lersig = ersig;
 % Integrate VCO frequency using the error signal
 freq = freq - 2 ^ 16 * filtered_ersig * prop;
 % Frequency is tracked as a fixed-point binary fraction
 % Store the current VCO frequency
 vcofreq(1, it) = freq / 2 ^ 16;
 % Store the error signal to show whether signal or reference is higher frequency
 ervec(1, it) = ersig;
end
在此例子中，假设tracksig阵列中有要追踪的参考信号。振荡器是用计数器来实现，计数器的最高位元表示振荡器开启或是关闭。程式模拟二个D型触发器，可以作为相位和频率的比较器。不论参考信号或回授信号出现上缘时，对应的触发器会为高准位，当二个触发器都是高准位时，会将触发器重置。二个触发器中何者为高准位，表示参考信号领先回授信号或落后回授信号。误差信号是这二个触发器值的差值。超前－滞后滤波器是用在滤波误差信号中入误差信号以及其导数所得。接下来要进行整合以找到其自然频率。
在实务上，可以在锁相回路的回授中加入其他的动作。例如锁相回路是要实现倍频器，则振荡信号可以先除频，再和参考信号比较。