光栅数字细分的CORDIC算法总量化误差分析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
光栅数字细分的CORDIC算法总量化误差分析
王晓娜;钟玉龙;朱维斌;叶树亮
【摘要】The overall quantization error( EOQ )of CORDIC algorithm is discussed based on grating digital subdivision technique. Simulations and circuit experiments are conducted according to the basic principles of CORDIC. The result shows that the difference between predicted and experimental values is inversely proportional to the number of iteration( n) under the conditions of different binary width( b). The difference between the two reaches 1. 8 × 10-4 rad,when n is equal to 12. It proves the effectiveness of the usage of EOQ to value the error of the algorithm in the calculation of angle. A quantitative analysis on error components and key parameters which influence the EOQ is presented. The result shows that
the trend of EOQ becomes smaller with the increase of n and b,in which n plays a decisive role in the reduction of EOQ . Circuit test result shows that when the b remains unchanged,EOQ probably decreases by 50% with n adding once. The paper concludes the impact on the angle calculation based on CORDIC caused by EOQ . The conclusion has important significance and practical value to the error analysis in the process of digital subdividing for grating.%针对光栅数字细分的CORDIC算法总量化误差EOQ进行了研究,根据CORDIC算法的基本原理进行了仿真和电路实验,结果表明在不同位宽b条件下预测值EOQs与实验值EOQp的差值与迭代次数n成反比,n=12时两者差值为1.8×10-4 rad,证明了EOQ对CORDIC算法在光栅数字细分角度运算中的误差表征的有效性。
对影响EOQ的关键参数以及误差分量进行了
量化分析,分析结果表明EOQ随着n和b的增大呈现减少的趋势,其中n对EOQ的减小起决定性作用。
电路测试结果显示当 b维持不变,n每增一次,EOQ 近似减小50%。
获得了关于 EOQ影响CORDIC算法角度计算的结论,对于光栅
数字细分过程中的误差分析具有参考和实用价值。
【期刊名称】《计量学报》
【年(卷),期】2016(000)001
【总页数】5页(P10-14)
【关键词】计量学;光栅莫尔信号;数字细分;CORDIC;总量化误差
【作者】王晓娜;钟玉龙;朱维斌;叶树亮
【作者单位】中国计量学院工业与商贸计量技术研究所,浙江杭州310018;中国
计量学院工业与商贸计量技术研究所,浙江杭州310018;中国计量学院工业与商
贸计量技术研究所,浙江杭州310018;中国计量学院工业与商贸计量技术研究所,浙江杭州310018
【正文语种】中文
【中图分类】TB922
以莫尔条纹信号为基础的光栅传感器在精密仪器、坐标测量机、精密加工等领域广泛应用[1~4]。
受光栅制造工艺等因素的影响,直接利用莫尔条纹信号进行测
量难以满足高精度的要求,因此有关学者针对锁相倍频、载波调制、幅值分割、数字化正切等多种莫尔条纹信号细分技术进行了研究[5~7]。
CORDIC算法具有运算简单、速度快等优点[8~10],在光栅信号数字化细分技术领域得到广泛应用。
彭琅采用CORDIC算法实现了光栅信号的相位非线性解算
[11];崔改采用CORDIC算法对莫尔条纹一次谐波进行研究,通过对频率虚部和频谱实部进行反正切运算获得莫尔信号谐波相位[12];德国学者Gröling C 通过CORDIC算法对光电编码器的输出信号进行相位跟踪[13]。
这些研究皆为CORDIC算法的工程性实现,但对该算法自身误差对角度计算的影响研究较少。
本文根据CORDIC算法的基本原理,对总量化误差进行了理论分析及仿真验证,证明了总量化误差对CORDIC算法在角度运算中误差表征的有效性,并将CORDIC算法应用于光栅信号数字细分技术,通过实验证明了总量化误差对角度计算的影响。
在不同的坐标系和不同的模式下,CORDIC算法能够实现不同的非线性函数计算[14]。
图1为光栅数字细分系统原理图。
光栅光电接收器的两路正余弦信号经AD转换器采样后输入到以FPGA为主芯片搭建的细分系统中,通过两路信号幅值对应关系确定当前相位,进而实现对每个周期内360°的相位细分。
在数字细分过程中,对于当前角度的反正切计算是核心环节,要求算法具备快速和准确性。
使用CORDIC算法对当前角度进行计算,选用与反正切函数对应的圆坐标的向量模式,得到用于计算二维向量反正切值的迭代方程组:
式中:i=0,1,2,3,…,n-1,n为迭代次数;di为旋转方向的控制因子,其取值为±1。
对角度进行解算的过程中存在的误差包含了近似误差和舍入误差两个部分,二者之和被定义为总量化误差(EOQ)[14]。
2.1 近似误差
当采用CORDIC算法计算初始向量的角度时,目标是使得初始向量经过多次旋转后与x轴重合,其逼近过程如图2所示。
初始向量v(0)经过n次旋转后,得到向量v(n),由于在逼近过程中旋转角度被量化成有限个基本角度,导致有限次的旋转后,最终旋转向量与x轴之间存在一个残余小角度δ,称为角度近似误差。
为了准确评估近似误差,有必要对δ进行分析。
初始向量的旋转角度A是一系列
基本角度之和,即
其中,a(i)为基本角度序列。
可知δ小于最小的基本旋转角度,即
当n足够大时,则:
由图2可知,向量的每一次旋转伴随着模长的变化,n次旋转后的向量v(n)的
模长相对于初始向量v(0)增加了K(n)倍。
为了与初始向量的模长保持一致,对v(n)进行标准化处理,得到旋转向量为:
其中:K(n)称为伸缩因子,
定义v*(n)为(n)的理想旋转结果,(n)旋转小角度δ后得到v*(n),此
时δ=0,则
其中D称为旋转矩阵。
设I为2×2的单位矩阵,则
因此相对近似误差为:
由式(6)可得
由式(3)、(4)、(8)、(9)得近似误差εα为:
通过式(10)可知角度近似误差δ与近似误差εα的关系,δ越小,εα则越小。
由于(n)与v(0)两者的模长相等,近似误差也可以表示为:
由CORDIC算法的原理产生的εα属于系统误差,可通过提高迭代次数n予以减少。
2.2 舍入误差
CORDIC算法是基于定点运算的数值迭代,其计算精度与操作数位宽有关,因此
将每级迭代中有限的计算精度引起的量化误差称为舍入误差。
舍入误差由两个部分组成,一部分为由原迭代引入的舍入误差;另一部分为由当前迭代引入的新舍入误差。
定义(i)为第i次迭代时舍入前的计算值,f(i)为i次迭代后总的舍入误差,误差传播公式为:
式中:e(n)为第n次迭代产生的量化误差向量;为前n-1次迭代的累计量化误差;定义Q[·]为量化运算符,则
其中,e(i)是迭代第i次产生的量化误差向量,e(i)=[ex(i),ey(i)]T。
本文采用定点制,因此ex(i)≤ε,ey(i)≤ε,ε的大小与操作数的位宽b有关,则
因此,|e(i)|的取值范围为
由式(12)、(14)、(15)可得|f(n)|为:
其中,
伸缩因子不仅对旋转向量的模长造成影响,同时也对舍入误差进行了放大,因此需对舍入误差进行校正,得到最大舍入误差为:
根据公式(11)、(17)得CORDIC算法的总量化误差为:
由公式(18)可知,CORDIC算法的总量化误差由迭代次数n、操作数位宽b以
及最大向量模值|v(0)|决定。
3.1 仿真实验
为了验证总量化误差的有效性,以MATLAB作为仿真环境,对CORDIC算法的总量化误差进行仿真实验,具体的仿真过程如下:通过随机产生2 000组数值范围
在(0,1)内的二维向量(x,y),作为CORDIC算法的输入值,使用公式(1)进行迭代运算后得到2000个角度值z0;同时,对2000组二维向量进行
z0=tan-1(y/x)运算,计算出2000个对应的角度仿真值z0;将z0与z1进行比较,即可得到2000个CORDIC算法的误差值,将其中最大值认定为EOQ的仿真值(EOQt)[14,15]。
选取不同的n和b进行多种状态下的仿真实验,得
到与之对应的EOQt,见表1。
由式(18)可知,EOQ与参数n、b和|v(0)|有关,令|v(0)|=2-1/2,对式(18)进行计算,得到与n和b对应的EOQ值,并被认定为预测值(EOQs)
[14,15],见表1。
3.2 电路实验
使用图1所示的系统对EOQ进行实验验证,为了摒弃信号源噪声等其他干扰源,选用信号发生器RIGOL DG4162产生两路标准正余弦信号,替代光栅光电接收器输出信号,输入到细分系统,信号源精度为±2×10-6。
细分系统ADC采样模块使用50 MHz、12Bit进行信号采集,FPGA采用Cyclone EP4CE15F17C8芯片。
电路系统采用CORDIC算法计算出一系列角度值;同时,对A、B两路信号进行反正切运算得到理论角度值,对两者作差并取最大值作为EOQ的实验值(EOQp)。
同样选取不同的n和b,CORDIC算法向量模式下的角度计算进行8次重复实验,求平均值列于表1中。
3.3 实验数据分析
3.3.1 EOQ对CORDIC算法误差表征的有效性
对表1中的EOQs、EOQt以及EOQp进行作差运算,得到
针对不同的n和b的情况,分别对ΔEOQ1与ΔEOQ2的变化趋势进行分析,其结果见图3、图4。
图3中,在不同位宽条件下,ΔEOQ1=|EOQp-EOQt|具有相同趋势,由于EOQt 是总量化误差的理论仿真值,EOQp是总量化误差的电路实验测试值,可见二者具有良好的一致性,在n=8时,ΔEOQ1取得最大值为2.1×10-4rad。
图4中,在不同位宽条件下,ΔEOQ2=|EOQs-EOQp|同样具有相同趋势,且二者差值与迭代次数成反比,当n=12时,ΔEOQ2=1.8×10-4rad。
由于EOQs是根据公式(18)得到的总量化误差预测值,可见预测值与实验值之间同样具有良好的一致性。
由图3、图4可见,光栅数字细分电路实验值与理论值相吻合,且与公式(18)的预测值相匹配,因而证明了EOQ对CORDIC算法在光栅数字细分过程中角度
运算误差表征的有效性,并对CORDIC算法在光栅数字细分过程中的引入误差实
现了量化描述。
3.3.2 n、b与EOQ的量化关系
对表1中光栅数字细分电路实验测试值进行分析,EOQp与n、b关系如图5、图6所示。
由图5可见,总量化误差随n值增大显著降低,迭代每增加一次,总量化误差近
似减小50%;由图6可见,总量化误差随b值增大呈现减小趋势,但总量化误差的变化幅度很小。
3.3.3 εα、εr与EOQ的量化关系
选取|v(0)|=2-1/2,当n=8~12、b=17~19情况下,根据公式(11)、(17)对近似误差εa和舍入误差εr进行计算,结果如表2所示。
由表2可见,在不同n和b条件下,εα远大于εr;当n值增大时,εα近似成倍
缩小,而εr大小近似不变且远小于εα,所以εα对EOQ大小起主导作用。
本文就光栅数字细分方法中的CORDIC算法的总量化误差进行了研究,在阐述CORDIC算法基本原理的基础上,推导了算法的εr和εα并给出了EOQ的公式;通过仿真和实验对理论公式进行了验证,结果证明了EOQ的公式对CORDIC算
法表征的有效性,实验分析结果量化给出了算法不同n和b对EOQ的影响。
结果对于光栅细分过程中的误差分离、合成以及电路系统的设计具有实际应用价值。
【相关文献】
[1]王生怀,陈育荣,王淑珍,等.三维精密位移系统的设计[J].光学精密工程,2010,18(1):175-182.
[2]李家文,陈宇航,胡衍雷,等.二维零位光栅自动纳米定位系统[J].光学精密工程,2014,22(9):2444-2450.
[3]张金龙,刘京南,钱俊波,等.超精密角位移测量与控制技术研究[J].仪器仪表学报,2007,
27(12):1738-1741.
[4]张迎新,刘京南.差动光栅式精密定位精度的提高[J].计量学报,2006,27(1):7-11. [5]徐从裕,余晓芬.非同步采样法的光栅纳米测量[J].计量学报,2008,29(4):293-296. [6]郑忠杰,陈德传.正弦波光栅尺信号的方波相移式细分法及应用[J].传感技术学报,2014,27(10):1437-1442.
[7]李怀琼,陈钱.新型光栅信号数字细分技术及其误差分析[J].计量学报,2001,22(4):281-283.
[8]姜建文,张朝杰,金小军,等.基于CORDIC算法的微小卫星发射机设计与实现[J].传感技术学报,2010,23(1):57-61.
[9] Liu Y,FanL,Ma T.A modified CORDIC FPGA implementationfor wave generation [J].Circuits,Systems and Signal Processing,2014,33(1):321-329.
[10] Kao C C.High-performance CORDIC rotationalgorithmBasedonlook-aheadtechniques[J].International Journal of Electronics,2011,98(8):1075-1089. [11]彭琅.一种光栅尺细分技术的研究[D].西安:中国科学院研究生院(西安光学精密机械研究所),2011.
[12]崔改.基于FPGA的光栅纳米级细分IP核设计[D].沈阳:沈阳工业大学,2013. [13]Gröling C,Daaboul Y,Lux M,et al.High-performance positionevaluationof optical encoders via a CORDIC algorithm and oversampling techniques onanFPGA[C]//13th EuropeanConference onPower Electronics and Applications(EPE 2009),Barcelona,Spain,2009.
[14] Hu Y H.The quantizationeffects of the CORDIC algorithm[J].Signal Processing,IEEE Transactions on,1992,40(4):834-844.
[15] Alexander S W,PfannE,Stewart R W.Animproved algorithm for assessing the overall quantizationerror inFPGABased CORDICsystemscomputingavector magnitude [J].Microprocessors&Microsystems,2007,31(2):87-93.。