CORDIC算法收敛性证明

CORDIC算法收敛性证明

cordic算法通过·移位、加减、简单乘除与迭代即可实现三角函数值的转换,
详细的作用、优缺点基本原理与实现介绍,参考如下两篇博客:
https://www.eefocus.com/fpga/422418
https://www.cnblogs.com/touchblue/p/3535968.html
本文主要说明其收敛性。

在这里插入图片描述
首先得有无穷小项,确保拟合收敛精度,其次确保后级调控角度足够,因为每个角度值只能用一次,或加或减,用过了下次就必须用下一次迭代角度,所以如果每次迭代角度值衰减太快(极端情况,如当某个角度后续所有角度求和后收敛值小于该级误差,那后面即使全加不减也无法修正这个误差)。

进一步,corlic角度可以与pi/4/2 ^n 进行比较,然后与pi/4/2 ^ (n-1),列出比较式,根据导函数来判断,不难发现corlic是位于两者之间的,此处不再列出过程。

matlab中简单列出前64项观察:黑色–corlic , 绿色pi/4/2 ^ (n-1), 红色 pi/4/2 ^n,可以看到黑色夹在两者之间。结合前面推导的收敛证明,**说明经过n次运算后,说明经过n次运算后,本级误差 ≤ 本级Corlic角≤pi/4/2 ^ (n-1),也即32位宽的corlic值,对应角度精度误差至少能够保证到 不超过 pi/4 / 2^30 **
在这里插入图片描述

clear;
format longE;

n = linspace(0,63,64);
Angle_corlics = atan((1/2).^n);

plot(Angle_corlics,'k');    
hold on

Angle_sn = (1/2).^n* (pi/4);
plot( Angle_sn , 'r');

n1 = linspace(-1,62,64);
Angle_sn1 = (1/2).^n1* (pi/4);

plot( Angle_sn1 , 'g');

sub1 = Angle_sn1 - Angle_corlics
MIN=min(sub1)

输出MIN =
6.188586175577728e-20 > 0

补充:为何可以最后运算完成后统一乘上系数

由旋转坐标:
在这里插入图片描述
x2 、y2 同时拥有cosθ ,而决定角度关系的是其比值,同时乘除系数只会影响对应的赋值,而不会影响每次旋转角度,故可在最后处理 (cosθ1 *cosθ2 *cosθ3 …) 。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值