Costas环研究总结报告一、研究目的:高速移动通信系统中,收、发送机的相对运动使得接收信号不可避免地形成快衰落信道,从而引入较大的多普勒偏移和多普勒变化率,故此必须纠正或补偿多普勒频偏和多普勒变化率,以保证收发系统间的信号同步。由于较大的多普勒频偏和多普勒变化率的存在,造成接收载波与给定载波在频率和相位上均存在较大的差别,为正确解调需使用载波跟踪机制来提取相干载波,costas环路是高效、可靠的跟踪环路,在成熟系统中常用来来提取接收信号相干载波,以实现对接收信号进行精确相干解调,确保收发系统信号间高可靠和高精度的同步。二、性能要求:依系统指标需求,要求该环路能够狗在100us(约合200个复值信号点)之内达到求解稳定,输出相干载波的实时频偏估测值,并纠正频偏,纠偏范围依系统指标需求应达到1khz-30khz(载波2Mhz);频率抖动范围在频偏的10%以内(噪声≤10db);相位抖动范围在±5o(噪声≤10db)。基于costas环路的高效性和可靠性以及较低的实现代价,本课题经过仿真验证,选择该环路作为该功能模块的实现环路。三、costas环路基本原理概述:Costas环路在系统架构中的接入示意图如图1所示:前基模块正交变换costas环路位同步后基模块IQII'I'Q使能控制信号图1costas环路系统架构中的接入图Costas环路功能结构图如图2所示:环路滤波器振荡器相移cossin低通低通输入已调信号v1v2输出v3v4v5v6vd'vd图2costas环路功能结构图设输入的下变频后的2PSK信号(假设没有GAWN噪声影响)m()cos()ctwt,其中m(t)是基带调制信号cos(WCt)是调制载波,假定环路锁定,且不考虑噪声影响,则振荡器输出的两路互为正交的本地载波分别为v1cos(w())ctt(2)v2sin(w())ctt(3)()t为本地载波与输入相干载波之间的相位差。由图1所示输入信号()cos(w)cmtt分别与锁定后的本地载波即式(2)、(3)相乘得到1v3()cos(wt)cos(w())()cos(())cos(2w())2cccmtttmtttt(4)1v4()cos(wt)sin(w(t))()sin(())sin(2w())2cccmttmtttt(5)经过低通滤波器滤除2倍分量得到1v5()cos(())2mtt(6)1v6()sin(())2mtt(7)V5和V6相乘得到v()sin(2())ddtKt(8)可以把上面部分看做是一个鉴相的过程,v()dt就是鉴相结果。环路滤波器的功能结构图如图3所示:1z()dVt'()dVtK1K2图3环路滤波器则v()dt经过环路滤波器得到'v(t)=v(t)1v(t1)2dddKK(10)环路滤波器输出相角'v()dt,'v()dt控制VCO的相位和频率,使'v()dt一直变小直到接近于0,此时锁相环进入稳定状态,此时V1就是所需的相干载波,而V5就是相干解调输出。四、costas环路具体算法实现振荡器相移90Q路SincosQPSk信号I路I路-+++求相角环路滤波器()StQ路Q路输出I路输出imre图4QPSK信号相干载波提取与相干解调实现下变频后得到两路信号(假设在理想状态下点的偏转只和频偏有关忽略噪声的影响)(w)()()cjtStmte(9)为初相,wc等于频偏和载波的比值。VCO输出信号可以表示为(w)djte(10)令(9)与(10)相乘()t(w)(w)()()cdcdjwwjtjtmteemte(11)re()cos()tcdmtww(12)im()sin()tcdmtww(13)鉴相:1)反正切函数法)2,1,0()()])cos[()(])sin[()(arctan()/arctan(kkt(14)基于QPSK调制(21)(1,2,3,4)4nn,QPSK调制所有的点都位于45,135,225,315,若想正确解调信号,则解调后的所有点都应位于旋转45的坐标轴上。相角为(21)()t(0,1,2)(n0,1,2,3)444cdnwwkk(15)2)符号函数法22()()signimresignreimreim(16)3)乘法器+低通滤波器法令已调信号()cos(w)cmttVCO输出sin(w)ct1v7()cos(wt)sin(w)()sin()cos(2w)2cccmttmtt(17)经过低通滤波器滤除2倍分量得到1=()sin()2mt(18)综上所述三种鉴相方法,(2)和(3)都用到)sin((这公式只在很小时成立,所以(1)精确度最高,本研究采用反正切函数法。环路滤波器:环路滤波器对输入信号的噪声起抑制作用,并调节环路的矫正速度。常用的环路滤波器有无源比例积分滤波器,有源比例积分滤波器,理想比例积分滤波器。选择理想比例积分滤波器进行讨论:图3理想比例积分滤波器knnXKkXKkY0)(2)(1)((19)K1和K2是此环路滤波器的两个系数,22281144()4()1244()nsodnsnsnsodnsnswTKKKwTwTwTKKKwTwT(20)doKKK为环路增益,是锁相环阻尼系数,1482LnBw为环路固有角频率,LB是环路噪声带宽,sT是环路滤波器的采样周期(即NCO相位调整时间间隔)。根据(20)式计算环路滤波器系数:1)确定阻尼系数(工程取值一般为0.707)。2)根据锁相环的跟踪精度要求及跟踪范围要求确定其等效噪声带宽(通常取bLRB1.0bR为信息数据速率)。3)由量化的阶数及NCO输出的量化幅度值计算环路增益。VCO:用于根据给定的相角产生正弦和余弦三角函数。根据接收信号得到相角,经过环路滤波器后去控制VCO的输出,使得相角逐渐变小,最终使相角减小到很小的数值,得到稳定的dw可以估计出频率偏移,re和im就是信号的相干解调后的实部和虚部。五、VHDL仿真实现已下变频调制后的QPSK信号I和Q两路,载波2Mhz,噪声10dB,设定环路滤波器系数C1=1/2,c2=1/2^7。VHDL各模块端口描述:clk200mclk20mChu_enableIM_inrstRE_inData_enable顶层模块clk200mclk200mData_vChu_vRE_outClk_out复乘器piprbibraiClkarIE_outY_inPhase_outX_Inclkresetenableclk2mresetclk200mclk20mFreq_part1Phase_out1Phase_incount2resetclkclkPhase_insincosine环路滤波器VCO振荡器鉴相器图4VHDL结构图顶层模块COMPONENTcostas_PLL3PORT(clk200m:INstd_logic;------200M时钟用于高速计算clk2m:INstd_logic;-----2M时钟信号输入时钟rst:INstd_logic;-----复位信号高有效IM_in:INstd_logic_vector(15downto0);------输入信号虚部RE_in:INstd_logic_vector(15downto0);------输入信号实部chu_enable:INstd_logic;-----chu序列有效标志位data_enable:INstd_logic;-----有效数据有效标志位IM_out:OUTstd_logic_vector(15downto0);-----虚部输出RE_out:OUTstd_logic_vector(15downto0);---实部输出chu_v:OUTstd_logic;---chu序列标志位data_v:OUTstd_logic;----有效数据标志位clk_out:OUTstd_logic;----输出时钟);ENDCOMPONENT;复乘模块Componentcomplexport(clk:instd_logic;-----输入200M高速时钟ar:instd_logic_vector(15downto0);-----输入数据实部ai:instd_logic_vector(15downto0);-----输入数据虚部br:instd_logic_vector(15downto0);----相角余弦输入bi:instd_logic_vector(15downto0);----相角正弦输入pr:outstd_logic_vector(31downto0);-----输出实部pi:outstd_logic_vector(31downto0));endcomponent;-----输出虚部鉴相模块componentphase_outport(clk:instd_logic;------输入200M高速时钟reset:instd_logic;------复位信号enable:instd_logic;-------鉴相使能标志位x_in:instd_logic_vector(15downto0);------输入复乘器的实部结果y_in:instd_logic_vector(15downto0);------输入复乘器的虚部结果phase_out:outstd_logic_vector(15downto0));------相位角输出(相位响应输出)endcomponent;环路滤波器模块componentloop_filterport(clk:instd_logic;------200M高速工作时钟reset:instd_logic;------复位信号count2:instd_logic_vector(15downto0);-----计数器(循环计数周期100)phase_in:instd_logic_vector(15downto0);-----输入鉴相器输出的相角角freq_part1:outstd_logic_vector(15downto0);------频率响应输出phase_out1:outstd_logic_vector(15downto0));--输出一个经环路滤波器平滑后的相位角endcomponent;VCO模块componentcordic---用cordic模块作为VCOport(clk:instd_logic;----200M高速时钟phase_in:instd_logic_vector(15downto0);-----环路滤波器输出的相位角sin:outstd_logic_vector(15downto0);-----输入的相角的正弦函数输出cosine:outstd_logic_vector(15downto0));-----输入的相位角的余弦函数输出endcomponent;仿真结果输出入下图:进入锁相环的信号星座图如下图:图5:进入锁相环的信号星座图信号经过锁相环后其频率响应曲线如下图图6:锁相环频率响应曲线图信号经过锁相环的相位响应曲线如下图:图7锁相环相位响应曲线图信号经过锁相环后的星座图如下图图8:信号经过锁相环后输出的星座图(此星座图是锁相环锁定后估计出平均频偏后逐点纠频所得,由于初相角未知固此星座图有个固定偏移)得出结论:在130点后锁相环进入锁定状态,估计出频偏大概为6Khz,频偏抖动范围是500hz,相位在5范围内抖动,星座聚拢在四个点上,锁相环成功锁定。锁相环的锁定频偏的范围可以通过改变程序中的环路滤波器系数来改变,本程序的锁定范围大概在800hz-30Khz。锁相环锁定时间和其精度是负相关的,若要缩短锁定时间必然要牺牲精度,反之亦然。六、缺点与