CORDIC算法在光栅莫尔条纹细分中的应用
0 引言
光栅是高精度位移测量工具,光栅的位移测量技术是以光栅相对移动所形成的莫尔条纹信号为基础的,即由于光栅的相对移动,使透射光的光强度呈周期性变化。这种光强信号经光电管变为周期性变化的电信号(正弦波信号),对此信号进行一系列的处理,可获得光栅的相对移动量[1-3]。增量式光栅通常以两路正弦信号进行辨向计数和细分,两路信号为无直流漂移、相位差为90°且幅值相等的正弦信号。当光栅每相对移动一条刻线,正弦信号移动一个周期时,从正弦信号过零点开始计数,即可获得所测角度的大数。如果正弦信号移动法对不足一个周期的相位角度进行软件细分,直接得到其位移信息,避免了传统的硬件和软件整形,提高了细分精度。
1 CORDIC算法细分原理
为了将正余弦信号中的位移信息提取出来,可采用幅值比细分、相位或频率细分等多种细分的方法。根据实际情况,采用按相位的细分方法是一种较为常用的方法,即正弦信号整周期部分采用峰值计数其相位;信号不足整周期部分,则采用CORDIC算法计算其相位,其基本的数学计算公式就是反正切函数。CORDIC算法将直角坐标转换为极坐标,将复杂的算术运算化成简单的加法和移位操作。本文仅以圆周系统中的向量模式进行推导[4-5]。假设直角坐标系内有一个向量A(Xi,Yi),逆时针旋转θ角度后得到另一个向量B(Xj,Yj),坐标旋转图如图1所示。
图1 坐标旋转图
Fig. 1 Coordinate rotation
如果向量A(Xi, Yi)经过n次旋转才到达向量B(Xj,Yj),那么第m次旋转的表达式为:
式中:θm为第m次旋转的角度; (Xm,Ym)为第m次旋转前的向量; (Xm+1,Ym+1)是为第m次旋转后的向量。
式中:Sm={-1;+1}。当Sm=-1时,表示向量是逆时针旋转;当Sm=+1时,表示向量是顺时针旋转。式(2)为CORDIC的迭代式子,它只需要通过移位和相加就可以完成矢量的旋转。如果不断使Ym趋近于0,则CORDIC迭代m次(m→∞)得到的最终结果如式(3)所示:
式中:Zm为CORDIC迭代m次后两向量的夹角; (Xi,Yi)为初始向量; (Xm,Ym)为旋转后的向量。对于一组给定的初始化值为:
经计算,得到的迭代结果如式(4)所示:
由式(4)可知,给定任意初始的x、y值,利用CORDIC迭代算法,可以将复杂的算术运算化成简单的加法和移位操作,从而求出θ的值。θ的精度由位宽迭代的次数决定。
2 CORDIC算法细分应用
本文采用的FPGA为Altera公司生产的cyclone II系列的EP2C8Q208C8,其逻辑门数有8 256。如果2路正弦信号存在“三差”,即有直流漂移、相位差不为90°、幅值不相等,则需要对此2路信号进行补偿,从而得到所需要的理想正弦信号。在前期信号补偿过程中,采用的补偿算法大量占用逻辑门,所以,在芯片选型的过程中需要注意这点。
相关文章
- 2021-12-05基于ARM的2M测试系统
- 2022-07-17光纤密封转接的氦质谱检漏技术研究
- 2022-01-20LabVIEW在全自动点胶机中的应用
- 2023-08-17计量光栅空间位姿参数光场输出模型与仿真
- 2023-12-06阴极弧离子镀磁过滤器
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。