DSP中快速高精度牛顿迭代开方算法实现
需积分: 35 121 浏览量
更新于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上的高效计算,对于提高微机保护系统的性能具有重要意义。
2021-10-02 上传
2020-11-26 上传
点击了解资源详情
2012-02-17 上传
2022-11-01 上传
点击了解资源详情
点击了解资源详情
hewenz
- 粉丝: 0
- 资源: 3
最新资源
- Android圆角进度条控件的设计与应用
- mui框架实现带侧边栏的响应式布局
- Android仿知乎横线直线进度条实现教程
- SSM选课系统实现:Spring+SpringMVC+MyBatis源码剖析
- 使用JavaScript开发的流星待办事项应用
- Google Code Jam 2015竞赛回顾与Java编程实践
- Angular 2与NW.js集成:通过Webpack和Gulp构建环境详解
- OneDayTripPlanner:数字化城市旅游活动规划助手
- TinySTM 轻量级原子操作库的详细介绍与安装指南
- 模拟PHP序列化:JavaScript实现序列化与反序列化技术
- ***进销存系统全面功能介绍与开发指南
- 掌握Clojure命名空间的正确重新加载技巧
- 免费获取VMD模态分解Matlab源代码与案例数据
- BuglyEasyToUnity最新更新优化:简化Unity开发者接入流程
- Android学生俱乐部项目任务2解析与实践
- 掌握Elixir语言构建高效分布式网络爬虫