STM32-遥感数据处理

一. 简介

在上篇文章中,以及知道如何采集遥感数据了,可是采集到的数据是0-4096范围内的,实际上,下边界不为0,上边界也不为4096。为了方便后续的处理,本文将采集到的遥感数据归一到0-100范围内。

二. 遥感数据校准

这个部分是必要的,可以确定真实情况下上下边界的数据。其具体做法为,连续采集一些边界数据,求和,取平均就可以了。具体做法如下。当采集到的数据靠近我们认为的边界时,就认为是有效数据,否则丢弃,其他四个边界的做法也是如此。

/*XL方向校准*/
void Rocker1CalibrationXL(void)
{uint8_t i;uint32_t valueSum = 0;for(i = 0 ;i < 400; ){uint16_t value = getX1Value();if(value > 0xf600){valueSum += value;i++;}}XOffSetL = valueSum / 400;
}

三. 数据归一化

这部分也是关键的一步。其具体做法分为如下几个步骤:

  1. 获取原始数据
  2. 计算原始数据到对应两边界直接的距离(也就是相减)
  3. 将计算得到的结果扩大100倍,然后除以两边界的差值
  4. 左 边加(100-右边) 除以二,得到最终结果
    具体代码实现如下
 XValue =  getX1Value();  //获取X方向遥感数值 
if(XValue > XOffSetL)XtempL = 0;  /*小于左边界,直接复制为0*/elseXtempL = XOffSetL - XValue ;
if(XValue < XOffSetR)XtempR = 0;  /*大于右边界,直接复制为0*/elseXtempR = XValue - XOffSetR;uint32_t XtL = XtempL * 100;uint32_t XtR = XtempR * 100;XtL = XtL / (XOffSetL - XOffSetR);XtR = XtR / (XOffSetL - XOffSetR);X = (XtL + (100 - XtR)) / 2;  /*结果为遥感到左边界的距离,0 - 100*/

至此就完成啦。
还有关注微信公众号 FPGA之旅


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部