在嵌入式领域,三角函数运算比较影响效率,可以使用查表法提高效率
//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
分享到:
相关推荐
这是一份用查表法实现三角函数的文档,欢迎下载
三角函数的值的获取,一种通过系统自带的三角函数获取,另一种通过查表方式获取,查表的方式的精确程度是通过这个表有多少项来决定的,这个代码里提供的表项为8193,精度大致在0.000767左右。
0-45度,查表法arctanx函数
采用优化的单片机查表法计算atan角度的方法,重点解决了几个问题: (1)且用asin曲线计算代替难以描述的atan曲线,快速开方函数 (2)全部采用整形运算,加快了运算速度,返回的角度范围是0~360.00,包含4个象限...
在单片机平台上以查表法来实现三角函数sin
采用优化的单片机查表法计算atan角度的方法,重点解决了几个问题: (1)且用asin曲线计算代替难以描述的atan曲线,快速开方函数 (2)全部采用整形运算,加快了运算速度,返回的角度范围是0~360.00,包含4个象限,...
基于dsp的sin函数查表法,大家参考学习
J2ME经验总结之sqrt开方函数(查表法)! J2ME经验总结之sqrt开方函数(查表法)!
查表法实现三角函数,常用三角函数表值查表,C,C++源码
c语言的sin函数表,对采用查表法做sin的有点帮助
正态分布在现实用得很多,但是查表很麻烦,本方法实现与查表一致的代码实现过程
本文给出C语言实现函数查表跳转程序,感兴趣的朋友可以看看。
FPGA使用查表法实现正弦和余弦函数https://blog.csdn.net/shuwei1990/article/details/128200413?spm=1001.2014.3001.5501
FPGA查找表法sin函数的实现 fpga开发.pdf
用汇编语言编的正弦函数,用查表法实现的,运算速度较快切精确
C语言实现用于快速计算正余弦的查表法算法。
CRC16 查表法校验与计算源代码,包含crc16.c与crc16.h两个文件 (1)查表 (2)计算函数 (3)校验函数