使用二分法查找数据进行线性插值的方法

           最近高温测试的项目接近了尾声,标定工作成了现阶段的主要任务,对光学高温传感器的标定一般是使用热电偶来进行标定。

       前期标定使用的多项式拟合的方法,这种方法的原理就是使用热电偶的数据和光学传感器的腔长数据进行来找到一个高阶的多项式,而后在程序中使用这个多项式来根据腔长计算出实际的温度,但是这种方法在程序中的效果并不是很好,计算出来的温度和热电偶的温度相差很大,跟BOSS汇报后,指示使用实验数据进行线性插值方法。

       首先来说下线性插值的原理,首先有规律的记录一组腔长和热电偶的数据,而后使用得到的腔长数据进行搜索,在最接近的两点之间使用正比例函数进行插值。公式为:

           y = y0  + (x-x0)*(y1-y0)/(x1-x0)

它是由直线解析函数的差分式推导而来:

           (y-y0)/(x-x0)=(y1-y0)/(x1-x0)

是最简单的线性插值方法,那么现在这个算法的关键部分就是在于从数据表中搜索到两个和目标数据最接近的两个数据,由于我们的数据表示有序的,我们可以使用二分查找的方法轻松的找到这两个数据。

           二分查找法的基本原理就是建立low和high这个索引量来进行二分查找,但它最初的目的是要查找到目标数据,这两个量在查找结束后本身是没什么作用的,但是在我们这里,这两个量就是最接近目标数据的两个量。但是二分法查找结束的条件是low>high,我们要进行线性插值,则要将查找结束后的两个量进行交换。算法代码如下:

 

       目前读取的标定数据还是从txt文本当中读取,为了更方便的读取和修改数据,可以使用本地Acsess数据库文件来代替txt文件。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值