[发明专利]一种无溢出的圆周旋转cordic算法实现方法和装置有效
申请号: | 201810077292.7 | 申请日: | 2018-01-26 |
公开(公告)号: | CN108197076B | 公开(公告)日: | 2021-05-18 |
发明(设计)人: | 刘立业;陈勇;伍小保;范欢欢;姚瑶;孙维佳 | 申请(专利权)人: | 中国电子科技集团公司第三十八研究所 |
主分类号: | G06F17/15 | 分类号: | G06F17/15 |
代理公司: | 合肥市浩智运专利代理事务所(普通合伙) 34124 | 代理人: | 丁瑞瑞 |
地址: | 230000 安徽省合*** | 国省代码: | 安徽;34 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 溢出 圆周 旋转 cordic 算法 实现 方法 装置 | ||
本发明公开了一种无溢出的圆周旋转cordic算法实现方法,包括以下步骤:第一步:将输入角度从[0,2π)区间折叠到区间;第二步:构建了当前角度,对每一级的输出相位理论值做了跟踪;第三步:在每级cordic运算之前,利用该级的当前角度对上级输出进行了校正;第四步:完成N级cordic运算后根据初始角度和第N级运算结果直接赋值输出。本发明还公开了一种无溢出的圆周旋转cordic算法的实现装置。本发明相比现有技术具有以下优点:解决了圆周旋转cordic算法溢出问题,严格控制了算法的输出误差,精确地产生了任意相位的正余弦值(最多只有一位噪声位);算法简单,占用资源少,在实际的DA电路中具有较大的应用意义。
技术领域
本发明涉及一种无溢出的圆周旋转cordic算法实现方法和装置。
背景技术
Cordic算法是一种经典的算法,应用在DA电路中,它能将复杂运算简化成移位操作,极大地节省了资源。
在实际cordic算法实现中,有限的级数和处理位数可能会产生溢出,比如在以圆周旋转cordic算法计算工程中应用最广泛的正余弦函数时,如果最后一级发生了溢出,计算结果从7ffff变成了80000(假设处理位数20位),会导致输出从1到-1的极大错误;如果该溢出发生在中间第i级运算,在cordic算法的特色操作——右移i-1位过程中,本应该左补i-1个0,现在变成了左补i-1个1,带来了1/2i-2的误差,该误差将会往后传递影响输出精度。
在初始相位附近,正(余)弦值有可能接近或者达到±1,极容易发生溢出,因此会发生较大的输出误差。
发明内容
本发明所要解决的技术问题在于提供了一种无溢出的圆周旋转cordic算法的实现方法和装置。
本发明是通过以下技术方案解决上述技术问题的:一种无溢出的圆周旋转cordic算法实现方法,包括以下步骤:
第一步:将输入角度从[0,2π)区间折叠到区间;
第二步:构建了当前角度,对每一级的输出相位理论值做了跟踪;
第三步:在每级cordic运算之前,利用该级的当前角度对上级输出进行了校正;
第四步:完成N级cordic运算后根据初始角度和第N级运算结果直接赋值输出。
所述第一步具体为:将输入角度从[0,2π)区间的Z折叠到区间的Z0,四个象限的映射依据为:
所述第二步具体为:
在cordic算法的每级迭代中,构建当前累加角度θi;
N为迭代次数,kj=±1,αj=tan-1 1/2j-1
实际的定点操作中θi和αj均已被量化为和Mz为Z的处理位数,所有符号加上拉线后均表示其量化值。
所述第三步具体为:
每级cordic运算前根据当前的判别角度值将上级输出的余弦和正弦值校正成其中补码表示的和满足
校正方法为:
所述第四步具体为:
迭代完N次后依据直接赋值,
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国电子科技集团公司第三十八研究所,未经中国电子科技集团公司第三十八研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810077292.7/2.html,转载请声明来源钻瓜专利网。