当前位置:网站首页>STM32-遥感数据处理
STM32-遥感数据处理
2022-08-04 01:55:00 【ValentineHP】
一. 简介
在上篇文章中,以及知道如何采集遥感数据了,可是采集到的数据是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之旅
边栏推荐
猜你喜欢
随机推荐
Promise solves blocking synchronization and turns asynchronous into synchronous
GNSS【0】- 专题
数组_滑动窗口 | leecode刷题笔记
Apache DolphinScheduler新一代分布式工作流任务调度平台实战-中
实例039:有序列表插入元素
实例036:算素数
(cf)Codeforces Round #811 (Div. 3)A--E详细题解
Flutter3.0线程——四步教你如何全方位了解(事件队列)
Promise 解决阻塞式同步,将异步变为同步
第13章 网络安全漏洞防护技术原理与应用
FeatureNotFound( bs4.FeatureNotFound: Couldn‘t find a tree builder with the features you requested:
priority_queue元素为指针时,重载运算符失效
参加Oracle OCP和MySQL OCP考试的学员怎样在VUE预约考试
MallBook联合人民交通出版社,推动驾培领域新发展,开启驾培智慧交易新生态
lombok注解@RequiredArgsConstructor的使用
v-model
Kubernetes:(九)coredns(浪不动了)
HBuilderX的下载安装和创建/运行项目
html select tag assignment database query result
idea中diagram使用