一种变步长插值反正切算法的设计与实现
2019-01-21陈文艺王子越
西安邮电大学学报 2018年6期
陈文艺, 王子越, 杨 辉
(1.西安邮电大学 物联网与两化融合研究院, 陕西 西安 710061; 2. 西安邮电大学 通信与信息工程学院, 陕西 西安 710121)
查找表(look-up-table, LUT)算法在图像处理和三维测量方面有重要应用[1],其中相位测量轮廓术(phase measuring profilometry,PMP)是应用较为广泛的一种结构光三维测量技术[2],其基本思想是通过计算有一定相位差的多副光栅条纹图像来得到每个像素的相位值,再根据相位值计算物体的深度信息。其中相对相位的解算涉及到反正切函数的求解,而目前应用较为广泛的数字映射技术包含数字循环技术、乘法技术和查找表技术[3-4]等。其中cordic算法就是典型的数字循环技术,只需进行移位和加法运算就能实现三角函数的运算[5]。为了提高算法精度,cordic算法需要进行反复迭代计算或者增加流水线长度,反复迭代节省硬件资源但是运算速度慢,增加流水线则会增加运算资源[6]。多项式近似及泰勒展开算法主要是利用逻辑资源和乘法器资源逼近目标函数,优点是收敛速度较快,但是会消耗较多的乘法器资源,同时等待时间较长[7]。在高精度计算情况下,查找表尺寸会呈指数式增长,因此,查找表技术通常只应用于单精度范围内的计算[8-9]。
为了改善基于查找表技术下高精度要求时资源消耗较多的问题,本文拟在插值查找表基础上利用matlab工具量化误差范围,并划分插值点个数,改变步长,从而在保证一定误差限度下减少资源消耗。
1 插值查找表反正切算法
查找表实质是一个存储元件,能够根据任何给定的输入状态组合,查找得到相应的函数值,但使用查找表需要在精度和表的大小之间作出权衡。……
登录APP查看全文
