新闻中心

EEPW首页>EDA/PCB>设计应用> 基于CORDIC算法的OFDM 系统载波同步实现

基于CORDIC算法的OFDM 系统载波同步实现

作者: 时间:2009-12-04 来源:网络 收藏

在接收端,通过对训练序列的延迟相关,可以得到如下公式:

然后对上式求相角,可以得到:

如果|ψ|的值能够保证小于π,那么,其频偏估计值为:

对于载波频率偏移的计算与补偿,一般需要实现的两个最重要的功能:第一是求相角的功能,第二是需要产生纠正频偏用的和函数。求相角函数的实现有许多可行的方法。其中最直观的就是通过复数虚部对实部的比值,也就是求反正切来得到角度值。这样就引入了除法运算,并且需要在RAM里建立一个反正切函数的查找表。另一种方法是使用,该在多次迭代的情况下,只需要很少的硬件资源,但由于迭代计算的特点,所以会有几个时钟周期的时延。由于相角的计算在每一个帧到来时只需要计算一次,所以,这个很小的时延不会对的性能造成影响。由于采用查找表的方法计算反正切函数需要大量的RAM空间,所以,设计时可采用来实现角度的计算。

本文引用地址://m.amcfsurvey.com/article/191868.htm

3算法原理与FPGA实现
3.1 CORDIC算法
计算三角函数和其它一些硬件不易实现的函数,一般可使用查表法、多项式展开或近似的方法。这些方法均不能兼顾速度、精度、简单性等方面的要求。CORDIC算法则是为解决这种问题而产生的。它从算法本身人手,可将复杂的算法分解成一些在硬件中容易实现的基本算法,如加法、移位等,从而使这些算法在硬件上可以得到较好的实现。由于该算法是一种规则化的算法,它满足硬件对算法的模块化、规则化要求,因此,CORDIC算法是可以充分发挥硬件优势并利用硬件资源来实现硬件与算法相结合的一种优化方案。
3.2 用于频偏校正的CORDIC算法的旋转模式
假设直角坐标系内有一个向量a(xa,ya),逆时针旋转θ角度后得到另一个向量b(xb,yb),那么,这个过程可以表示为:

如果向量a(xa,ya)经过n次旋转才到达向量b(xb,yb),其中第i次旋转的角度为θi,那么,第i次旋转的表达式为:


CORDIC算法的旋转示意图如图4所示。图中,若取旋转的角度总和这里的Si={-1;+1}。其中Si=+1表示向量是逆时针旋转,Si=-1表示向量是顺时针旋转。式中:随着旋转次数的增加,该式将收敛为一个常数k:

如果暂时不考虑这个增益因子k,则有:

这就是CORDIC的迭代式,它只需要通过移位和相加就可以完成矢量的旋转。其向量a向向量b逼近的精度由迭代的次数决定,迭代的次数越多,逼近的精度越高。而引入变量z则表示进行i次旋转后与目标角度之差。这样,迭代n次所得到的最终结果为:


可以看出,此模式下,便可求出给定角度的三角函数值。



评论


相关推荐

技术专区

关闭