首页> 中国专利> 一种用于改善低精度浮点数传输效率的方法

一种用于改善低精度浮点数传输效率的方法

摘要

本发明公开一种用于改善低精度浮点数传输效率的方法,针对物联网中的传感器采集的低精度浮点型数据进行精度保留和归类,采用了对采集到的十进制整数进行每三位划分为一组的方法,将每三位十进制整数为一组的数据转换为二进制数据,再转换为十六进制数据,具有压缩率较高,冗余位较少,存储量少,不受压缩格式束缚等优势,尤其适用于低精度浮点数传输,可广泛用于物联网的数据处理等领域。

著录项

  • 公开/公告号CN113254259A

    专利类型发明专利

  • 公开/公告日2021-08-13

    原文格式PDF

  • 申请/专利权人 桂林电子科技大学;

    申请/专利号CN202110505175.8

  • 申请日2021-05-10

  • 分类号G06F11/10(20060101);H04W4/38(20180101);H04W28/06(20090101);

  • 代理机构45107 桂林市持衡专利商标事务所有限公司;

  • 代理人陈跃琳

  • 地址 541004 广西壮族自治区桂林市七星区金鸡路1号

  • 入库时间 2023-06-19 12:13:22

说明书

技术领域

本发明涉及物联网技术领域,具体涉及一种用于改善低精度浮点数传输效率的方法。

背景技术

信息传输技术在各个领域之中应用广泛,而在控制工程领域中,数据传输在通信过程中具有至关重要的作用。在物联网中,由于无线传输相较于有线传输相对容易受外界电磁干扰,因此如何快速有效的传输数据,对于物联网的数据的传输是非常关键的。例如监测移动机器人所采集信息,或者检测无人机的运行状态等。

公开号为CN111404907A的中国发明专利申请,公开了一种基于IEEE754格式的数据压缩传输方法,基于IEEE754双精度浮点型格式转化成8字节数据,对一组或多组8字节数据进行组装,打包成一帧完整压缩数据后,将数据进行发送。虽然该方法对浮点型数据进行重新整合、转换,在保证数据不失真的条件下,降低了数据传输的字节数量。但是受限于上述方法所采用的数据组装格式,导致数据存在部分冗余位,进一步导致压缩比的降低。

发明内容

本发明所要解决的是在移动设备进行数据无线传输时,针对部分低精度浮点数传输效率增加,降低传输压缩比的问题,提供一种用于改善低精度浮点数传输效率的方法,其在固定字节数下的压缩率更高,剩余的冗余位更少。

为解决上述问题,本发明是通过以下技术方案实现的:

一种用于改善低精度浮点数传输效率的方法,包括步骤如下:

步骤1、采集传感器的数据,并将所采集的数据统一转换为十进制数据,并对十进制数据进行精度保留,使各个十进制数据保留统一的精度;

步骤2、根据步骤1所得的保留精度后的十进制数据,确定重组数据的符号位,即:

步骤2.1、以传感器的标号从后往前的顺序,依次将每三个传感器所对应的保留精度后的十进制数据划分为一组;当该组中保留精度后的十进制数据为正数时标记为0,当该组中保留精度后的十进制数据为负数时标记为1,并根据该组保留精度后的十进制数据的三个正负数的标记所对应的二进制真值表,得到这该组保留精度后的十进制数据的符号位;

步骤2.2、对于每三个传感器为一组所余下传感器的保留精度后的十进制数据,分别判断该保留精度后的十进制数据是否满足

步骤2.3、按传感器的标号从后往前的顺序,将步骤2.1和2.2所得的符号位进行组合后得到重组数据的符号位;

步骤3、根据步骤1所得的保留精度后的十进制数据,确定重组数据的数据位,即:

步骤3.1、对于每三个传感器为一组所余下传感器的保留精度后的十进制数据,对其中满足

其中,n′表示更新后的保留精度后的十进制数据,n表示更新前的保留精度后的十进制数据,J表示更新前的保留精度后的十进制数据的整数位数,Sign(n)表示符号函数,

步骤3.2、对于每个保留精度后的十进制数据:

步骤3.2.1、根据保留精度后的十进制数据所对应的传感器的取值范围确定该保留精度后的十进制数据的预定整数位数,其中保留精度后的十进制数据的预定整数位数等于其所对应的传感器的取值范围的上下限中的较多位数;

步骤3.2.2、对保留精度后的十进制数据的整数部分的位数未达到其预定整数位数的,通过在该保留精度后的十进制数据的整数部分前补0的方式使其整数部分达到其预定整数位数;

步骤3.2.3、对保留精度后的十进制数据取绝对值,并去除小数点后,得到每个传感器的数据位;

步骤3.2.4、按传感器的标号从后往前的顺序,将步骤3.2.3所得的每个传感器的数据位进行组合后得到重组数据的数据位;

步骤4、将步骤2所得的重组数据的符号位在前,将步骤3所得的重组数据的数据位在后,对重组数据的符号位和重组数据的数据位进行组合,得到重组数据;

步骤5、将步骤4所得的重组数据按从后往前的顺序,每三个位一组分别转换为十二位的二进制数,并每组的十二位的二进制数的前两位舍弃后,变为十位的二进制数,将重组数据转换为二进制的重组数据;

步骤6、将步骤5所得的二进制的重组数据按从后往前的顺序,每八位位一组分别转换为十六进制的重组数据;

步骤7、将步骤6所得的十六进制的重组数据按字节依次相加,并取其最低位字节得到校验和;

步骤8、先将步骤6所得的十六进制的重组数据作为待传输数据的前部,将步骤7所得的校验和作为待传输数据的后部;再在待传输数据的前后分别加入数据头和数据尾,组装成一组完整的传输数据帧进行发送。

上述步骤2中,采用直接去除或四舍五入方法对十进制数据进行精度保留。

上述步骤5中,若重组数据的位数不为3的倍数,则需要在重组数据的前面通过0进行补全,使重组数据的位数变为3的倍数。

与现有技术相比,本发明针对物联网中的传感器采集的低精度浮点型数据进行精度保留和归类,采用了对采集到的十进制整数进行每三位划分为一组的方法,将每三位十进制整数为一组的数据转换为二进制数据,再转换为十六进制数据,具有压缩率较高,冗余位较少,存储量少,不受压缩格式束缚等优势,尤其适用于低精度浮点数传输,可广泛用于物联网的数据处理等领域。

附图说明

图1为一种用于改善低精度浮点数传输效率的方法的流程图;

图2为压缩数据(发送数据)与解压缩数据(接收数据)对比图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例和应用例,对本发明进一步详细说明。

一种用于改善低精度浮点数传输效率的方法,如图1所示,包括步骤如下:

步骤1、采集传感器的数据,并将所采集的数据统一转换为十进制数据,并对十进制数据进行精度保留,使各个十进制数据保留统一的精度。

多个传感器同时采集数据,通过传感器的取值范围,整理数据,统一为十进制数据。在本实施例中,传感器1~8所采集并统一转化为十进制的数据,且传感器1~8中采集的数据在监测时均不需要很高的精度,记为a

表1

在对部分数据进行监测时,并不需要很高的精度,此时可对步骤1)中得到的十进制数据进行精度保留,一般保留1~3位。在本实施例中,每个数据均保留小数点后一位精度(数据精度应根据实际需要来定,可采用直接去除或四舍五入的保留形式,此处采用直接去除的方式,仅作为举例说明),如表2所示:

表2

步骤2、根据步骤1所得的保留精度后的十进制数据,确定重组数据的符号位。

步骤2.1、以传感器的标号从后往前的顺序,依次将每三个传感器所对应的保留精度后的十进制数据划分为一组;当该组中保留精度后的十进制数据为正数时标记为0,当该组中保留精度后的十进制数据为负数时标记为1,并根据该组保留精度后的十进制数据的三个正负数的标记所对应的二进制真值表,得到这该组保留精度后的十进制数据的符号位。

以三个保留精度后的十进制数据a

表3

步骤2.2、对于每三个传感器为一组所余下传感器的保留精度后的十进制数据,分别判断该保留精度后的十进制数据是否满足

步骤2.3、按传感器的标号从后往前的顺序,将步骤2.1和2.2所得的符号位进行组合后得到重组数据的符号位。

由于本实施例中的传感器的总数为8,则:首先,将a

步骤3、根据步骤1所得的保留精度后的十进制数据,确定重组数据的数据位。

步骤3.1、对于每三个传感器为一组所余下传感器的保留精度后的十进制数据,对其中为负数,且满足

其中,n′表示更新后的保留精度后的十进制数据,n表示更新前的保留精度后的十进制数据,J表示更新前的保留精度后的十进制数据的整数位数,Sign(n)表示符号函数,

在本实施例中,仅有a

表4

步骤3.2、对于每个保留精度后的十进制数据,执行以下步骤:

步骤3.2.1、根据保留精度后的十进制数据所对应的传感器的取值范围确定该保留精度后的十进制数据的预定整数位数,其中保留精度后的十进制数据的预定整数位数等于其所对应的传感器的取值范围的上下限中的较多位数。

在本实施例中,a

步骤3.2.2、对保留精度后的十进制数据的整数部分的位数未达到其预定整数位数的,通过在该保留精度后的十进制数据的整数部分前补0的方式使其整数部分达到其预定整数位数。

在本实施例中,仅a

表5

步骤3.2.3、对保留精度后的十进制数据取绝对值,并去除小数点后,得到每个传感器的数据位。

在本实施例中,每个传感器的数据位如表6所示:

表6

步骤3.2.4、按传感器的标号从后往前的顺序,将步骤3.2.3所得的每个传感器的数据位进行组合后得到重组数据的数据位。

在本实施例中,得到重组数据的数据位为:

6692123736453246234530993652

步骤4、将步骤2所得的重组数据的符号位在前,将步骤3所得的重组数据的数据位在后,对重组数据的符号位和重组数据的数据位进行组合,得到重组数据。

在本实施例中,得到重组数据位为:

606692123736453246234530993652

步骤5、将步骤4所得的重组数据按从后往前的顺序,每三个位一组分别转换为十二位的二进制数,并每组的十二位的二进制数的前两位舍弃后,变为十位的二进制数,将重组数据转换为二进制的重组数据。

十进制数据按三位一组分组:用最小位的二进制表示最大位的十进制,如下表7所示:

表7

经过2

在本实施例中,将所有十进制数据去除小数点依次排开,从后往前按每三位一组。

将其转换为十位的二进制如表8所示:

表8

步骤6、将步骤5所得的二进制的重组数据按从后往前的顺序,每八位位一组分别转换为十六进制的重组数据。

将所有二进制数据从后往前依次按每八位二进制进行分组2

表9

步骤7、将步骤6所得的十六进制的重组数据按字节依次相加,并取其最低位字节得到校验和。

校验和是判断一组数据是否准确,初始化校验和是每次压缩一帧完整数据前对校验位进行归零处理。

在本实施例中,校验和为:

9+7A+B4+1E+EE+7+14+E6+3A+A1+2F+86+8C=560。

步骤8、先将步骤6所得的十六进制的重组数据作为待传输数据的前部,将步骤7所得的校验和作为待传输数据的后部;再在待传输数据的前后分别加入数据头和数据尾,组装成一组完整的传输数据帧进行发送。

在本实施例中,传输数据帧如表10所示:

表10

当传感器所采集的数据经过上述步骤1-8的处理发送出去后,接收端执行如下步骤完成数据的解压缩过程:1)检验接收到的数据是否为一帧完整的数据,并检测接收到的一帧数据是否有正确的数据头和数据尾:若全是,则去除数据头和数据尾,并转至2)。否则,丢弃该数据,重新接收数据并判断是否符合要求。2)去除数据头和数据尾后,将剩余的字节数据从第一个依次相加至倒数第一个,比较其结果的低八位的数据与校验和是否相等,相等则表示正确,出去校验和即可得到一组完整并正确的数据。3)去除校验和,得到一组完整的十六进制字节数据。4)将十六进制字节数据转换为二进制数据。5)处理二进制数据的符号位和数据位,并二进制数据按每十位为一组依次转换为十进制整数数据。6)将得到的十进制整数,按压缩前的组装格式进行分离再重组,并按压缩前的方式处理十进制数据的精度和符号,得到压缩前的数据。

下面通过实验对本发明的性能进行验证:

根据需求所设置的参数取值范围如表11所示。

表11

本实验以16个参数为例,其中每个参数根据需求设置其有效范围和需要保留的精确度。a

表12

确定初值,本实验采用在变量取值范围内随机发送数据,记录随机发送的数据,再对数据进行压缩和解压缩处理,再次记录解压缩后的数据。对比原始数据与解压缩后的数据,如图2的a1-a16所示,图中虚线代表压缩的数据、实线代表解压缩后的数据,由图可见,本发明保证了数据压缩的准确性、一致性。

如表13将本发明方法与现有方法(公开号为CN111404907A的中国发明专利申请)进行对比:

表13

通过上述实验得出以下结论:当浮点数一样,采用本发明方式对数据进行压缩处理具有压缩比更高、冗余位更少的优点,解压缩后的数据也与压缩前的数据一致。同时,本发明方法可以改善低精度浮点数传输的效率。

需要说明的是,尽管以上本发明所述的实施例是说明性的,但这并非是对本发明的限制,因此本发明并不局限于上述具体实施方式中。在不脱离本发明原理的情况下,凡是本领域技术人员在本发明的启示下获得的其它实施方式,均视为在本发明的保护之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号