System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于cordic计算,特别是一种预判压缩优化的cordic系统及方法。
技术介绍
1、坐标旋转数字算法(cordic)于1959年由j.volder首次提出,传统的cordic算法只需要使用加法和移位运算就可以实现三角计算。其基本思想是通过一系列与运算基数相关的角度的不断迭代从而逼近所需旋转的角度,使得旋转算法中不再需要三角函数表等许多复杂计算。相对于以前普遍使用的查找表法速度更快,所需要占据的内存容量更少,每次旋转的角度的精度也有了提升。不久后cordic算法又扩展到用于计算线性、圆和双曲函数的迭代算法,使得硬件系统可以对更加复杂的数学函数进行计算,广泛应用于无线电,雷达,滤波器等领域。
2、比如在移动摄像显示系统中,当摄像头发生旋转的时候,显示屏中的画面也会随之产生不可避免地旋转,对目标的观察和操作会产生非常大的影响。军队中的载具比如军舰,在海上航行时会受到浪潮和大风的影响,舰载摄像平台采集的图像也会随着舰体姿态的变化而发生旋转,此时也需要使用实时图像消旋技术来保证观察人员看到的图像是回正的。此时就需要在显示前使用消旋系统对摄像头传输过来的图像进行消旋处理。
3、但是随着现代科技技术的发展、电路集成化的提高,对计算速度、计算精度的要求有所提高,传统的cordic算法的计算精度以及计算速度已经满足不了设计者们的需求。国内外的学者也在通过减少迭代次数,增加计算精度,扩展使用范围,免去迭代因子等方面对cordic算法进行优化。
技术实现思路
1、本专
2、实现本专利技术目的的技术解决方案为:一方面,提供了一种预判压缩优化的cordic系统,所述系统包括角度预处理模块、查找表模块、过渡模块、压缩计算模块和结果处理模块:
3、所述角度预处理模块,用于对角度进行预处理实现角度范围压缩,以保证所有角度可被计算,并记录角度预处理前后的相关信息供后续模块使用;
4、所述查找表模块,用于通过查找表的方式,获取经所述角度预处理模块处理后的角度的前i次迭代结果;
5、所述过渡模块,用于基于所述角度预处理模块的结果和所述查找表模块获得的前i次迭代结果继续进行迭代,直至符合启动所述压缩计算模块的需求;
6、所述压缩计算模块,用于基于所述角度预处理模块的结果,利用加法和移位对剩余迭代次数进行压缩,将其缩短至一个迭代周期,获得最终的迭代结果;
7、所述结果处理模块,用于根据所述角度预处理模块给出的信息,将最终的迭代结果对应还原至预处理前的角度结果。
8、进一步地,所述角度预处理模块对角度进行预处理,具体包括:
9、(1)建立预处理模型:
10、对[0,360°]角度范围进行角度区域划分,区域步长设置为45°;
11、针对不同的角度区域,设置对应的角度转换方式,以将[0,360°]的角度预处理至[0,45°]中;
12、(2)针对待处理的角度,利用所述预处理模型将其预处理至[0,45°]中,再将其转换成9位数据格式;所述9位数据格式,前三位为预处理前角度的原始角度区域的二进制表示,后六位为预处理后对应的角度数据的二进制表示;
13、(3)根据所需计算精度对后六位数据进行弧度转换,并根据弧度数据的二进制表示中的各位数值分别进行旋转方向的计算,所述旋转方向包括顺时针或逆时针。
14、进一步地,所述查找表模块中表的建立过程包括:
15、(1)根据所要求计算精度n计算所需迭代次数i:
16、
17、(2)将迭代次数i作为地址位数;
18、(3)依据压缩角度上限45°,按照地址位数,通过二进制罗列方式一一对应列举所有可能的旋转结果;所述旋转结果包括某一个点经过旋转后的横、纵坐标。
19、进一步地,所述查找表模块中的查找表方式为:将经所述角度预处理模块处理后的角度的二进制表示中的前i位数据作为地址,进行查找表,获得前i次迭代结果。
20、进一步地,所述过渡模块,具体基于经所述角度预处理模块获得的旋转方向和经查找表模块获得的前i次迭代结果进行迭代,迭代公式为:
21、
22、式中,xi、yi分别为第i次迭代结果对应的点经过旋转后的横、纵坐标;xi+1、yi+1分别为第i+1次迭代结果对应的点经过旋转后的横、纵坐标;σi+1为第i+1次迭代对应的旋转方向。
23、进一步地,所述σi+1的计算公式为:
24、σi+1=(2bi-1)
25、式中,bi为所述弧度数据的二进制表示中由高位至低位的第i位数值。
26、进一步地,所述σi+1的值为0,表示顺时针旋转,值为1,表示逆时针旋转。
27、进一步地,所述启动所述压缩计算模块的需求为:
28、经过所述过渡模块处理后总的迭代次数j满足:
29、
30、进一步地,所述压缩计算模块,基于所述角度预处理模块的结果,利用加法和移位对剩余迭代次数进行压缩的具体公式为:
31、
32、式中,n表示剩余的迭代次数,为n-j,其中n为所要求计算精度;xi+n、yi+n分别为第i+n次迭代结果对应的点经过旋转后的横、纵坐标,σi+m为第i+m次迭代对应的旋转方向。
33、另一方面,提供了一种预判压缩优化的cordic方法,所述方法包括:
34、步骤1,对角度进行预处理实现角度范围压缩,以保证所有角度可被计算,并记录角度预处理前后的相关信息供后续模块使用;
35、步骤2,通过查找表的方式,获取经步骤1处理后的角度的前i次迭代结果;
36、步骤3,基于步骤1的结果和步骤2获得的前i次迭代结果继续进行迭代,直至达到预设迭代次数要求;
37、步骤4,基于步骤1的结果,利用加法和移位对剩余迭代次数进行压缩,将其缩短至一个迭代周期,获得最终的迭代结果;
38、步骤5,根据步骤1获得的信息,将最终的迭代结果对应还原至预处理前的角度结果。
39、本专利技术与现有技术相比,其显著优点为:
40、(1)虽然传统cordic计算可以进行无限多次的迭代,但是它可以计算的角度极限是[-100°,100°]。本专利技术根据三角函数的特点,通过角度压缩对目标角度进行处理,能将[0°,360°]的角度压缩至[0°,45°]的范围内,也就是将本来超出cordic计算范围的角度处理至cordic计算可以计算的范围内,扩大了cordic算法的计算域。
41、(2)传统cordic算法迭代过程中需要在计算完前一次的结果后将该结果与目标角度进行对比得到本次旋转方向,然后才能继续进行迭代计算,这就导致了迭代计算时由于后续旋转方向是未知的,不能对这些迭代本文档来自技高网...
【技术保护点】
1.一种预判压缩优化的CORDIC系统,其特征在于,所述系统包括角度预处理模块、查找表模块、过渡模块、压缩计算模块和结果处理模块:
2.根据权利要求1所述的预判压缩优化的CORDIC系统,其特征在于,所述角度预处理模块对角度进行预处理,具体包括:
3.根据权利要求1所述的预判压缩优化的CORDIC系统,其特征在于,所述查找表模块中表的建立过程包括:
4.根据权利要求2或3所述的预判压缩优化的CORDIC系统,其特征在于,所述查找表模块中的查找表方式为:将经所述角度预处理模块处理后的角度的二进制表示中的前i位数据作为地址,进行查找表,获得前i次迭代结果。
5.根据权利要求2所述的预判压缩优化的CORDIC系统,其特征在于,所述过渡模块,具体基于经所述角度预处理模块获得的旋转方向和经查找表模块获得的前i次迭代结果进行迭代,迭代公式为:
6.根据权利要求5所述的预判压缩优化的CORDIC系统,其特征在于,所述σi+1的计算公式为:
7.根据权利要求6所述的预判压缩优化的CORDIC系统,其特征在于,所述σi+1的值
8.根据权利要求1所述的预判压缩优化的CORDIC系统,其特征在于,所述启动所述压缩计算模块的需求为:
9.根据权利要求1所述的预判压缩优化的CORDIC系统,其特征在于,所述压缩计算模块,基于所述角度预处理模块的结果,利用加法和移位对剩余迭代次数进行压缩的具体公式为:
10.基于权利要求1至9任意一项所述系统的预判压缩优化的CORDIC方法,其特征在于,所述方法包括:
...【技术特征摘要】
1.一种预判压缩优化的cordic系统,其特征在于,所述系统包括角度预处理模块、查找表模块、过渡模块、压缩计算模块和结果处理模块:
2.根据权利要求1所述的预判压缩优化的cordic系统,其特征在于,所述角度预处理模块对角度进行预处理,具体包括:
3.根据权利要求1所述的预判压缩优化的cordic系统,其特征在于,所述查找表模块中表的建立过程包括:
4.根据权利要求2或3所述的预判压缩优化的cordic系统,其特征在于,所述查找表模块中的查找表方式为:将经所述角度预处理模块处理后的角度的二进制表示中的前i位数据作为地址,进行查找表,获得前i次迭代结果。
5.根据权利要求2所述的预判压缩优化的cordic系统,其特征在于,所述过渡模块,具体基于经所述角度预处理模块获得的旋...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。