zoukankan      html  css  js  c++  java
  • Vivado cordic IP求模求角教程

    前言

    当需要对复数求模的时候,用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算出的结果是一致的。

     

    以上。

  • 相关阅读:
    用js获取当前页面的url
    innerHTML 和 innertext 以及 outerHTML
    scrollWidth,clientWidth与offsetWidth的区别
    top、postop、scrolltop、offsetTop、scrollHeight、offsetHeight、clientHeight
    两个文字向上滚动案列
    mysql 经典案例
    学习笔记11
    顺时针打印矩阵
    重建二叉树
    镜像二叉树
  • 原文地址:https://www.cnblogs.com/kingstacker/p/11508326.html
Copyright © 2011-2022 走看看