一种支持数据纠错与校验的声波传输的方法转让专利

申请号 : CN201910657482.0

文献号 : CN110289916A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 吴洋勇梁瑛健

申请人 : 上海睿赛德电子科技有限公司

摘要 :

本发明提供一种支持数据纠错与校验的声波传输数据的方法,用于解决近距离非接触声波传输数据过程中容易受干扰数据丢失导致数据不完整的情况,主要包括:多格式数据输入单元,用于输入数据;数据纠错校验编码单元,用于对输入的原始数据进行纠错校验编码;低资源消耗声波编码单元,用于把带冗余编码数据结合声波的特性进行编码;声波数据输出单元,用于把声波编码的数据组合成音频数据播放;低资源消耗声波解码单元,用于对声波输出单元的音频数据进行解码;数据纠错校验解码单元,用于对解码后的音频数据进行纠错校验解码得到原始输入的数据。采用本发明提供的方法,可以有效提高近距离非接触声波传输数据的可靠性。

权利要求 :

1.一种支持数据纠错与校验的声波传输数据的方法,其特征在于,所述方法包括:

多格式数据输入单元,其用于支持多种格式数据输入,如ASCII码数据、HEX数据;

数据纠错校验编码单元,其用于采用校验码生成算法和纠错编码算法对输入数据进行纠错校验编码处理;

低资源消耗声波编码单元,其用于采用低资源占用的设计算法对经过数据纠错校验编码的数据结合声波特性进行声波编码;

声波数据输出单元,其用于采用读写文件的方式,按照音频的格式组合经过低资源消耗的声波编码单元的声波编码数据,生成可以播放的音频;

低资源消耗声波解码单元,其用于采用低资源占用的设计算法对声波数据输出单元的音频,进行声波解码;

数据纠错校验解码单元,其用于采用纠错解码算法和校验算法对经过低资源消耗声波解码单元的数据,进行纠错校验解码处理。

2.根据权利要求1所述的支持数据纠错与检验的声波传输数据的方法,其特征在于,所述的多格式数据输入单元使用统一的字符转换,支持多种格式数据输入,例如ASCII码数据、HEX数据,对于传输的内容没有限制。

3.根据权利要求1所述的支持数据纠错与检验的声波传输数据的方法,其特征在于,所述的数据纠错校验编码单元,采用低资源占用的设计算法为在纠错编码单元中对原始数据的末尾添加检验码和长度,并且把数据进行首尾翻转,在数据纠错校验解码单元只需要对数据匹配1次。

4.根据权利要求1所述的支持数据纠错与检验的声波传输数据的方法,其特征在于,所述的数据纠错校验编码单元,在数据纠错校验编码单元采用对原始数据进行校验码生成算法和纠错编码算法,纠错编码算法,通过在数据末尾添加冗余码,可以在允许丢失数据的范围内恢复数据。

5.根据权利要求1所述的支持数据纠错与检验的声波传输数据的方法,其特征在于,所述的低资源消耗的声波编码单元,采用低资源消耗的设计算法为采用双声多频的频率表,低频音和高频音各4种,每个数据分别由一个低频音和一个高频音组成,每个频音之间有设定时间的空白便于接收方解码数据,算法采用查表和留空白的方法在同等条件下可以减少

30%的系统资源占用和运算能力。

6.根据权利要求1所述的支持数据纠错与检验的声波传输数据的方法,其特征在于,所述的声波数据输出单元采用读写文件的方式,把音频数据组合成符合音频格式的音频文件。

7.根据权利要求1所述的支持数据纠错与检验的声波传输数据的方法,其特征在于,所述的低资源消耗声波解码单元采用低资源消耗的设计算法为开始先接收设定时间间隔的音频,接着每接收设定时间间隔的音频就与先接收的设定时间间隔的音频进行组合成两倍设定时间间隔音频,进行一次FFT(快速傅里叶变换算法)根据结果中的能量分布,找到低频音和高频音中的最高点,根据查表得到的数据内容,最后把结果按照顺序缓存起来。

8.根据权利要求1所述的支持数据纠错与检验的声波传输数据的方法,其特征在于,所述的数据纠错解码单元,采用纠错解码算法对经过低资源消耗的声波解码的数据进行解码,纠错解码算法在数据丢失允许的范围内可以对数据进行还原,得到带校验码的数据,通过校验算法检验数据的完整性得到原始数据。

说明书 :

一种支持数据纠错与校验的声波传输的方法

技术领域

[0001] 本发明涉及数据交换领域,并且更具体的,涉及一种支持数据纠错与校验的声波传输数据的方法。

背景技术

[0002] 在科学技术飞速发展的时代下,数据传输的方法多种多样,在不同的情景下有着不同的数据传输的需求,并且对数据传输的可靠性有了更高的要求。在近距离非接触的场景下,声波传输数据是一种简单便捷、实时性强、低配置的解决方法。但是,目前声波传输数据存在一定的技术难点,在数据传输过程中容易受干扰丢失数据导致数据不完整,数据在传输过程中没有数据纠错与校验的过程,数据传输的可靠性比较低。

发明内容

[0003] 为解决背景技术存在的上述问题,本发明提供一种支持数据纠错与校验的声波传输数据的方法,以提高声波传输数据的抗干扰能力和提高数据传输的可靠性。
[0004] 本发明提供的一种支持数据纠错与校验的声波传输数据的方法,包括:
[0005] 多格式数据输入单元,支持多种格式数据输入,如ASCII码类型数据、HEX类型数据;
[0006] 数据纠错校验编码单元,采用校验码生成算法和纠错编码算法对输入数据进行纠错编码处理;
[0007] 低资源消耗声波编码单元,采用低资源占用的设计算法对经过数据纠错校验编码的数据结合声波特性进行声波编码;
[0008] 声波数据输出单元,采用读写文件的方式,按照音频的格式组合经过低资源消耗的声波编码单元的声波编码数据,生成可以播放的音频;
[0009] 低资源消耗声波解码单元,采用低资源占用的设计算法对声波数据输出单元的音频,进行声波解码;
[0010] 数据纠错校验解码单元,采用纠错解码算法和校验算法对经过低资源消耗声波解码单元的数据,进行纠错解码处理。
[0011] 进一步地,所述的多格式数据输入单元,为声波传输数据需要传输的原始数据。
[0012] 进一步地,所述的数据纠错校验编码单元先对多格式输入单元的原始数据的整个数据进行校验码生成算法生成大小为一个字节的校验码,并把生成校验码追加到数据的末尾,同时把数据总长度(包含校验码)也追加数据末尾,由于每次传输的数据块长度限制在254个字节,这样除数据总长度外,数据块与校验码的总长度不超255个,所以数据总长度可用一个字节表示,再把完整的数据进行首尾翻转。然后,将以上的数据按照字节进行拆分,把字节的高四位和低四位进行拆分,可以得到每个数据的范围是0至15。接着根据总的数据个数,通过在数据开头补0的方式,把数据扩充为11的倍数。最后把每11个数据分为1组,进行纠错编码,每11个数据编码后长度为15个数据。
[0013] 进一步地,所述的低资源消耗声波编码单元,采用双声多频的频率表,低频音和高频音各4种,每个数据分别由一个低频音和一个高频音组成,最多可以有16种组合,刚好表示0到15。再根据查表得到的频率组合表,将每个数据生成两倍设定时间间隔的双音频,然后每个音频之间留一个设定时间间隔的空白,以方便接收方来进行解码识别。
[0014] 进一步地,所述的声波数据输出单元,采用文件读写的方式,把经过低资源消耗声波编码单元的数据组合成符合音频格式的音频,可通过播放器播放输出到扬声器中。
[0015] 进一步地,所述的低资源消耗声波解码单元,采用低资源占用的算法,先接收一个设定时间间隔的音频,然后进行每接收一个设定时间间隔的音频,就与之前接收的一个设定时间间隔的音频进行结合,生成一个两倍设定时间间隔的音频进行一次FFT(快速傅里叶变换算法),然后,根据FFT(快速傅里叶变换算法)结果中的能量分布,找到低频音和高频音中的最高点,根据查表得到的数据内容,最后把结果按照顺序缓存起来,利用在频音之间留一半空白的时间和查表匹配的算法,可以减少声波解码匹配数据的次数并且把匹配次数控制在3次之内。
[0016] 进一步地,所述的数据纠错校验编码单元,根据数据编码规则,当数据长度大于45个的时候,可以把3作为间隔提取出15个数据,然后进行纠错解码,当纠错结果显示成功时,可尝试把最后2个数据组成1个字节,这个字节内容就可能是期望的数据长度。如果当前接收的数据总数据长度大于等于期望的数据长度,就根据这个长度,对之前的数据进行纠错解码,如果全部纠错结果正确,即可得到带校验码的原始数据,再根据校验码的算法,对数据进行校验,校验后得到准确的原始数据。
[0017] 本发明提供的一种支持数据纠错与校验的声波传输数据的方法,利用声波传输数据,在声波编码之前对输入的原始数据增加数据纠错与校验的步骤,在声波解码之后对解码的数据增加数据纠错与校验的步骤,有效提高声波传输数据的抗干扰能力与提高声波传输数据的可靠性。

附图说明

[0018] 通过参考下面的附图,可以更为完整地理解本发明的示例性实施方式:
[0019] 图1为本发明具体实施例的支持数据纠错与校验的声波传输数据的结构框图;
[0020] 图2为本发明实施例的支持数据纠错与校验的声波传输数据的单元组成图;
[0021] 图3为本发明实施例的数据纠错校验编码单元的流程图;
[0022] 图4为本发明实施例的低资源消耗声波编码单元的流程图;
[0023] 图5为本发明实施例的低资源消耗声波解码单元的流程图;
[0024] 图6为本发明实施例的数据纠错校验解码单元的流程图。

具体实施方式

[0025] 为使本发明实施例的目的、技术方案和优点更加清楚,下面结合说明书附图对本发明实施例进行说明,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0026] 本发明实施例提供一种支持数据纠错与校验的声波传输数据的方法说明,如图1所示,该组成由多格式数据输入单元101、数据纠错校验编码单元102、低资源消耗声波编码单元103、声波数据输出单元104、低资源消耗声波解码单元105和数据纠错校验解码单元106组成,在实施例中采用的校验算法是CRC8校验算法,纠错算法是Reed Solomon Code算法,采用的设定时间间隔为16ms。
[0027] 本发明实施例提供使用方法说明,创建流程图如图2所示,具体步骤包括:
[0028] 步骤201:多格式数据输入单元,作为需要发送的原始数据;
[0029] 步骤202:调用图1中数据纠错校验编码单元102,把多格式数据输入单元的原始数据,进入数据纠错校验编码单元;
[0030] 步骤203:调用图1中低资源消耗声波编码单元103,把经过数据纠错校验编码单元的数据,进入低资源消耗声波编码单元;
[0031] 步骤204:调用图1中声波数据输出单元104,对经过低资源消耗声波编码单元的数据,进入声波数据输出单元为音频数据;
[0032] 步骤205:调用图1中低资源消耗声波解码单元105,把声波数据输出单元的音频数据,进入低资源消耗声波解码单元,得到带纠错处理的数据;
[0033] 步骤206:调用图1中数据纠错校验解码单元106,把经过声波解码单元得到的经过纠错的数据,进入数据纠错解码单元,还原得到原始数据。
[0034] 在实施例中,鉴于各个单元中处理数据的流程有着一定的相关性,在实施例中数据纠错编码单元的流程,如图3所示,具体步骤包括:
[0035] 步骤301:调用图1中多格式数据输入单元101,得到输入的数据;
[0036] 步骤302:把步骤301中获取的完整输入数据进行CRC8校验算法校验;
[0037] 步骤303:把步骤302中的CRC8校验码生成算法得到的校验码和数据总长度(包括CRC8校验码)追加到数据末尾;
[0038] 步骤304:把步骤303中得到的数据,进行数据字节拆分,通过步骤303中限制每次传输的数据块的长度在254个字节,长度不超过255,刚好可用1个字节表示,将以上数据按照字节拆分,把字节的高4位和低4位进行拆分,可以得到每个数据的范围是0到15;
[0039] 步骤305:把步骤304中得到的数据总个数,通过在数据开头补0的方式,把数据扩充为11的倍数,然后把每11个数据分为1组,然后进行Reed Solomon code编码,每11个数据编码后长度为15个数据。
[0040] 在实施例中,低资源消耗声波编码单元13的流程,如图4所示,具体步骤包括:
[0041] 步骤401:调用图1中数据纠错编码单元102,得到经过纠错编码的数据;
[0042] 步骤402:设定双声多频的频率表,低频音和高频音各4种,每个数据分别由一个低频音和一个高频音组成,最多可以有16种组合,可以表示0至15,与步骤304中的数据长度一致;
[0043] 步骤403:把步骤401的得到的数据,通过查找步骤402中的双声多频的频率表,每个数据生成32ms的双音频;
[0044] 步骤404:根据步骤403生成的32ms双音频的后面留16ms的空白,方便接收方进行识别;
[0045] 步骤405:把步骤404中生成的音频数据,添加音频数据的文件头写入文件中,生成经过声波编码的音频。
[0046] 在实施例中,低资源消耗声波解码单元15的流程,如图5所示,具体步骤包括:
[0047] 步骤501:调用图1中声波数据输出单元104,调用扬声器播放经过低资源消耗声波编码的音频;
[0048] 步骤502:接收方先录制16ms的音频,与后面每次录制16ms的音频进行结合;
[0049] 步骤503:在步骤502后得到开始先录制的16ms音频,然后每录制16ms与先录制的16ms的音频进行结合,生成一个32ms的音频;
[0050] 步骤504:根据步骤503得到32ms的音频进行FFT变换(快速傅里叶变换算法);
[0051] 步骤505:根据步骤504得到经过FFT变换的结果中的能量分布,找到低频音和高频音中的最高点;
[0052] 步骤506:根据步骤505在FFT变换的结果得到低频音和高频音中的最高点,通过查表把得到的数据按照顺序缓存起来;
[0053] 步骤507:根据步骤506得到声波解码后的数据。
[0054] 在实施例中,数据纠错解码单元16的流程,如图6所示,具体步骤包括:
[0055] 步骤601:调用图1中低资源消耗声波解码单元105得到,经过低资源消耗声波解码后的数据;
[0056] 步骤602:把步骤601得到的数据经过数据编码规则,按间隔取出数据,如当数据长度大于45个的时候,以3为间隔提取出15个数据;
[0057] 步骤603:把步骤602取出的数据,进行Reed Solomon code纠错解码;
[0058] 步骤604:根据步骤603的纠错解码结果,如果解码失败就跳到步骤603中,根据解码得到的数据长度进行偏移,进行Reed Solomon code纠错编码,如果解码成功就跳到步骤606中;
[0059] 步骤605:根据步骤604得到正确解码后的数据,为带CRC8校验码和数据长度的原始数据,再根据CRC8校验算法校验数据是否正确和根据数据长度取出数据,得到完整的原始数据。
[0060] 最后应说明的是:以上实施例仅用以说明本发明的技术方案而非对其进行限制,尽管参照优化实施例对本发明进行了详细的说明,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。