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算出的结果是一致的。

     

    以上。

  • 相关阅读:
    动态网页技术--JSP(5)
    动态网页技术--JSP(4)
    动态网页技术--JSP(3)
    动态网页技术--JSP(2)
    动态网页技术--JSP(1)
    动态网页技术--Servlet
    TomCat服务器搭建
    06_多线程
    05_进程间通信 IPC
    04_进程池
  • 原文地址:https://www.cnblogs.com/kingstacker/p/11508326.html
Copyright © 2011-2022 走看看