前言

当需要对复数求模的时候,用FPGA怎么求呢?怎么开根号?

方法1:先求幅值平方和,再使用cordic IP开根号。(蠢办法)

方法2:直接用cordic求取模值。

此处只介绍方法2,资源占用更少,更方便。

求模原理如下图所示。已知(x0,y0),即复信号的实部和虚部,要求模值和角度,即为(r,ɵ)。

流程

(1)既然是用IP,自然首先要看官方的IP说明文档。

文档名称:pg105-cordic

查看文档得知,需要使用codic的translate模式。

Vector translation rotates the vector (X_IN,Y_IN) around the circle until the Y component equals zero as illustrated in Figure 3-9. The outputs from vector translation are the magnitude, X’, and phase,  , of the input vector (X,Y).

由下图可知,角度最高bit表示符号位,高2bit表示整数,其余位表示小数位。

对下图中的0.707,也可看做是707(小数点右移3),则结果为750。

(2)例化IP仿真,本次使用18bit的输入,则IP配置界面可如下图所示。注意选中缩放补偿,否则求模结果被缩放,结果需要乘缩放值Z才是模值结果。注意端口与实际含义的对应关系。

(3)仿真验证:假定X=32000,Y=32750,则模值输出为45788。角度为高3bit(最高bit为符号位)为整数部分,其余为小数部分。则实际的角度弧度值为26115/2^15。可以看到与matlab算出的结果是一致的。

以上。

Vivado cordic IP求模求角教程的更多相关文章

  1. 【转】C/C++求模求余运算符——2013-08-20

    http://blog.csdn.net/whealker/article/details/6203629 求模运算符(%),或称求余运算符,也就是数学上所谓的除法中的余数,%两侧均应为整数, |小| ...

  2. 【C语言学习趣事】_33_关于C语言和C++语言中的取余数(求模)的计算_有符号和无符号数的相互转换问题

    最近再次复习C++语言,用的教材是<C++ Primer>这本教材, 看到第二章的时候,里面有个问题困扰了我. 于是想上网查查怎么回事, 结果看了很久都没有得到一个满意的答案. 书上有这么 ...

  3. 求余VS求模--C语言中表述

    之前看帖子,发现许多时候基本上大家都把求模和求余混为一谈了.但实际上二者的概念是有区别的   1. 求余 在C语言中,求余对应的操作符是%,且a%b求余的最后结果总是与a符号相同,最后的数值为|a|% ...

  4. eq相等 ne、neq不相等, gt大于, lt小于 gte、ge大于等于 lte、le 小于等于 not非 mod求模 等

    eq相等   ne.neq不相等,   gt大于, lt小于 gte.ge大于等于   lte.le 小于等于   not非   mod求模   is [not] div by是否能被某数整除   i ...

  5. NYOJ-102 次方求模 AC 分类: NYOJ 2014-02-06 18:53 184人阅读 评论(0) 收藏

    地址:http://acm.nyist.net/JudgeOnline/problem.php?pid=102 //a^b mod c=(a mod c)^b mod c很容易设计出一个基于二分的递归 ...

  6. 大数求模 sicily 1020

        Search

  7. UVA 11174 Stand in a Line (组合+除法的求模)

    题意:村子里有n个人,给出父亲和儿子的关系,有多少种方式可以把他们排成一列,使得没人会排在他父亲的前面 思路:设f[i]表示以i为根的子树有f[i]种排法,节点i的各个子树的根节点,即它的儿子为c1, ...

  8. HDOJ1021题 Fibonacci Again 应用求模公式

    Problem Description There are another kind of Fibonacci numbers: F(0) = 7, F(1) = 11, F(n) = F(n-1) ...

  9. nyoj 102 次方求模【快速幂】

    次方求模 时间限制:1000 ms  |  内存限制:65535 KB 难度:3   描述 求a的b次方对c取余的值   输入 第一行输入一个整数n表示测试数据的组数(n<100)每组测试只有一 ...

随机推荐

  1. 使用 evo 工具评测 VI ORB SLAM2 在 EuRoC 上的结果

    http://www.liuxiao.org/2017/11/%E4%BD%BF%E7%94%A8-evo-%E5%B7%A5%E5%85%B7%E8%AF%84%E6%B5%8B-vi-orb-sl ...

  2. hadoop记录-MapReduce之如何处理失败的task(转载)

    1.1作业某个任务阻塞了,长时间占用资源不释放 1.2在MapTask任务运行完毕,ReduceTask运行过程中,某个MapTask节点挂了,或者某个MapTask结果存放的那磁盘坏掉了 在Task ...

  3. ios开发注意事项小总结

    一.LaunchScreen LaunchScreen产生原因:代替之前的启动图片 好处: 1.可以展示更多的东西 2.可以只需要出一个尺寸的图片. 启动图片的优先级 启动图片 < Launch ...

  4. Day1作业1:登陆接口(加入日志、注册功能)

    流程图如下: 最先考虑使用python中的list,以能取到user_list中的用户信息,但中途发现没有比较好的方法截取取密码,还是新手的缘故,最终选择了使用dict,以方便截取用户名以及相应的密码 ...

  5. JS验证正数字,正则的一种正数规则1

    JS中有一个验证数字的方法,就是!isNAN.NAN是非数字,!在JS里表示不是的意思,所以这个!isNAN就是判断不是非数字,也就是是数字.验证某个字符串是否是数字格式是:!isNaN(字符串)经过 ...

  6. Nodejs Client for FastDFS

    FastDFS 是分布式文件存储系统.这个项目是FastDFS的NodeJS客户端,用来与FastDFS Server进行交互,进行文件的相关操作.我测试过的server版本是4.0.6. githu ...

  7. Linux-通过源码安装某个版本的内核

    一下操作步骤来自于各种搜索出来的杂七杂八的东西.主要来自:https://blog.csdn.net/happyfreeangel/article/details/85088706 前置环境:Cent ...

  8. 三、部署DNS

    通常情况下配置好域后,DNS会默认安装好,但有时候这个DNS只能解析域控的域名,不能解析其他域名,比如baidu.com之类的.此时需要配置转发器,把不能解析的域名转到其他DNS配置如下: 打开DNS ...

  9. PHP正则匹配价格

    /** * 匹配价格 * @param $price * @return bool */ public static function checkPrice($price) { // 不能小于0 if ...

  10. Debian10.1用wine打开Windows工具乱码总结

    由于之前的deepin15.11莫名其妙挂了(就是使用一般没做啥特殊操作就挂了,不过有可能是我的移动固态硬盘也有锅),所以这次决定装Debian10.1版本, 由于安装时选择语言环境是中文的话创建的一 ...