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

     

    以上。

  • 相关阅读:
    ab并发负载压力测试
    在vmware里运行qcow2镜像
    nginx root alias
    速成制作rpm包
    oracle分区表按时间自动创建
    Some network Tools
    python中defaultdict用法详解
    CENTOS7 安装telnet
    H3C 交换机配置
    H3C
  • 原文地址:https://www.cnblogs.com/kingstacker/p/11508326.html
Copyright © 2020-2023  润新知