利用cordic 算法产生正/余弦波形

引言:本文旨在通过该算法产生正余弦波形(不使用IP核)。

一。仿真波形

  如上所示,dout_sin 和dout_cos 通过补码形式输出三角函数的值,其中使用dout_vld指示信号的有效性。

二。代码下载

点我下载,然后自己加入到modelsim中就可以仿真了。

信号说明:

如上所示,只要给din_vld 和din即可,din的范围是0 - 359。

三。推荐知识参考

参考资料

四。cordic的个人理解(待续)

原文地址:https://www.cnblogs.com/cofin/p/9188629.html

时间: 2024-10-10 09:58:07

利用cordic 算法产生正/余弦波形的相关文章

CORDIC算法计算正余弦

网上有很多关于CORDIC算法的资料,看了之后觉得还是wikipedia讲述的更加清晰,特此总结+转载 http://en.wikipedia.org/wiki/CORDIC 算法思想 CORDIC算法是一种对目标值进行逼近的迭代算法,且迭代次数越多精度越高.迭代过程中仅仅需要除2运算和加减运算,因此特别适合硬件方式实现.在单位圆中,圆上角β点的x坐标和y坐标分别对应β的cos和sin值,因此,求角β的正弦值的CORDICn次迭代过程如下: 1.以(1,0)为初始点,向靠近β的方向旋转arcta

Cordic 算法入门

三角函数计算,Cordic 算法入门 三角函数的计算是个复杂的主题,有计算机之前,人们通常通过查找三角函数表来计算任意角度的三角函数的值.这种表格在人们刚刚产生三角函数的概念的时候就已经有了,它们通常是通过从已知值(比如sin(π/2)=1)开始并重复应用半角和和差公式而生成. 现在有了计算机,三角函数表便推出了历史的舞台.但是像我这样的喜欢刨根问底的人,不禁要问计算机又是如何计算三角函数值的呢.最容易想到的办法就是利用级数展开,比如泰勒级数来逼近三角函数,只要项数取得足够多就能以任意的精度来逼

(转)三角函数计算,Cordic 算法入门

由于最近要使用atan2函数,但是时间上消耗比较多,因而网上搜了一下简化的算法. 原帖地址:http://blog.csdn.net/liyuanbhu/article/details/8458769 三角函数计算,Cordic 算法入门 三角函数的计算是个复杂的主题,有计算机之前,人们通常通过查找三角函数表来计算任意角度的三角函数的值.这种表格在人们刚刚产生三角函数的概念的时候就已经有了,它们通常是通过从已知值(比如sin(π/2)=1)开始并重复应用半角和和差公式而生成. 现在有了计算机,三

【pyqtgraph绘图】案例-动态的正余弦波形图

先看一个简单的小例子: 完整代码: import numpy as np import pyqtgraph as pg import sys from PyQt5.QtWidgets import QWidget,QApplication,QFrame,QGridLayout,QVBoxLayout class Example(QWidget): def __init__(self): super(Example, self).__init__() self.initUI() self.gene

三角函数计算,Cordic 算法入门

三角函数的计算是个复杂的主题,有计算机之前,人们通常通过查找三角函数表来计算任意角度的三角函数的值.这种表格在人们刚刚产生三角函数的概念的时候就已经有了,它们通常是通过从已知值(比如sin(π/2)=1)开始并重复应用半角和和差公式而生成.现在有了计算机,三角函数表便推出了历史的舞台.但是像我这样的喜欢刨根问底的人,不禁要问计算机又是如何计算三角函数值的呢.最容易想到的办法就是利用级数展开,比如泰勒级数来逼近三角函数,只要项数取得足够多就能以任意的精度来逼近函数值.除了泰勒级数逼近之外,还有其他

正余弦信号的DFT频谱分析

一般的,对正余弦信号进行采样并DFT运算,画出频谱图,会发现频谱并不干净.这种现象称为频谱泄漏.因为DFT运算只能是有限序列,突然的截断产生了泄漏. 会有这样的特殊情况,当采样截取的刚好是整数个周期,则频谱图显得特别干净.可以理解为刚好取的完整周期,周期性明显了,频率就比较单一. 为此做了matlab实验: ts = 0.01;%采样率100Hz n = 0:N-1; y = sin(2*pi*20*n*ts);%20Hz信号,每周期采5个点 xk = abs(fft(y,N));%注意根据ff

cordic算法原理及verilog实现

cordic算法原理及verilog实现 算法原理 由此我们可以推出,当(x0,y0)与(x1,y1)的夹角为Θ时,满足如下关系:  由此可得,当(x1,y1)长度为1时,,当根据坐标旋转法旋转Θ角度后,坐标点变为(1,0).因此,根据cordic算法求就是将初始线段旋转至(1,0)后,所得的(x,y)的值. 下面,我们将这些旋转步骤细化,看看每一步是如何工作的. 假设第n次旋转为顺时针旋转时,会得到如下结果:  此时提取会得到如下公式:  令每次旋转的角度Θ满足,则每次旋转最终的角度Θ满足:,

Atitti knn实现的具体四个距离算法 欧氏距离、余弦距离、汉明距离、曼哈顿距离

Atitti knn实现的具体四个距离算法  欧氏距离.余弦距离.汉明距离.曼哈顿距离 1. Knn算法实质就是相似度的关系1 1.1. 文本相似度计算在信息检索.数据挖掘.机器翻译.文档复制检测等领域有着广泛的应用1 2. 汉明距离1 2.1. 历史及应用1 3. 曼哈顿距离2 3.1. SimHash + 汉明距离3 3.2. .简单共有词4 1. Knn算法实质就是相似度的关系 1.1. 文本相似度计算在信息检索.数据挖掘.机器翻译.文档复制检测等领域有着广泛的应用 数据挖掘的过程中,只用

利用QR算法求解矩阵的特征值和特征向量

利用QR算法求解矩阵的特征值和特征向量 为了求解一般矩阵(不是那种幼稚到shi的2 x 2矩阵)的特征值. 根据定义的话,很可能需要求解高阶方程... 这明显是个坑...高阶方程你肿么破... 折腾了好久 1.我要求特征值和特征向量. 2.找到一种算法QR分解矩阵求解特征值 3.QR矩阵分解需要Gram-schimidt正交化分解 有一种很明显的感觉,往往在现在很难有 很系统 很深入 的学习某一个学科的某一门知识. 往往学的时候"靠,学这东西有什么用""学了这么久,也不知道怎么用,不想学" 到后