【发布时间】:2011-05-07 10:27:25
【问题描述】:
我已经实现了一个查找表来计算我系统中的正弦/余弦值。我现在需要反三角函数(arcsin/arccos)。
我的应用程序在嵌入式设备上运行,由于程序内存有限,我无法在该设备上为 arcsin 添加第二个查找表。所以我想到的解决方案是浏览正弦查找表以检索相应的索引。
我想知道这个解决方案是否比使用来自数学标准库的标准实现更有效。
有人已经对此进行了实验吗?
LUT 的当前实现是一个从 0 到 PI/2 的正弦值数组。存储在表中的值乘以 4096,以保持整数值对我的应用程序具有足够的精度。查找表的分辨率为 1/4096,它为我们提供了一个包含 6434 个值的数组。 然后我有两个函数正弦和余弦,以弧度乘以 4096 作为参数。这些函数将给定的角度转换为第一象限中的对应角度,并读取表格中的对应值。
我的应用程序在 dsPIC33F 上以 40 MIPS 运行,我使用 C30 编译套件。
【问题讨论】:
-
请描述一下你当前正弦/余弦表的结构
-
同意 finnw。根据现在表的结构,您可以对表进行二进制搜索,这可能足够快。但是这样你也会或多或少地失去准确性。
-
我用查找表实现的信息编辑了我的问题
标签: c performance embedded trigonometry lookup-tables