Cordic 算法之 反正切
在通信的算法中,常采用Cordic算法之一,知道角度产生正交的的正弦余弦,
或者知道正弦和余弦求角度,求反正切。
1. 求正弦和余弦值。
方法:旋转角度,得到正弦余弦值; 再旋转角度,到达下一个正弦余弦值;直到旋转的角度趋近于 0 ,不能再进行旋转。
把每次旋转的坐标的x,Y 轴的值各自相加,即得到为该角度的正弦和余弦值。
2 .求反正切:Angle = artan(y/x)。
方法: 及给定x,y 的坐标通过向量旋转,使得y 值不断减小, 通过不断地迭代使得 y 逐渐 趋渐0;
最终得到旋转的角度之和 z, z 即为 反正切值。
验证 输入y=5000, x=5000;通过计算 atan(5000/5000) =0.5(pi 弧度)*90度 = 45度。

验证 输入y=6000, x=4000;通过计算 atan(6000/4000) =0.626(pi 弧度)* 90度 = 56.3度

验证 输入y=6000, x=500;通过计算 atan(6000/0500) =0.947(pi 弧度)* 90度 = 85.23度。

//level 1
always@(posedge clk or negedge rst_n)
begin
if(!rst_n)
begin
x1<=0;
y1<=0;
z1<=0;
end
else
if(ena)
if(y0<0)
begin
x1<=x0-y0;
y1<=y0+x0;
z1<=z0-15'd4500; //45deg
end
else if(y0>0)
begin
x1<=x0+y0;
y1<=y0-x0;
z1<=z0+15'd4500; //45deg
end
else
begin
x1 <= x0;
y1 <= y0;
z1 <= z0;
end
end
//level 2
always@(posedge clk or negedge rst_n)
begin
if(!rst_n)
begin
x2<=0;
y2<=0;
z2<=0;
end
else
if(ena)
if(y1<0)
begin
x2<=x1-{y1[DATA_WIDTH-1],y1[DATA_WIDTH-1:1]};
y2<=y1+{x1[DATA_WIDTH-1],x1[DATA_WIDTH-1:1]};
z2<=z1-15'd2656; //26.56deg
end
else if(y1>0)
begin
x2<=x1+{y1[DATA_WIDTH-1],y1[DATA_WIDTH-1:1]};
y2<=y1-{x1[DATA_WIDTH-1],x1[DATA_WIDTH-1:1]};
z2<=z1+15'd2656;
end
else
begin
x2 <= x1;
y2 <= y1;
z2 <= z1;
end
end
...
...
...
//level 13
always@(posedge clk or negedge rst_n)
begin
if(!rst_n)
begin
x13<=0;
y13<=0;
z13<=0;
end
else
if(ena)
if(y12<0)
begin
x13<=x12-{{12{y12[DATA_WIDTH-1]}},y12[DATA_WIDTH-1:12]};
y13<=y12+{{12{x12[DATA_WIDTH-1]}},x12[DATA_WIDTH-1:12]};
z13<=z12-15'd01; //0.014deg
end
else if(y12>0)
begin
x13<=x12+{{12{y12[DATA_WIDTH-1]}},y12[DATA_WIDTH-1:12]};
y13<=y12-{{12{x12[DATA_WIDTH-1]}},x12[DATA_WIDTH-1:12]};
z13<=z12+15'd01;
end
else
begin
x13 <= x12;
y13 <= y12;
z13 <= z12;
end
end
Cordic 算法之 反正切的更多相关文章
- Cordic 算法的原理介绍
cordic 算法知道正弦和余弦值,求反正切,即角度. 采用用不断的旋转求出对应的正弦余弦值,是一种近似求解发. 旋转的角度很讲求,每次旋转的角度必须使得 正切值近似等于 1/(2^N).旋转的目的是 ...
- 定点CORDIC算法求所有三角函数及向量模的原理分析、硬件实现(FPGA)
一.CORDIC算法 CORDIC(Coordinate Rotation DIgital Computer)是一种通过迭代对多种数学函数求值的方法,它可以对三角函数.双曲函数和平面旋转问题进行求解. ...
- cordic算法的verilog实现及modelsim仿真
1. 算法介绍 CORDIC(Coordinate Rotation Digital Computer)算法即坐标旋转数字计算方法,是J.D.Volder1于1959年首次提出,主要用于三角函数.双曲 ...
- CORDIC算法(1):圆周旋转模式下计算三角函数和模值
CORDIC(Coordinate Rotation Digital Computer)坐标旋转数字计算机,是数学与计算机技术交叉产生的一种机器算法,用于解决计算机的数学计算问题.发展到现在,CORD ...
- 使用帅气的cordic算法进行坐标系互转及log10的求解
参考博客 https://blog.csdn.net/u010712012/article/details/77755567 https://blog.csdn.net/Reborn_Lee/arti ...
- 使用CORDIC算法求解角度正余弦及Verilog实现
本文是用于记录在了解和学习CORDIC算法期间的收获,以供日后自己及他人参考:并且附上了使用Verilog实现CORDIC算法求解角度的正弦和余弦的代码.简单的testbench测试代码.以及在Mod ...
- 三角函数计算,Cordic 算法入门
[-] 三角函数计算Cordic 算法入门 从二分查找法说起 减少乘法运算 消除乘法运算 三角函数计算,Cordic 算法入门 三角函数的计算是个复杂的主题,有计算机之前,人们通常通过查找三角函数表来 ...
- (转)三角函数计算,Cordic 算法入门
由于最近要使用atan2函数,但是时间上消耗比较多,因而网上搜了一下简化的算法. 原帖地址:http://blog.csdn.net/liyuanbhu/article/details/8458769 ...
- 基于FPGA的cordic算法的verilog初步实现
最近在看cordic算法,由于还不会使用matlab,真是痛苦,一系列的笔算才大概明白了这个算法是怎么回事.于是尝试用verilog来实现.用verilog实现之前先参考软件的程序,于是先看了此博文h ...
随机推荐
- USACO comehome Dijkstra
USER: Kevin Samuel [kevin_s1] TASK: comehome LANG: C++ Compiling... Compile: OK Executing... Test 1: ...
- mysql多实例的配置(转)
1.创建多实例的目录: mkdir -p /data/mysql/mysql_3307/{data,tmp,logs} mkdir -p /data/mysql/mysql_3308/{data,tm ...
- 基本调试命令 - u/ub/uf
原:http://www.cnblogs.com/developersupport/p/windbgcommand-u.html 在调试过程中难免会遇到须要反编译代码来分析逻辑的时候.在windbg中 ...
- log4j 日志大小限制 分成30一个 不按日期分日志 按大小分成 按生产日期
首先说说生成按日期.不解释,大家都懂的,这种方法的缺点是很吃硬盘空间 log4j.rootLogger=INFO,logfile,stdout log4j.logger.java.sql=DEBUG, ...
- Android KitKat 4.4 Wifi移植AP模式和网络共享的调试日志
Tethering技术在移动平台上已经运用的越来越广泛了.它能够把移动设备当做一个接入点,其它的设备能够通过Wi-Fi.USB或是Bluetooth等方式连接到此移动设备.在Android中能够将Wi ...
- 【原创】leetCodeOj --- Find Peak Element 解题报告
题目地址: https://oj.leetcode.com/problems/find-peak-element/ 题目内容: A peak element is an element that is ...
- mysql计算指定的时间TPS
<pre name="code" class="sql">有朋友留言,需要监视如早晨在规定时间内9设置18分TPS,写一个10在几秒钟内TPS方法. ...
- LinearLayout具体解释一:LinearLayout的简单介绍
LinearLayout,中文意思是线性布局.假设你是初学android的,肯定会非常困惑"啥叫布局",啥又叫"线性布局"呢. 有的时候,我尝试用官方的语言去解 ...
- android-sdk-windows下载版
Android SDK 4.0.3 开发和执行环境配置 近期又装了一次最新版本号的ADK环境 眼下最新版是Android SDK 4.0.3 本文的插图和文本尽管是Android2.2的 步骤都是一样 ...
- WPF技术触屏上的应用系列(六): 视觉冲击、超炫系统主界面、系统入口效果实现
原文:WPF技术触屏上的应用系列(六): 视觉冲击.超炫系统主界面.系统入口效果实现 去年某客户单位要做个大屏触屏应用,要对档案资源进行展示之用.客户端是Window7操作系统,54寸大屏电脑电视一体 ...