2019年10月6日19:10:11
原理不再赘述,MATLAB:
function [pha, amp] = cordic(x, y)
%仅以第一象限为例
K = 0.607253;
atanTable = atand(2.^([0:-1:-15]))/180;
len = length(atanTable);
pha = 0;
for i = 0:len-1
if (y>0)
x_new = x + y*2^-i;%此处移位寄存器实现
y_new = y - x*2^-i;%此处移位寄存器实现
x = x_new;
y = y_new;
pha = pha + atanTable(i+1);
else
x_new = x-y*2^-i;%此处移位寄存器实现
y_new = y+x*2^-i;%此处移位寄存器实现
x = x_new;
y = y_new;
pha = pha-atanTable(i+1);
end
end
amp = K * x;
functi