在通信的算法中,常采用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 算法知道正弦和余弦值,求反正切,即角度. 采用用不断的旋转求出对应的正弦余弦值,是一种近似求解发. 旋转的角度很讲求,每次旋转的角度必须使得 正切值近似等于 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 ...

随机推荐

iOS中通知的添加和移除

我们都知道viewWillAppear:方法是在控制器的view将要显示的时候调用的,而viewWillDisappear:方法是在控制器的view将要隐藏的时候调用.很多时候我们根据自身需要将相关代 ...

开源 免费 java CMS - FreeCMS1&period;9 职位管理

项目地址:http://code.google.com/p/freecms/ 职位管理 管理职位,实现招聘功能. 1. 职位管理 从左側管理菜单点击职位管理进入. 2. 加入职位 在职位列表下方点击& ...

VS中为类&comma;函数代码自动添加版权注释信息

以web项目为例: 一:给类加注释 1.在visual studio 的安装路径下        如:[盘符]:\Program files\Microsoft Visual Studio 8\Com ...

jquery删除内容是动态修改序号

如图,点击删除图标的时候要删除当前的一条记录,同时界面上的序号要动态的排列好 以下是html结构: jquery实现思路: 首先,需要获取到当前要删除盒子的序号$indexCur,然后遍历父盒子,取出 ...

pycharm连接mysql数据库插入中文数据时出现1366编码错误

创建数据库的时候应该这样创建: create database xxxxxxx DEFAULT CHARSET utf8 COLLATE utf8_general_ci:

5句话搞定ES5作用域

JavaScript的作用域一直以来是前端开发中比较难以理解的知识点,对于JavaScript的作用域主要记住几句话,走遍天下都不怕... 一.“JavaScript中无块级作用域” 在Java或C# ...

如何修改启动jupyter的文件路径

1.cmd 2.jupyter notebook 工作目录路径 办法二: 1.启动pycharm 2.创建一个ipynb文件 3.运行该文件---在打印结果中找到网址,在网页中打开即可正常显示

MapServer Tutorial——MapServer7&period;2&period;1教程学习——第一节:MapServer的基本配置管理,静态地图应用以及MapFile文件

MapServer Tutorial——MapServer7.2.1教程学习——第一节:MapServer的基本配置管理,静态地图应用以及MapFile文件 前言 万事开头难,有了

CF 1131B Draw&excl;

Draw! Time Limit:2000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u   Descriptio ...

cordic算法反正切c语言,Cordic 算法之 反正切相关推荐

  1. c语言编程算法模板,C语言编程算法精选.doc

    C语言编程算法精选 二级C语言编程算法精选一.数学计算1.编写函数double?fun功能是:根据公式计算s,计算结果通过形参指针sn传回:n通过形参传入.? ? 1? ?? ?1? ?? ? 1? ...

  2. c语言iso校验算法,模式识别c语言ISODATA算法.doc

    模式识别c语言ISODATA算法.doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址水印. ...

  3. c语言数据交换的算法流程图,C语言冒泡排序算法浅析

    C语言泡排冒序算浅析 法中刘旭 ( 江师范丽等专高学科校数与计算机学科学系 ) [ 摘]要泡冒排序算法 C语言常见是排序算法之,一该算法的优点 逻辑是清晰,代码简洁,点缺是时复杂度间高较本文介.绍了统 ...

  4. k均值聚类算法案例 r语言iris_K-means算法原理

    聚类的基本思想 俗话说"物以类聚,人以群分" 聚类(Clustering)是一种无监督学习(unsupervised learning),简单地说就是把相似的对象归到同一簇中.簇内 ...

  5. c语言贪心算法ppt,c语言(贪心算法).ppt

    c语言(贪心算法).ppt ACM程序设计,杭州电子科技大学 刘春英 ,2018/12/23,2,最近几天,,你 了吗,AC,2018/12/23,3,每周一星(9),qfwr,2018/12/23, ...

  6. python二分法查找算法_顺序查找算法和折半(二分法)查找算法,C语言查找算法详解...

    查找是指在大量的信息中寻找一个特定的信息.在计算机中,查找是非常重要的一个应用,比如"百度".查找算法的好坏直接影响查找的速度. 常用的查找算法主要有顺序查找和折半(二分法)查找: ...

  7. kmp算法的c语言,KMP算法 纯C实现

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 我自己写的KMP算法: int nt[256]; void get_next1(char* T, int next[], int tlen) { int  ...

  8. c语言常用算法归纳,C语言常用算法

    一.计数.求和.求阶乘等简单算法 此类问题都要使用循环,要注意根据问题确定循环变量的初值.终值或结束条件,更要注意用来表示计数.和.阶乘的变量的初值. 例:用随机函数产生100个[0,99]范围内的随 ...

  9. c语言水仙花数算法流程图,C语言经典算法例题求100-999之间的“水仙花数

    #include #include using namespace std; /* 求100-999之间的水仙花数 */ int main() { int number,hun,ten,gw,sum; ...

最新文章

  1. sqlplus / as sysdba报错ORA-01031: insufficient privileges
  2. Referenced file contains errors (http://www.springframework.org/schema/beans/spring-beans-4.3.xsd).
  3. linux安装icc步骤,怎麼安装不到 icc?
  4. c# 连接各种数据库 Access、Server等
  5. oracle备份信息在控制文件丢失,恢复之利用备份在所有控制文件丢失情况下恢复(一)...
  6. 查看Ubuntu中的ip地址
  7. 顶会 Best paper award 获得者分享发顶会技巧
  8. 第 3 章 sqlmap - automatic SQL injection and database takeover tool
  9. PowerDesigner生成Oracle数据库时,表名会带引号问题
  10. ibm+i+to+mysql_IBM 的数据库Informix 常用代语法
  11. 数学之美(Beauty Of Mathematics)
  12. BestCoder Round #85 (hdu5804,hdu5805,hdu5806,hdu5807)
  13. PS保留渐变进行换色
  14. git 重置用户名 密码信息
  15. 信息安全密码学:DES算法的核心 E盒、S盒、P盒
  16. 红帽 Red Hat Linux相关产品iso镜像下载【百度云】【更新6.9】
  17. Linux SDIO WIFI Marvell8801/Marvell88w8801(六) --- Marvell Linux Wi-Fi driver介绍-WIFI插入卡槽内发生的事情
  18. dedecms模板教程:织梦模板网站SEO优化教程
  19. VSCode C/C++ Theme主题自定义配色方案
  20. 一个菜鸟对建站的一点看法

热门文章

  1. 软件分支测试覆盖率 100%,测试覆盖率之三——测试覆盖率100%相关的话题
  2. app内录屏开发 ios_蓝七科技一款APP开发与ios企业签名过程中的雷区你知多少
  3. Bibtex中作者太多怎么办
  4. 无线路由器wan口和lan口ip同网段导致无法上网解决办法
  5. python stringio_python 的StringIO
  6. 建行 新街口支行 管理公积金放款的经理
  7. 最早计算机发现黑洞,40年的黑洞之谜被最详细的模拟所解开
  8. Missive for mac(协作式电子邮件客户端)
  9. eclipse 常用插件
  10. 单片机c语言 u16,STM32常用数据类型 u8、u16、u32