基带传输系统位同步器的设计.docx
简介:码元同步又称时钟同步或时钟恢复。在接收数字信号时,为了对接收码元积分以求得码元的能量以及对每个接收码元抽样判决,必须知道每个接收码元准确的起止时刻。这就是说,在接收端需要产生与接收码元严格同步的时钟脉冲序列,用它来确定每个码元的积分区间和抽样判决时刻。时钟脉冲序列是周期性的归零脉冲序列,其周期与接收码元周期相同,且相位和接收码元的起止时刻对正。当码元同步时此时钟脉冲序列和接收码元起止时刻保持着正确的时间关系。码元同步技术则是从接收信号中获取同步信息,使此时钟脉冲序列和接收码元起止时刻保持着正确关系的技术。对于二进制而言,码元同步又叫位同步。一、设计任务设计一个基带传输系统的位同步器,要求自己生成基带信号m(t),m(t)为15位或者31位的伪随机序列,然后根据此基带信号将位同步信号提取出来。1、基带信号(伪随机序列)产生一个15或31位的伪随机序列,因为m序列实现简单且研究广泛,故本文的基带信号用m序列。15位的m序列连续的“1”码最长有4个,连续的“0”码最长有3个,不需要波形变换,故本文使用15位的m序列。2、提取同步根据输入的基带信号m(t)将位同步信号提取出来,即判断最佳抽样时刻,使之能够准确无误地将基带信号恢复出来。二、功能指标下面讨论本设计各部分的指标。1、基带信号m序列的性质一般包含均衡性、游程分布和自相关函数等。(1)均衡性在m序列的一个周期中,“1”和“0”的数目基本相等。准确地说,“1”的个数比“0”的个数多一个。(2)游程分布我们把一个序列中取值相同的那些相继的(连在一起的)元素合称为一个“游程(run)”。在一个游程中元素的个数称为游程长度。严格讲,长度为k的游程数目占游程总数的2-k,其中1k(n-1)。而且在长度为k的游程中(其中1k(n-2),连“1”的游程和连“0”的游程各占一半。(3)自相关函数m序列的自相关函数可以定义为:(j)=(A-D)/(A+D)=(A-D)/m式中:A为m序列与其j次移位序列一个周期中对应元素相同的数目;D为m序列与其j次移位序列一个周期中对应元素不同的数目;m为m序列的周期。m序列的自相关函数还可以写成如下形式:(j)=(aiai+j=0的数目-aiai+j=1的数目)/m由m序列的移位相加特性可知,上式分子中的aiai+j仍为m序列的一个元素。所以上式分子就等于m序列一个周期中“0”的数目与“1”的数目之差。另外,由m序列的均衡性可知,m序列一个周期中“0”的数目比“1”的数目少一个。所以上式分子等于-1。故有:(j)=-1/mj=1,2,m-1当j=0时,显然(0)=1。所以,我们最后写成:(j)=1j=0; (j)=-1/mj=1,2,m-1不难看出,由于m序列有周期性,故其自相关函数也有周期性,周期也是m,即(j)=(j-km)jkm,k=1,2,而且(j)是偶函数,即有:(j)=(-j)j=整数2、同步信号位同步系统的性能指标通常是用相位误差、建立时间、保持时间等指标来衡量。(1)相位误差e相位误差主要是由于位同步脉冲的相位在离散地调整所引起的。因为每调整一步,相位改变2/n(n是分频器的分频次数),故最大的相位误差为2/n。用这个最大的相位误差来表示e,可得e=360°/n有时不用相位差而用时间差Te来表示相位误差。因为码元周期为T,故得Te=T/n本文中n=282,故e=1.28°,Te=2.08×10-8(秒)。(2)建立时间ts同步建立时间即为失去同步后重建同步所需的最长时间。为了求这个最长时间,令位同步脉冲的相位与输入信号码元的相位相差T/2秒,而相位每调整一步仅能调整T/n秒,故所需最大调整次数为N=(T/2)/(T/n)=n/2接收随机数字信号时,可近似地认为两相邻码元中出现0、1的概率相等。由于本设计中,每15个码元周期中有8个跳变边沿,因此平均来说,每2T秒可调整一次相位,故同步建立时间为Ts=2T*N=nT=1.63×10-3 (秒)(3)保持时间tc当同步建立后,一旦输入信号中断,由于收发双方的固有频率之间总存在频差F,收端同步信号的相位就会逐渐发生漂移,时间越长,相位漂移量越大,直至漂移量达到某一准许的最大值,就算失步了。设收发两端固有码元周期分别为T1=1/F1和T2=1/F2,则|T1-T2|=|1/F1-1/F2|=|F2-F1|/(F1F2)=F/F02式中的F0为收发两端固有码元频率的几何平均值,且有T0=1/F0可得F0|T1-T2|=F/F0即|T1-T2|/T0=F/F0上式说明了当有频差F存在时,每经过T0时间,收发两端就会产生|T1-T2|的时间漂移。反过来,若规定两端允许的最大时间漂移为T0/K秒(K为一常数),经过tc秒就会到达此值。这样求出的时间就是同步保持时间tc。即(T0/K)/tc=F/F0解得tc=1/(F*K)若同步保持时间tc的指标给定,也可求出收发两端振荡器的频率稳定度的要求为F=1/(tcK)此频率误差是由收发两端振荡器造成的。若两振荡器的频率稳定度相同,则要求每个振荡器的频率稳定度不能低于F/(2F0)=±1/(2tcF0K)本设计中,收发两端允许的最大时间漂移小于半个码元周期,即1/170.5kHz,所以K=3.5×10-3。三、原理本设计中,基带信号采用m序列,位同步使用Gardner算法的思想。1、基带信号(伪随机序列)m序列是最长线性反馈移位寄存器序列的简称。它是由带线性反馈的移位寄存器产生的周期最长的序列。n级线性反馈移存器可产生2n-1位伪随机序列,产生15位伪随机序列需要4级移存器。图3.1.0为一般的线性反馈网络移存器原理方框图。图3.1.0 线性反馈移位寄存器原理方框图根据本原多项式表,4级移存器的本原多项式代数式为f(x)=x4+x+1,八进制表示为23,即010011,故c4=1,c1=1,c0=1,其余均为0。故15位伪随机序列可由图3.1.1所示方框图给出。图3.1.1 4级线性反馈移存器原理方框图此移存器产生的伪随机序列的一个周期为1111,0101,1001,000。2、位同步原理本地通过48MHz的时钟N分频产生于发送端频率相同但是相位随机的时钟脉冲。m序列输入到同步器中,鉴相器判断当前的本地时钟超前还是滞后,去调整分频器的分频次数N,从而改变本地时钟的频率。因为相位=t+,所以本地时钟的相位也随之改变。通过不断地调整分频次数N可以达到位同步的功能。图3.2.0是本设计中位同步的原理框图。图3.2.0 位同步原理框图位同步使用的是Gardner算法。Gardner算法要求每个码元周期至少有2个采样点,且它在进行位同步提取时对载波相位不敏感。用x(k)表示接收机对于某时刻码元的采样值,由于该时刻与理想的码元采样时刻可能有偏差,即它未必准确对应眼图张开最大时刻,故称其为准采样时刻。对应的x(k)为原始码元的准采样值。则前一码元的准采样值应记为x(k-1)。在Gardner算法中,每个码元周期还需要一个采样值,其采样时刻在x(k)和x(k-1)的中间位置,可以称为半采样值,记作x(k-1/2)。Gardner算法给出的位同步鉴相误差为u(k)=x(k-1/2)x(k)-x(k-1)通过图3.2.1来感性地理解这个鉴相式。对于理想的双极性码元波形,若相邻码元之间产生跳变,即x(k)-x(k-1)0,且相位已经锁定,则有x(k-1/2)=0,所以u(k)=0,如图3.2.1(a)所示。若位同步信号超前于理想时钟,则有u(k)<0,如图3.2.1(b)所示。若位同步信号滞后于理想时钟,则有u(k)>0,如图3.2.1(c)所示。另外,若相邻码元之间未产生跳变,则x(k)x(k-1),u(k)=0。虽然此时位同步信号存在超前或滞后现象,但算法无法进行判断。为了使接收码元序列中不会长时间地没有突变边沿,可以对基带码元的传输码型做某种变换,例如改用HDB3码,或者使用扰乱技术,使发送码元序列不会长时间地没有突跳边沿。图3.2.1 Gardner算法示意图以上讨论的是双极性信号,而FPGA产生出来的是单极性数字信号。考虑到只有在码元发生跳变的时刻才会有位同步信息,故而数字信号跳变前后的两个时刻电平不同,故可通过两个时刻的异或来实现对突跳边沿的识别。通过判断x(k-1/2)和x(k-1)判断本地时钟相对于理想时钟的超前或滞后。通过图3.2.2感性地理解一下。如果在码元跳变时刻相位超前,则x(k-1)x(k-1/2),如图3.2.2(a)所示。如果在码元时刻相位滞后,则x(k-1)=x(k-1/2),如图3.2.2(b)所示。因为数字信号在跳变边沿无定义,所以如果在码元跳变时刻相位正好锁定,则此时的x(k-1/2)应无意义,但数字信号只有“0”和“1”两种状态,即x(k-1/2)要么为“0”要么为“1”,所以就算码元跳变时刻相位正好锁定,但是本设计的方法判断不出来,判断出来的本地时钟只能是要么超前要么滞后,在下个码元跳变时刻再进行调整,只要接收码元序列中不会长时间地没有跳变边沿,则本地时钟的相位会不停地进行调整以保证相位误差在允许范围之内。图3.2.2 数字信号Gardner算法示意图四、设计本设计基于FPGA,设计了一个FPGA最小系统。采用如图4.0所示的结构框图。图4.0 FPGA结构框图1、硬件设计本设计使用Altium Designer 13绘制原理图和PCB。(1)原理图部分:本设计使用的FPGA是Altera的Cyclone EP1C3T100C8N,包含2910个逻辑元件,封装为100-PIN TQFP封装。FPGA的所有引脚均开放,使此FPGA不仅限于本设计。此FPGA需要3.3V和1.5V供电,但是一般电源产生为12V或5V,故需要DC-DC变换为3.3V和1.5V。本设计使用DC-5V供电,使用AMS1117-3.3将5V变换为3.3V,使用AMS1117-1.5将5V变换为1.5V。本设计中,基带信号由FPGA产生,为单极性非归零信号,故没有电平抬升和电压保护电路。FPGA的配置芯片使用EPCS16SI16N。图4.1.0 硬件原理图(2)PCB部分:·电源尽量远离其他器件以避免干扰;·下载端口放置在PCB边缘方便使用;·时钟尽量靠近FPGA,并且输出接一个50电阻以减小时钟噪声。图4.1.1 硬件PCB2、软件设计本设计使用Quartus II 13.0sp1 (64-bit)编译、下载程序,使用Verilog编写程序。(1)伪随机序列产生部分本部分产生四种码型,分别为全“0”码、全“1”码、“0”“1”等间隔码和m序列,来分析不同码型下的同步情况。always(posedge clk1)num0 <= num0 + 2'd1;/由num0的四种状态来产生四种码型。/实现移位寄存always(posedge clk0)begincase(num0)2'd0 : mcode <= 0;/产生全“0”码。2'd1 : mcode <= 1;/产生全“1”码。2'd2 : begin mcode <= mcode; end/产生“0”“1”等间隔的码。2'd3 : begin q0 <= q1; q1 <= q2; q2 <= q3; q3 <= q3 q0; mcode <= q0; end /产生m序列。endcaseend(2)位同步及抽样判决部分本地时钟与发送端时钟同频不同相,当本地时钟与发送端时钟不同频率时,可将计数初值(counter)设置为不同值。在本设计中,当收发时钟频率相同时,计数初值counter设为140,频率不同时,计数初值counter设为139。为了减小同步建立时间,本设计中对计数器调整的步进是动态调整的,通过增大调整步进来使同步更加迅速,即当跳变边沿到来时,如果判断为本地时钟超前(滞后),则使计数初值加1(减1),下个跳变边沿到来时,如果本地时钟还是超前(滞后),则使计数初值加2(减2)/在本地时钟上升沿对输入伪随机序列进行抽样,用于判断抽样时刻的超前和滞后。always(posedge clk_out)q1 <= mcode;/在本地时钟下降沿对输入伪随机序列进行抽样。always(negedge clk_out)beginq2 <= q0;q0 <= mcode;if(q2 q0) = 1)/判断伪随机序列跳变,如果两个时刻的抽样值不同,/则表示序列有跳变。beginif(q2 = q1)/相等表示滞后。begincounter <= counter - i;/本地时钟滞后,就在计数期间少计i个数,/使本地时钟相位增大;本地时钟超前时相反。i <= i + 8'd1;j <= 8'd1;endelsebegincounter <= counter + j;j <= j + 8'd1;i <= 8'd1;endendelsecounter <= 8'd140;/没有跳变时计数值恢复为140以消除累积误差。end/对输入的伪随机序列进行抽样判决,恢复伪随机序列。always(negedge clk_out)mdecode <= mcode;3、实现结果本设计的实现基于Altera Cyclone EP1C3T100C8N,使用SIGLENT公司的SDC3054示波器观察各种波形,使用示波器的打印功能将波形存储下来。(1)伪随机序列15位的m序列如图3.1.0所示。由图中可以看出,一个周期中的伪随机序列为111101011001000。图3.1.0 15位伪随机序列用MATLAB R2014a分析随机序列的自相关函数,分析结果如图3.1.1所示。由图可得此序列自相关函数的周期为15且比较尖锐,自相关函数峰值下降是因为分析时的数据长度不是足够的长。图3.1.1 伪随机序列的自相关函数(2)位同步当counter为140,即收发时钟同频不同相时的同步效果图如图3.2.0(a)和图3.2.0(b)所示,其中,通道1为发送端的时钟,通道2为发送端m序列,通道3为同步时钟,通道4为恢复出来的m序列。本地时钟上升沿同步理想时钟的上升沿,故在位同步时钟的下降沿对码元抽样判决,恢复伪随机序列。由图中可以看出,位同步时钟信号和伪随机码恢复正确,且本地时钟相位一直在微调以保证相位锁定。 图3.2.0(a) counter为140时的位同步效果图图3.2.0(b) counter为140时的位同步效果局部放大图当发送端发送的波形为方波,频率为时钟频率的1/2时,同步的效果如图3.2.1所示。从图中可以出,由于此方波的同步信息非常丰富,所以同步时钟的抖动比m序列要小很多。图3.2.1 发送端的波形为方波时的同步效果图五、结论本文设计了一个基带传输系统的位同步器,主要由m序列发生器和同步器两大部分组成。在m序列发生器部分,产生了一个15位的m序列,即111101011001000。可以看出,“1”的数目比“0”的数目多一个,满足伪随机序列均衡性的要求。在一个周期(m个元素)中,共有8个游程,其中长度为4的游程有一个,即“1111”,长度为3的游程有一个,即“000”,长度为2的游程有两个,即“11”和“00”,长度为1的游程有4个,即两个“1”和两个“0”。即在长度为k的游程中,“1”游程和“0”游程各占一半。序列的自相关函数为(±15k)=1k=0,1,2,,其余部分为-1/15。由图3.1.1可以看出,此序列的自相关函数比较尖锐,近似冲击函数,满足伪随机序列自相关函数的要求。在同步器部分,采用了Gardner算法的思想,容易理解,并使之易于在FPGA上实现。改进了调整步进,使步进不再是单一地增加或减少一个脉冲,而是不断判断、不断调整。但是缺点是步进可能累计以至于某一次的调整会过大。由图3.2.0(a)可以看出,同步建立时间大概为5.28×10-5(秒),小于1.63×10-3 (秒)。实现同步后,本地时钟不断调整以跟踪接收码元的相位,使码元可以正确恢复。经过实际测量,当发送1/2时钟频率的方波(使用RIGOL·DG1022U数字信号源产生)时,本同步器可同步的频率范围为165kHz-175kHz之间。六、参考文献1 樊昌信,曹丽娜. 通信原理(第6版)M. 北京:国防工业出版社,2010:379-393,412-415.2 张富丽. 基于FPGA通信原理实验系统的研究D. 北京:北京化工大学,2009. 3 张继禹,张厥盛,万心平,郑霖. 锁相技术M. 西安:西安电子科技大学出版社,2012,93-124. 4 侯卫民,蒋景红,张骋,蔡惠智. 基于FPGA的数字锁相环的研究与实现J. 微计算机应用,2008,29(8):95-98. 5 况野. 基于FPGA的TDD数字接收机位同步算法的研究与实现D. 成都:电子科技大学,2013. 11