⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testatanmod.m

📁 Cordic算法的Matlab实现
💻 M
字号:
%% test arctan/mod
%   y0/x0<1 as for x0=1, so y0<1
%   z0=0
clear all
clc
x0=1;z0=0;
y0=linspace(0,1,100);
mode=1;dv_n='y';
% function [xn,gain,Fs,Ds,zn,yn]
% =cordic(x0,y0,z0,mode,dv_n,ROM,wordwidth,acc)
n=-(0:64)';ROM=[-n,atan(2.^n)];
for i=1:length(y0)
    [xn(i),An(i),F,D,zn(i),yn(i)]...
   =cordic(1,y0(i),z0,1,'y',ROM);
    Fs(1:length(F),i)=F;
    Ds(1:length(D),i)=D;
    %sprintf('theta=%f',theta(i))
end
arctan=zn;
mod=xn./An;
%
true_atan=atan(y0);
true_mod=sqrt(1+y0.^2);
error_atan=true_atan-arctan;
error_mod=true_mod-mod;
%plot
figure(2)
hold on
plot(y0,arctan,'LineWidth',2,'Color','g')
plot(y0,true_atan,'y')
plot(y0,mod,'LineWidth',2,'Color','g')
plot(y0,true_mod,'y')
plot(y0,error_atan,'r')
plot(y0,error_mod,'m')
hold off
legend('true atan','arctan',...
       'true mod','mod',...
       'error atan','error mod')
xlabel('y0'),ylabel('values')

save F2.dat Fs -ascii
save D2.dat Ds -ascii

⌨️ 快捷键说明

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