- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
用矢量旋转求解平方根的算法及其FPGA实现
录入:edatop.com 点击:
VR算法适于计算三角函数,在进行开平方运算时,可利用三角函数倍角之间的关系,将开平方运算转化为三角函数运算。对于t∈[-1,1],初始向量M0(x0,y0)在[0,p]内逆时针旋转,每次旋转角度Dq,经过i次旋转后,总能使得xi=cos(i×Dq)≈t,Dq越小,近似程度越高。
先考察在[0,1]之间的任意实数。假设待开方数为s,且s∈[0,1]。有:
参数讨论
为了将该算法在FPGA上实现,需要选择合适的参数以降低实现的复杂度。在FPGA上实现加减法比较简单,而要实现乘法会比较复杂,在公式(3)中就涉及到乘法运算,要是能通过移位实现乘法将大大提高运算速度。因此Dq要尽量小,以获得更高的近似度,而且这样公式(3)中的cos(Dq)≈1,由此可简化计算;另外yi-1tan(Dq),xi-1tan(Dq)要能通过数据移位实现。因此选择合适的Dq,使得,这样公式(3)中的迭代运算就可用右移k位实现,公式(3)可以简化为:
但如果Dq太小,会使迭代次数增多,因此选取合适的Dq是必要的。
来源:电子产品世界
上一篇:节能智能型3G基站的设计
下一篇:无线接入网中关于WCDMA的全面介绍