TI 中 acos()函数 存在 bug
编写 DSP 程序时(TMS320F28335),如果直接调用系统自带的 acos 函数,有时会出现莫名其妙的错误 (如同步坐标系中的电流在稳态情况下本来是直流,但可能出现尖峰)。这是因为 acos() 函数存在 Bug 。理论上 acos(−1)=π acos(-1)=\pi ,但 DSP 的计算结果可能是 0.
由于只有这一个点有错误,所以可以很容易将该 Bug 排除。
图 1:不同角度下的正弦和余弦值
图 1 给出了不同角度下的正弦和余弦值。显然,发生 Bug 的区域位于图中蓝色区域内。如果计算正确的话,下列几个式子无法同时成立。
\frac{a}{r}
\left| \frac{b}{r}\right|
\left| \theta \right|
其中, a a, bb 分别为横坐标和纵坐标,他们均可正可负; θ \theta 是对应的角度值。
上述三个式子中的前两个条件将角度限制在了图 1 中的蓝色区域内,而第三个条件又表示角度在 0 附近。因此,如果这几个条件同时满足,说明进入到了 Bug 中,这时候只需要将得到的数值强制变为 π \pi 就好了。
因此,如果横坐标为 a a 及纵坐标 bb 已知,计算对应的角度值的程序如下:
r = sqrt(a*a + b*b);
theta = acos(a/r);// acos:0-PI
if (b < 0) //PI-2*PI
{theta = 2*PI - theta;
}
if ( (a/r<0.95) && ( (b/r<0.05) && (b/r>-0.05) ) &&( (theta<0.3) || ((2*PI - theta)<0.3) ))//由于 theta 已限制在0-2pi,所以第三个表达式可简化
{theta = PI;
}
经过排除 Bug 后的运行结果正常。
实际上,已经有人在 TI 的论坛上反馈过这个错误了,详情请点击链接。
TI 中 acos()函数 存在 bug相关推荐
- OpenCV中initUndistortRectifyMap函数存在bug原因探究
原文首发于公众号「3D视觉工坊」:OpenCV中initUndistortRectifyMap函数存在bug原因探究. 最近在运行如下一段代码时,生成的mapx和mapy有点异常. 代码片段如下: # ...
- python反余弦函数_Python代码中acos()函数有什么功能呢?
摘要: 下文讲述Python代码中acos()函数的简介说明,如下所示: acos()函数功能 用于计算出x的反余弦弧度值 acos()函数语法 math.acos(x) ---------参数说明- ...
- opencv mat 修改_OpenCV中initUndistortRectifyMap函数存在bug原因探究
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 3D视觉工坊的第52篇文章 最近在运行如下一段代码时,生成的mapx和mapy有点异常. 代码片段如下 ...
- matlab2c使用c++实现matlab函数系列教程-acos函数
全栈工程师开发手册 (作者:栾鹏) matlab2c动态链接库下载 matlab库函数大全 matlab2c基础教程 matlab2c开发全解教程 matlab2c调用方法: 1.下载动态链接库 2. ...
- 0.11内核rd_load@ramdisk.c中memcpy函数好像有bug
0.11内核rd_load@ramdisk.c中memcpy函数好像有bug,如: #define memcpy(dst,src,n) \ __asm__("cld;rep;movs ...
- 关于VC++6.0中getline函数的一个bug
关于VC++6.0中getline函数的一个bug 最近在调试程序时,发现getline函数在VC++6.0和其他编译器上运行结果不一样,比如有如下这段程序: #include <iostrea ...
- c++ acos函数_acos()函数以及C ++中的示例
c++ acos函数 C ++ acos()函数 (C++ acos() function) acos() function is a library function of cmath header ...
- (用微信扫的静态链接二维码)微信native支付模式官方提供的demo文件中的几个bug修正...
原文:(用微信扫的静态链接二维码)微信native支付模式官方提供的demo文件中的几个bug修正 native支付模式一demo(用微信扫的静态链接二维码)BUG修复,一共4个BUG 1.nativ ...
- php中icon,php中iconv函数的使用方法
本篇文章中的内容介绍的是php中iconv函数的使用方法,在这里分享给大家,有需要的朋友可以参考一下 最近在做一个程序,需要用到iconv函数把抓取来过的utf-8编码的页面转成gb2312, 发现只 ...
最新文章
- CV竞赛项目研究:脊柱疾病诊断(天池,GPU赛道,2020年9月)
- 如何启用SAP Business by design里的Correction Invoice功能
- 叮咚!你有一份来自明源云的圣诞邀约
- Thin的DateChooser代码学习(getScrollPosition)(原创,转载请声明)
- WEB 开发前传——js笔记
- 既然选择了远方,便只顾风雨兼程……
- lvs负载均衡的调度算法和工作模式
- 一些TC内置的环境环境变量(注意字母必须大写,且只能在TC内用)
- 驻马店远大计算机阳业学院,电力学院
- fusioncharts 嵌套饼图_仙桃酸洗钝化20#无缝管图
- 计算机组成原理——数据通路
- 通达OA2017版连接sqlserver2008数据库
- java中相对路径_java相对路径设置 | 学步园
- 腾讯TCA一些笔记,只敲了前几章,以官方文档和教学为主
- 如何保证电脑硬盘格式化后数据不能被恢复?
- 微信内置浏览器无法使用input图片上传和lrz.bundle.js图片压缩插件
- kali2020.3安装openvas(gvm11)附gvm修改amdin密码以及gvm创建账号
- 次日即流失?直播App如何运营超级用户?
- 汇编语言王爽第三版答案
- 基本的计算机结构知识----基础向