在嵌入式领域,三角函数运算比较影响效率,可以使用查表法提高效率
//1, 正切函数值表,90度时取值1000,这个还是浮点运算的,还是不够
const double TAN[91] = {
0,0.017,0.035,0.052,0.070,0.087,0.105,0.123,0.141,0.158,0.176,0.194,
0.213,0.231,0.249,0.268,0.287,0.306,0.325,0.344,0.364,0.384,0.404,
0.424,0.445,0.466,0.488,0.510,0.532,0.554,0.577,0.601,0.625,0.649,
0.675,0.700,0.727,0.754,0.781,0.810,0.839,0.869,0.900,0.933,0.966,
1.000,1.036,1.072,1.111,1.150,1.192,1.235,1.280,1.327,1.376,1.428,
1.483,1.540,1.600,1.664,1.732,1.804,1.881,1.963,2.050,2.145,2.246,
2.356,2.475,2.605,2.747,2.904,3.078,3.271,3.487,3.732,4.011,4.331,
4.705,5.145,5.671,6.314,7.115,8.144,9.514,11.430,14.300,19.081,28.635,
57.286,1000
};
// 这个使用位移15位,把浮点运行换成整数乘法和位移,对一个角度 angle(角度,不是弧度) 有
y = x * ITAN[angle] >> 15;
// 为了提高精度,可以加大位移数,本处使用的是: ITAN[angle] = TAN[angle] * 2的15次幂。90度时的无穷大用一个大数代替
const int ITAN[91] =
{568,1136,1705,2275,2847,3420,3995,4573,5153,5737,6324,6916,7512,8112,8718,9330,
9947,10572,11203,11842,12489,13145,13811,14486,15172,15869,16578,17300,18035,18785,
19550,20331,21129,21946,22782,23639,24518,25420,26347,27301,28283,29296,30340,31420,
32536,33692,34891,36135,37428,38775,40179,41644,43177,44782,46466,48237,50101,52068,
54149,56354,58696,61191,63855,66709,69774,73077,76650,80529,84759,89392,94491,100135,
106420,113466,121425,130494,140928,153069,167382,184520,205423,231504,264982,309556,371883,
465278,620809,931674,1863846,1863846
};
--------------------------------------------------------------------
户外低价正品
jfhw360.taobao.com
分享到:
相关推荐
查表法实现三角函数是一种在计算资源有限的环境中(如早期的嵌入式系统或特定硬件平台)高效计算三角函数值的方法。这种方法的核心思想是预先计算一系列三角函数的值,并将这些值存储在一个查找表中,当需要计算特定...
标题中的“三角函数查表方式c语言实现”指的是一种利用C语言编程实现的查表方法来获取三角函数值。这种方法通常包括以下步骤: 1. **生成表格**:首先,我们需要生成一个包含多个三角函数值的表格。在这个例子中,...
利用查表法实现反正切值计算角度,适合那些没有浮点运算功能的单片机
1. **反三角函数arctan(x)**: 反正切函数arctan(x)是三角函数tan(x)的逆运算,它给出了角度x对应的弧度值,当tan(x)等于给定的实数时。在0到45度(即0到π/4弧度)范围内,arctan(x)的值是从0增加到π/4。 2. **...
查表法是计算机科学中一种常见且实用的技术,特别是在资源有限的嵌入式系统或单片机平台上,如标题所示,用于实现三角函数计算。在这些环境中,由于硬件限制,直接进行复杂数学运算(如浮点运算)可能会非常慢且耗费...
同样,我们可以用查表法来实现高效率的asin计算。在0.1°精度下,查表法将覆盖0到90°(或者0到π/2弧度)的范围。与atan2不同,asin通常只需要一个一维表,因为输入值仅取决于y坐标。 查表法的一个重要考虑因素是...
采用优化的单片机查表法计算atan角度的方法,重点解决了几个问题: (1)且用asin曲线计算代替难以描述的atan曲线,快速开方函数 (2)全部采用整形运算,加快了运算速度,返回的角度范围是0~360.00,包含4个象限,...
采用优化的单片机查表法计算atan角度的方法,重点解决了几个问题: (1)且用asin曲线计算代替难以描述的atan曲线,快速开方函数 (2)全部采用整形运算,加快了运算速度,返回的角度范围是0~360.00,包含4个象限...
1、atan2_tab.h atan2的查表法实现 2、convertor.h 支持整数、浮点与字节数组的互相转换,支持大小端设定 3、crc.h 包含crc16-ccitt和crc32的算法实现 4、fifo.h 参考linux kernel的kfifo的实现,无锁读写,效率高 5...
在给定的标题“查表法实现三角函数,常用三角函数表值查表,C,C++源码.zip”中,我们可以推测这个压缩包包含了一些使用C或C++编程语言实现的源代码,它们利用查表法来计算常见的三角函数值,比如正弦、余弦和正切。...
在"数学三角函数查表方式"文件中,很可能包含了实现上述方法的具体代码示例和预计算的表格数据。通过理解和应用这些资料,开发者可以在自己的单片机项目中实现高效的三角函数计算。这种方法不仅适用于低端CPU,也...
查表法实现atan2的主要步骤包括: - 预计算:生成一个包含多个角度及其对应的弧度值的表格,这些角度通常均匀分布在[-π, π]范围内。 - 输入处理:将输入的(x, y)坐标转换为适合查表的形式,比如归一化到[-1, 1]...
三角函数快速算法是计算三角函数的快速方法,包括反正切、正余弦、开平方等函数。下面是该算法的详细知识点: 一、前言 三角函数是数学和计算机科学中非常重要的概念,广泛应用于各个领域,如科学计算、图形学、...
下面详细介绍余弦函数(cos)的快速算法实现。 #### cos() 函数实现详解 1. **符号处理**: - 在计算余弦函数之前,首先对输入值 `x` 进行取绝对值操作,即 `x = fabs(x)`。这是因为余弦函数关于 y 轴对称,所以 ...
该压缩包“三角函数集模块.rar”包含的是易语言的源码文件,它可能包含了用于实现各种三角函数的源代码,如正弦函数(sin)、余弦函数(cos)、正切函数(tan)以及它们的反函数(arcsin、arccos、arctan)。...
接着,`acos.c`、`asin.c`和`atan.c`分别实现了反余弦、反正弦和反正切函数。这些函数通常需要处理浮点数,并可能使用数值稳定的方法来计算,例如牛顿迭代法或者查表法。在C语言中,没有内置的反三角函数,因此...
总的来说,针对DSP中的反正切函数,使用查表法和线性逼近策略可以显著提高计算速度,满足实时系统的需求。这种方法不仅适用于反正切,也适用于其他计算密集型的数学函数,是嵌入式系统中优化性能的重要手段。在实际...
总结来说,`atan`函数主要用于简单的一对一的正切值到角度的转换,而`atan2`函数则更全面,能够处理所有象限的点并返回准确的角度值。在实际编程中,尤其是在处理几何问题、物理问题或者任何需要计算角度的场景,`...