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;
}


三. 数据归一化


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


获取原始数据

计算原始数据到对应两边界直接的距离(也就是相减)

将计算得到的结果扩大100倍,然后除以两边界的差值

左 边加(100-右边) 除以二,得到最终结果

具体代码实现如下

XValue =  getX1Value();  //获取X方向遥感数值 
if(XValue > XOffSetL)
      XtempL = 0;  /*小于左边界,直接复制为0*/
  else
      XtempL = XOffSetL - XValue ;
if(XValue < XOffSetR)
      XtempR = 0;  /*大于右边界,直接复制为0*/
  else
      XtempR = 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之旅


公众号:FPGA之旅


目录
相关文章
|
19天前
|
数据采集 编解码 算法
STM32采集正弦幅值的研究与实践
STM32采集正弦幅值的研究与实践
50 0
|
2月前
|
传感器 监控 BI
基于STM32的智能垃圾分类系统设计与实现
基于STM32的智能垃圾分类系统设计与实现
101 0
|
2月前
|
算法 计算机视觉 开发者
|
17天前
|
编解码 监控 算法
图像和视频处理中DSP算法的研究与发展
图像和视频处理中DSP算法的研究与发展
23 2
|
1天前
|
传感器 数据采集 人工智能
LabVIEW开发微控制器控制的并行机器人的实时视觉图像处理
LabVIEW开发微控制器控制的并行机器人的实时视觉图像处理
|
2天前
|
编解码 缓存
LabVIEW最快能以什么速率采集图像
LabVIEW最快能以什么速率采集图像
|
4月前
|
芯片
STM32之软件模拟“I2C”时序
STM32之软件模拟“I2C”时序
|
5月前
|
存储 安全 固态存储
【C++医学影像】支持三维影像后处理PACS系统源码
【C++医学影像】支持三维影像后处理PACS系统源码
62 0
|
5月前
|
固态存储
PACS影像系统源码:三维后处理解决方案
PACS影像系统源码:三维后处理解决方案
42 0
PACS影像系统源码:三维后处理解决方案
|
6月前
|
存储 算法 异构计算
基于FPGA的ECG心电信号峰值检测和心率计算,包括testbench测试文件和ECG数据转换为coe文件程序
基于FPGA的ECG心电信号峰值检测和心率计算,包括testbench测试文件和ECG数据转换为coe文件程序