原创 CORDIC 算法matlab仿真

2008-6-17 14:00 6191 11 11 分类: 处理器与DSP

m=1;
u=1;
K=1.6468;
a=[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ];
y0=0;
x0=1/K;
z0=30*pi/180;
for i="1:length"(a)
   x="x0-m"*u*y0*2^(-(a(i)));
   y="y0"+u*x0*2^(-(a(i)));
   z="z0-u"*atan(2^(-(a(i))))  ;
   x0=x;
   y0=y;
   z0=z;
   u="sign"(z0);
   end
x0=x0*2^(1/2)
y0=x0*2^(1/2)
出来的结果少了个根号2 自己找不到错误的原因,就自己修正一下!
知道为什么错了了,


K出了问题 ,修正因子不正确,因为我没有45°的这个旋转 但是我把45°的修正因子给乘上去了


也就是多乘了一个2分之根号2


看看这个出来的结果!


 m=1;
u=1;
K=1.6468;
a=[0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ];
y0=0;
x0=1/K;
z0=30*pi/180;
for i="1:length"(a)
   x="x0-m"*u*y0*2^(-(a(i)));
   y="y0"+u*x0*2^(-(a(i)));
   z="z0-u"*atan(2^(-(a(i))))  ;
   x0=x;
   y0=y;
   z0=z;
   u="sign"(z0);
   end


x0 =


    0.8660



y0 =


    0.5000


结果刚刚好!

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
11
关闭 站长推荐上一条 /3 下一条