📄 cordic_dsp.m
字号:
a=2500
b=4330
%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)
b=a*sign
a=temp %旋转90度
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
b=sign*a*k(n+1)/2^15+b % Q0
a=temp
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -