低时延CORDIC算法计算平方根电路设计研究

低时延CORDIC算法计算平方根电路设计研究摘要:开平方运算广泛应用于数值分析、调制解调、图像处理等领域,而应用坐标旋转数字计算(CoordinateRotationDigitalComputer,CORDIC)进行平方根运算是一种新应用.基本CORDIC算法精度必须用迭代次数作保证,而较多的迭代次数会导致时延过大等问题,通过运用建立查找表、单向旋转、合并迭代和免除补偿因子等手段,提出一种能够免去大部分迭代运算的改进CORDIC算法用于平方根计算.相较于基本算法计算平方根,该改进算法使用了一半的时钟周期便能得到输出结果,大大减少了输出时延,而且可以达到较高的计算精度,更加适合实时性要求高的应用场合.关键词:坐标旋转数字计算;平方根计算;单向旋转;合并迭代;数字计算机中图分类号:TN492文献标志码:A开平方运算是一种应用范围广泛的数学运算,比如通信信号解调时计算信号包络需要进行开平方运算,正交调制信号提取相位信息时也需要开平方运算,它也是很多数字校正算法如功率放大器数字预失真参数提取算法中的关键运算[1].而平方根运算的精度和速度是开平方电路的主要性能指标.坐标旋转数字计算机(CoordinateRotationDigitalCom?puter,CORDIC)算法[2-3]是提高平方根运算精度和速度的一种新颖方法,CORDIC算法在其计算过程中只涉及移位操作和加减操作,因此非常适合硬件特别是FPGA实现[4].该方法最初用于进行三角函数求值和产生正余弦波形,经过一定推广后也可用于计算双曲线函数[5],采用CORDIC算法在双曲线旋转下的向量模式,可以计算平方根.文献[6,7]对基本CORDIC算法计算平方根进行了详细阐述,它是一种循环迭代的计算方法,通过迭代运算不断逼近所要旋转的角度.但由于迭代次数过多存在时延偏大的缺陷,同时每次迭代方向必须等待上一次迭代结束,由上次迭代剩余角度符号决定本次迭代旋转方向,限制了算法的运算速度.文献[8]虽然对模校正因子进行了简化,但最终精度稍有损失,另外还有其他一些改进方法求平方根.本文在前人对CORDIC算法进行优化基础上提出了一种改进算法求取平方根,将查找表法、单向旋转、合并迭代和基本CORDIC算法相结合,只需进行单向迭代运算,避免了每次旋转方向的不确定,消去了缩放因子[9],从而有效提高了算法的工作速度.同时把迭代运算划分为两个阶段完成:第一阶段迭代通过移位运算和减法运算直接实现,第二阶段迭代通过简化蝶形递归运算一步完成.这样大大减少了迭代运算的次数,降低了延时,特别适合实时性要求高的应用场合.本改进算法在XILINX公司xc6vlx75t-3ff484型号FPGA芯片进行了验证,结果表明:在保证与基本CORDIC算法精度相同的情况下,能够有效计算平方根,不但显著减少了算法迭代次数,还有效提高了算法运算速度,本改进算法应用在计算平方根方面的综合性能有了较明显提升和改善.1基本CORDIC算法CORDIC算法最早是由J.Volder提出的,它是一种只需通过移位-相加运算不断迭代逼近目标值的计算方法[10].在XY坐标平面上将向量(x0,y0)旋转两向量间坐标变换关系如式(1):如果去除cosθ项,可得到向量的伪旋转方程如式(2):CORDIC算法核心在于把旋转θ角分解为N个递减的小旋转角θi进行N步迭代旋转,即限定旋转角度θ,使tanθ=di?2-i,其中di=1或-1,表示旋转的方向,ìx′1=(x0-y0・tanθ)?í?y1′=(y0+x0・tanθ)从而可以通过简单移位来完成由tanθ引入的乘法运-1-i算.任意角度的旋D可通过一系列θ=tan(2)的角度旋转迭代完成,在这里引入了角度累加器:zi+1=ziCdi?θi用来在每次迭代过程中追踪累加后剩余的旋转角度,该剩余的旋转角度确定旋转的方向,若zi0,di=1;否则di=-1.那么第i+1次角度的向量伪旋转方程可表示为式(3):正如前面所述,如果消去了cosθi项,迭代方程(2)就只有移位和加减操作.当cosθi项经过N步旋转后可得到模校正因子Kn,当N确定时Kn就是一个常量,而常数项Kn可以在系统的其他地方进行补偿,Kn表达式∏如式(4):∏CORDIC算法也可以用于投影计算,当将向量(x,y)投影到x轴时,此时旋转方向由y确定.若y《0,d=1;否则d,=-1.迭代的最终值为式(6):扩展迭代方程式,CORDIC算法可以用于计算双曲线方程,扩展后的向...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供参考,付费前请自行鉴别。
3、如文档内容存在侵犯商业秘密、侵犯著作权等,请点击“举报”。

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

客服邮箱:

biganzikefu@outlook.com

所有的文档都被视为“模板”,用于写作参考,下载前须认真查看,确认无误后再购买;

文档大部份都是可以预览的,笔杆子文库无法对文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;

文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为依据;

如果您还有什么不清楚的或需要我们协助,可以联系客服邮箱:

biganzikefu@outlook.com

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

确认删除?