test_cordic_dsp.m

来自「MATLAB6P5下的GUI设计-实时参数二阶时域曲线的自动绘制.rar」· M 代码 · 共 52 行

M
52
字号
a=156
b=270
%z=a+bi
ph=0
over=0
cor_gain=19900  % 1/1.6467,Q15
half_pi=6434	% pi/2 Q12
%ATANTAB[]={25736,15193,8028, 4075,2045,1024,512,256,128,64,32}
%POWER2[]={32767,16384,8192,4096,2048,1024,512,256,128,65,32} ;
for n=0:9
    atantab(n+1)=round(atan(1/2^n)*2^15)       % Q15
end
for n=0:9
    k(n+1)=(1/2^n)*2^15         % Q15
end

if(b>0)
    sign=-1
else
    sign=1
end
ph=sign*half_pi     % Q12
temp=b*(-1*sign)
watchtemp(1)=temp
b=a*sign
watchb(1)=b
a=temp              %旋转90度
watcha(1)=a
for n=0:7
   if(b>0)
    sign=-1
   else
    sign=1
   end
 %k=sign*1/(2^n)
 temp=a-sign*b*k(n+1)/2^15           % Q0
 watchtemp(n+2)=temp
 b=sign*a*k(n+1)/2^15+b              % Q0
 watchb(n+2)=b
 a=temp
 watcha(n+2)=a
 ph=ph+sign*atantab(n+1)/8      % Q12
    if(abs(temp)>=32768 | abs(b)>=32768)        %检查溢出
        over=1
    end
end
absz=a*cor_gain/2^15
ph=ph*(-1)
if(ph<0)
    ph=ph+25736             % 负角度,加2pi,Q12
end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?