DSP中快速高精度牛顿迭代开方算法实现

需积分: 35 10 下载量 193 浏览量 更新于2024-09-12 收藏 343KB PDF 举报
"基于牛顿迭代法的高精度快速开方算法用于 DSP,通过优化选取迭代初值,结合 DSP 的移位指令、查表技术和硬件乘法器,减少运算次数,提高计算速度,适用于嵌入式微处理器。" 本文介绍了如何利用牛顿迭代法设计一个高精度、快速的开方算法,特别适用于数字信号处理器(DSP)的应用。在全波傅氏算法中,开平方运算是一项关键但计算密集的任务,可能影响微机保护系统的瞬动响应。为解决这个问题,作者提出了一个新的方法,该方法能够在选取迭代初值时更接近开方的真值。 首先,文章阐述了牛顿迭代法的基本原理,这是一种通过不断逼近目标解的迭代算法。在开方运算中,牛顿迭代法通过不断更新近似值,直到达到所需的精度。然而,固定迭代初值可能导致迭代次数过多,尤其是在处理较大数值时。因此,文章的重点在于如何快速选择一个接近实际开方结果的迭代初始值。 作者提出的方法利用了DSP的特性,如移位指令,可以快速调整数值大小;256个单元的查表技术,用于存储预计算的迭代初值;以及硬件乘法器,加速乘法运算。通过这些技术,算法能在一次查表和大约1.2次乘法运算后确定迭代误差小于2^(-9)的初值,显著减少了迭代次数。 在TI DSP集成开发平台上,测试了该算法,结果显示对于范围在00000004.0000H到01FFFFFF.FFFFH的定点数,迭代次数不超过3次即可达到2ulp(单位间隔)以上的精度,而且内存占用小。这使得该算法非常适合在具有硬件乘法器的嵌入式微处理器上实现,尤其适用于实时性和计算效率要求高的微机保护系统。 文章进一步讨论了被开方定点数的数据格式,考虑到电流、功率等物理量的大范围变化,采用了8字节的定点数表示,其中6字节用于存储数值,以保证在牛顿迭代开方过程中达到1.5x10^-9的精度。 该研究提供了一种优化的基于牛顿迭代法的开方算法,通过改进迭代初值的选择策略,实现了在DSP上的高效计算,对于提高微机保护系统的性能具有重要意义。