锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

FPGA信号处理系列文章——数字锁相环

时间:2023-07-23 09:07:00 300kg传感器accu

提示:文章完成后,目录可以自动生成,如何生成可以参考右边的帮助文档

FPGA信号处理系列文章-数字相环

  • 锁相环的一些概念
  • 鉴相器
  • Matlab 程序


锁相环的一些概念

1.捕获、锁定和跟踪概念
捕获是指从输入信号加到锁相环输入端到环路锁定的全过程。
锁相环的锁定是指锁相环的输出频率等于输入频率,输出信号的相位随输入信号的变化而变化。
跟踪是指锁相环锁定后的状态。一旦锁相环进入锁定状态,如果输入信号发生相位变化,环路将调整压力控制
振荡器的控制电压,使输出信号的相位随输入信号的相位变化,即保持恒定的稳定相位差。这种状态称为跟踪或同步状态。
2.捕获时间与稳态的差异
捕获时间是指捕获过程中所需的时间。捕获时间的大小不仅与环路参数有关,还与起始状态有关。
当环进入同步状态时,环中被控振荡器的振荡器频率等于输入信号的频率,两者之间只有一个固定相位。这种相位差称为稳态差。另一方面,如果稳态差为常数或等于0,则表示环处于锁定状态。
3、相位捕获和频率捕获
相位捕获是指相位在捕获过程中未经过2π周期跳跃可以进入锁定状态,即捕获过程小于2π捕获周期的过程称为相位捕获,也称为快速捕获。频率捕获是指经历一个以上频率周期的捕获过程。也就是说,在开始捕获之前,环路的输入信号频率与输出信号频率至少相差一个周期。一般来说,锁相环从捕获到锁定都要经历从频率捕获到相位捕获的两个过程。
如下图所示,快速捕获范围为快速捕获带,只有相位捕获,因此收敛速度较快,除快速捕获范围外,首先进行频率捕获,然后进行相位捕获。频率捕获是一个相对缓慢的过程,因此收敛速度较慢。
4.捕获带和同步带
捕获带是指确保环路不可避免地进入锁定的最大固有频差值。换句话说,它是允许的最大固有频差值,以确保环路没有稳定的差拍状态。
一旦环路进入锁定状态,系统将处于跟踪状态。随着输入信号的频率和相位的变化,环路应始终跟踪其变化,但一旦输入信号的频率与被控压力控制振荡器的自由振荡器的频率相差过大,环路就会失去跟踪能力,称为失锁。
同步带是指系统保持同步的最大固有频差
5.最大频率阶跃范围
描述PLL对稳定工作状态的动态限制。环路最初处于锁定状态。当输入信号的频率在失锁带范围内跳跃时,环路可以保持锁定。然而,当输入信号的频率超过失锁带的范围时,环不能保持锁定,输出信号不能跟踪输入参考信号。当然,通过缓慢的捕获过程,环可以再次锁定。

在这里插入图片描述

鉴相器

介绍两种鉴频器:

鉴频器1,二象限反正切函数,
优点:最准确的鉴相方法,实际相位差为-90°至 90°在范围内,鉴相器的工作保持线性,其输出的鉴相结果与信号幅值无关。
缺点:反正需要切求值,所以也是计算量最大的。

鉴频器2

优点:计算量小, 适用于纯逻辑实现
缺点:近似准确的鉴频,鉴相结果及
成正比,与信号幅值有关

环路滤波器 和 频率可变振荡器 就像锁频环一样,重复叙述

Matlab 程序

在锁频环程序的基础上添加锁相环,设置前500ms锁频环工作,快速将频率拉到接近范围,然后切换到锁相环,期间为1s频率突变10Hz,在2s的时候突变30Hz,在3s的时候突变100Hz,了解快速捕获范围、频率阶跃、捕获带等概念。为了显示更清楚,这里不添加码元信息

format long g;  clc;clear all;close all   SampleClk = 4.1e6;    PointNum = SampleClk*5;   IF      = 1e6- 240 ;  Carr_cos(1:SampleClk) = cos(2*pi*(IF/SampleClk).*[1:SampleClk]   0); Carr_sin(1:SampleClk) = sin(2*pi*(IF/SampleClk).*[1:SampleClk]   0);  IF = IF   10; Carr_cos(1+SampleClk:PointNum) = cos(2*pi*(IF/SampleClk).*[SampleClk+1:PointNum] + 0); Carr_sin(1+SampleClk:PointNum) = sin(2*pi*(IF/SampleClk).*[SampleClk+1:PointNum] + 0); IF = IF + 30; Carr_cos(1+2*SampleClk:PointNum) = cos(2*pi*(IF/SampleClk).*[2*SampleClk+1:PointNum] + 0); Carr_sin(1+2*SampleClk:PointNum) = sin(2*pi*(IF/SampleClk).*[2*SampleClk+1:PointNum] + 0); IF = IF + 100; Carr_cos(1+3*SampleClk:PointNum) = cos(2*pi*(IF/SampleClk).*[3*SampleClk+1:PointNum] + 0); Carr_sin(1+3*SampleClk:PointNum) = sin(2*pi*(IF/SampleClk).*[3*SampleClk+1:PointNum] + 0); signal0 = Carr_cos +j*Carr_sin; data = awgn(signal0,-5,'measured'); n = SampleClk/1000; num=1000; a=rand(1,num); a(a>0.5)=1; a(a<=0.5)=-1; % for m = 1 :1: 1000 % data(m*n+1:(m + 1)*n) = a(m)*data(m*n+1:(m + 1)*n); % end fc = 1e6; n = SampleClk/1000; nf = floor(length(data)/n); FAccCarReg0 = 0; PAccCarReg0 = 0; frame = 0; FLL_BL = 100; PLL_BL = 20; tc1 = 1/1000; k1 = 1; [d0,d1] = Fil2ndPara(k1,FLL_BL,tc1); [c0,c1] = Fil2ndPara(k1,PLL_BL,tc1); df(1:nf) = 0; df1(1:nf) = 0; PQaccu = 0; PIaccu = 0; fll = 0; pll = 0; carr_accu = 0; counter = 1; init_carr_freq = fc; for frame = 1 : nf % frame carr_freq = init_carr_freq + fll + pll; for clk = 0 : n-1 %clk carr_accu = rem(carr_accu,1); cosine = cos(2*pi*(carr_accu)); sine = sin(2*pi*(carr_accu)); baseband = (data(((frame-1)*n+clk+1))).*(cosine -j*sine); PI_clk = real(baseband); PQ_clk = imag(baseband); PQaccu = PQaccu + PQ_clk; PIaccu = PIaccu + PI_clk; carr_accu = carr_accu + carr_freq/SampleClk; end PQ(frame) = PQaccu; PI(frame) = PIaccu; if PI(frame) == 0 PI(frame) = 0.0000001; end PQaccu = 0; PIaccu = 0; if frame <5 fll = 0; pll = 0; elseif(frame <500 ) df(frame) = FrqErr(PI,PQ,frame); [fll,FAccCarReg0] = Fil2nd(d0,d1,FAccCarReg0,df(frame)); else df1(frame) = PhaErr(PI,PQ,frame); [pll,PAccCarReg0] = Fil2nd(c0,c1,PAccCarReg0,df1(frame)); end fll_frame(frame) = fll + pll; end figure(1) plot(fll_frame); figure(4) plot(PI); hold on plot(PQ); hold on figure(5) plot(atan(PQ./PI)) 

从频率跟踪图可以明显的看出
在500ms锁频环转锁相环的时候,误差频率很小,因此处于快捕带,只需要对相位进行捕获,收敛很快。在1s的时候,频率突变10Hz,环路仍然保持锁定,很快便调整到了正确的频率,因此10Hz属于最大阶跃范围内,2s的时候,频率突变30Hz,很明显的频率出现了震荡,这就是失锁了,但仍处于捕获带内,因此花了一点时间又重新锁定到正确的频率上,最后,频率突变100Hz,则直接跳出了捕获带之外,无法重新锁定了。

从I/Q幅度图以及鉴相值可以看出
在500ms和1s的时候,相位没有出现2*pi的翻转,而在2s的时候出现了多次的2pi的翻转,这也印证了最开始介绍锁相环的概念中的 频率捕获和相位捕获的内容。
IQ幅度图:

鉴相值图:

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章