CORDIC模块在计算机视觉中有着重要作用。比如在oriented FAST特征提取中重心的方向计算,HOG特征提取中的梯度幅度(gradient Magnitude)和梯度方向(gradient Orientation)。但是并不是说我们将Re和Im方向的幅度放入CORDIC模块就大功告成了了,想得到更高的精度或者得到符合我们期待的结果,我们需要对它有着更加深入的了解。今天我们会通过一些实验来深入了解CORDIC模块的使用注意事项和优化方法。
CORDIC背景:
Simulink提供的CORDIC模块位于DSP System Toolbox HDL Support工具箱的Math Functions部分下。全名是 Complex to Magnitude-Angle HDL Optimized[1]。它是一个完全pipeline设计的模块。对应于MATLAB中的atan2函数,输出角度范围为4个象限。
可设置的参数如下图:
此处仅仅简单介绍一下,具体细节请参考文献[1]。Output format可以选择输出幅度和/或角度。其中角度的格式(Angle format)可以选择输出弧度值[-pi, pi] 或者归一化后的弧度 [-1, 1]。至于Scale output对我们并没有什么影响,保留缺省设置。
测试模型如下: