Vivado cordic IP求模求角教程

Vivado cordic IP求模求角教程,第1张

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


以上。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/587486.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-12
下一篇 2022-04-12

发表评论

登录后才能评论

评论列表(0条)

保存