美文网首页
传感器值信息的压缩表达

传感器值信息的压缩表达

作者: qianlihu | 来源:发表于2017-11-09 17:54 被阅读59次

上文提到传感器值信息和描述信息的分离。值信息和描述的分离,有利于代码结构化,也可以节约传输带宽。

这里记录一种传感器值信息的压缩表达方法,但不建议在项目中使用。主要是现在无论是处理器(单片机)还是传输线路,性能都提升很多,并不对节省的这几个字节敏感。

一般来讲,传感器采集的数据,得到的信息都是展现給人来看的。让我们来看几组温度数据。
1、2、3、4 温度数据分辨率为1,采集间隔内,数据变化间值为1.
100、200、300、400,501 温度数据分辨率为1,采集间隔内,数据变化间值为100,501会被我们约等为500。
2、4、8、17温度数据分辨率为1,采集间隔内,数据指数变化,8后面的预期数据为16,即便测量值为17,我们在口头描述中也多会约等为16。

因为数据只是用来人为观察,这种约等完全是合理的,也并没有破坏其中的统计规律。

由上,我们可以看到我们对数据总是有一个识别分辨率的。而这个分辨率一个字节表述就足够了。

1、2、3、4
1×100、2×100、3×100、4×100 100为基础数据,有效数据只传输1,2,3,4即可。
pow(2,1)、pow(2,2)、pow(2,3)、pow(2,4) 2的指数为基础数据,有效数据只传输1,2,3,4即可

比如下面公式:
result = (double) (((m * val) + (b * pow(10, k1))) * pow(10, k2))

其中val为有效数据,m,b,k1,k2都为基础数据,这个函数曲线通过调节参数总能找到一个适应当前数据的渐进线。~,如果找不到这条渐进线,还可以将结果:

case SDR_SENSOR_L_LN:
                  result = log(result);
                  break;
          case SDR_SENSOR_L_LOG10:
                  result = log10(result);
                  break;
          case SDR_SENSOR_L_LOG2:
                  result = (double) (log(result) / log(2.0));
                  break;
          case SDR_SENSOR_L_E:
                  result = exp(result);
                  break;
          case SDR_SENSOR_L_EXP10:
                  result = pow(10.0, result);
                  break;
          case SDR_SENSOR_L_EXP2:
                  result = pow(2.0, result);
                  break;
          case SDR_SENSOR_L_1_X:
                  result = pow(result, -1.0);     /*1/x w/o exception */
                  break;
          case SDR_SENSOR_L_SQR:
                  result = pow(result, 2.0);
                  break;
          case SDR_SENSOR_L_CUBE:
                  result = pow(result, 3.0);
                  break;
          case SDR_SENSOR_L_SQRT:
                  result = sqrt(result);
                  break;
          case SDR_SENSOR_L_CUBERT:
                  result = cbrt(result);
                  break;

这样我们便做好了传感器值信息的压缩。

这套数据压缩方案来自于IPMI协议

相关文章

  • 传感器值信息的压缩表达

    上文提到传感器值信息和描述信息的分离。值信息和描述的分离,有利于代码结构化,也可以节约传输带宽。 这里记录一种传感...

  • 传感器值信息和描述信息的分离

    一般来讲,传感器数据可以分为离散型和数值型。离散型传感器记录布尔值类型信息如,开/关,正常/不正常。数值型传感器要...

  • 文字

    文字是是信息的压缩。 为了信息压缩和表达方便,文字给大脑输入了自动化的程序指令,比如给大脑输入苹果两个字,普通人的...

  • 第十周 传感器

    1方向传感器在方向传感器中values变量的3个值都表示度数,它们的含义如下:values[0]:该值表示方位,也...

  • iOS 修改类文件的udid和图片的hash值

    马甲包修改部分信息所需内容: 图片轻量级压缩改变hash值主要命令行是: 修改类文件的udid

  • iOS传感器的介绍

    1.传感器的定义:传感器是一种感应、检测装置 2.传感器的作用:用于检测、感应设备的周边信息;不用类型的传感器,检...

  • iOS传感器数据采集

    传感器信息采集项目到了一定的节点,总结一下iOS中传感器信息采集的相关知识。 代码下载:https://githu...

  • 辐射校正

    传感器的校正大气的校正地形以及太阳高度角的校正 传感器的校正 为了消除传感器本身所带来的辐射误差,并且把dn值转化...

  • 比特币钱包

    什么钱包? 钱包是由哈希值、数字签名、公钥、私钥等组成。 其中: 哈希值是把信息或者数据压缩成文本摘要,生成一段字...

  • 一个像素占多大内存 多少字节

    取决于需要存储一个像素的多少信息,以及是否采用了压缩技术。 如果是非黑即白的二值图像,不压缩的情况下一个像素只需要...

网友评论

      本文标题:传感器值信息的压缩表达

      本文链接:https://www.haomeiwen.com/subject/polmmxtx.html