一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据报文纠错方法和数据报文纠错装置与流程

2022-02-20 13:59:38 来源:中国专利 TAG:


1.本技术涉及通信领域,尤其涉及一种数据报文纠错方法及数据报文纠错装置。


背景技术:

2.由于外界干扰等原因,可能导致数据传输存在错误。为了保证数据报文的正确传输,可以采用重传技术,在数据传输错误时,对错误的数据重新传输。数据重传会引入延迟,并导致数据吞吐率下降。
3.可以通过前向纠错(forward error correction,fec)编解码进行数据纠错,但是fec编解码大多采用似然解码及数,纠错后的数据中仍然可能存在误码。


技术实现要素:

4.本技术提供一种数据报文纠错方法和数据报文纠错装置,能够提高报文纠错的准确性。
5.第一方面,提供了一种数据报文纠错方法,所述方法包括:接收至少一个数据报文、纠错报文,以及校验码,所述校验码用于检测所述至少一个数据报文中的第一数据报文是否存在误码;根据所述纠错报文和所述纠错报文对应的所述数据报文,确定所述第一数据报文的报文副本;根据所述校验码,确定所述第一数据报文中待定比特位的值,以得到纠错后的第一数据报文,所述待定比特位为所述第一数据报文和所述报文副本中值不相同的比特位。
6.通过将其他数据报文中存在的误码引入第一数据报文的副本单元中,根据校验码确定第一数据报文的报文副本和接收的第一数据报文中值不同的待定比特位的值,即使在其他数据报文中存在误码的情况下,也能够对第一数据报文中的误码进行纠正,提高了纠错的准确性和纠错方法使用的广泛性。
7.结合第一方面,在一些可能的实现方式中,所述根据所述校验码,确定所述第一数据报文中待定比特位的值,包括:对基向量进行crc校验,以得到所述基向量的第一校验结果,所述基向量与所述待定比特位在所述第一数据报文中所处的位置一一对应,在所述基向量中,所述待定比特位的值与其他比特位的值相反;对所述第一数据报文或所述副本报文进行crc校验,以得到第二校验结果;对所述校验码与所述第二校验结果进行按位异或,以得到第三校验结果;确定所述基向量对应的系数,使得每个所述基向量的第一检验结果与所述基向量对应的系数的乘积的按位异或计算结果与所述第三校验结果相等,所述基向量对应的系数为0或1;根据所述基向量对应的系数,确定所述第一数据报文中所述待定比特位的值。
8.也就是说,校验码可以是crc码。crc校验是数据传输过程中常见的校验方式。基向量与待定比特位在第一数据报文中所处的位置一一对应,也可以理解为基向量与待定比特位一一对应。通过对接收的第一数据报文或副本报文进行crc校验并与接收的crc码进行按位异或以得到第三校验结果,并对每个基向量进行crc校验以得到每个基向量的,确定每个
基向量的系数,基向量的系数使得基向量与基向量的系数乘积的按位异或结果与第三校验结果相等。从而,根据基向量的系数,可以确定第一数据报文中待定比特位的值。
9.从而,利用数据传输中常见的crc校验码,实现了对数据报文的纠错。
10.结合第一方面,在一些可能的实现方式中,所述待定比特位的数量小于或等于所述校验码的位数。
11.在待定比特位的数量小于或等于校验码的位数时,可以保证接错的准确性。
12.结合第一方面,在一些可能的实现方式中,所述根据所述纠错报文和所述纠错报文对应的所述数据报文,确定所述第一数据报文的报文副本,包括:根据所述纠错报文和所述纠错报文对应的所述数据报文,进行校验或纠错解码,以获得所述第一数据报文的报文副本。
13.获得第一数据报文的报文副本的方式可以是校验,也可以是纠错解码。也就是说,纠错报文可以包括校验结果,也可以包括纠错编码的结果。
14.一般情况下,与纠错编码的结果相比,校验结果的位数较少,即冗余量较小,将对数据报文进行校验得到的校验结果承载在纠错报文中,可以减小纠错报文传输对传输资源的占用。
15.将对数据报文进行纠错编码得到的纠错结果承载在纠错报文中,接收端可以根据纠错报文进行纠错解码,以得到数据报文的报文副本。当报文副本存在纠错错误,特别是当报文副本对数据报文的传出错误的比特位均进行了的纠正,且对其他比特位进行了错误修改的情况下,根据校验码确定待定比特位的值,可以避免对数据报文的错误修改,提高纠错的准确性。
16.结合第一方面,在一些可能的实现方式中,当所述第一数据报文存在误码时,根据所述至少一个数据报文和所述纠错报文,确定所述报文副本。
17.可以进行第一数据报文存在误码时,确定第一数据报文的报文副本,在第一数据报文不存在误码时不进行该操作,减小对资源的占用。
18.第二方面,提供一种数据报文纠错方法,包括:接收至少一个数据报文、纠错报文;根据所述纠错报文和所述纠错报文对应的数据报文,确定所述多个数据报文中的第一数据报文的多个报文副本,所述多个报文副本包括第一报文副本,所述第一报文副本是根据所述纠错报文进行纠错解码得到的;确定所述第一数据报文中待定比特位的值,以得到纠错后的第一数据报文,所述待定比特位为报文集合的多个报文中值不相同的比特位,所述报文集合包括所述多个报文副本。
19.纠错解码一般采用最大似然解码技术,纠错结果中可能存在错误。根据纠错报文和数据报文得到第一数据报文的多个报文副本,根据多个报文副本确定最终的纠错结果,可以提高纠错的准确性。
20.结合第二方面,在一些可能的实现方式中,所述确定所述第一数据报文中待定比特位的值,包括:根据报文集合中每个报文在所述待定比特位的值中每个值的数量,确定所述第一数据报文中所述待定比特位的值,所述报文集合包括所述多个报文副本。
21.可以根据报文集合中每个报文在待定比特位的值的数量,确定待定比特位的值。
22.结合第二方面,在一些可能的实现方式中,所述报文集合包括所述第一数据报文。
23.第一数据报文是接收的。一般情况下,数据传输过程中传输错误的比特位数量较
少。报文集合包括接收的第一数据报文,可以减少确定待定比特位的值时所需的第一数据报文的报文副本的数量,从而减小传输的数据量,降低计算量。
24.第三方面,提供了一种电子装置,该装置包括:通信接口和处理器。通信接口用于接收至少一个数据报文、纠错报文,以及校验码,所述校验码用于检测所述至少一个数据报文中的第一数据报文是否存在误码。处理器用于,根据所述纠错报文和所述纠错报文对应的所述数据报文,确定所述第一数据报文的报文副本。处理器还用于,根据所述校验码,确定所述第一数据报文中待定比特位的值,以得到纠错后的第一数据报文,所述待定比特位为所述第一数据报文和所述报文副本中值不相同的比特位。
25.结合第三方面,在一些可能的实现方式中,所述处理器还用于,对基向量进行crc校验,以得到所述基向量的第一校验结果,所述基向量与所述待定比特位在所述第一数据报文中所处的位置一一对应,在所述基向量中,所述待定比特位的值与其他比特位的值相反;所述处理器还用于,对所述第一数据报文或所述副本报文进行crc校验,以得到第二校验结果;所述处理器还用于,对所述校验码与所述第二校验结果进行按位异或,以得到第三校验结果;所述处理器还用于,确定所述基向量对应的系数,使得每个所述基向量的第一检验结果与所述基向量对应的系数的乘积的按位异或计算结果与所述第三校验结果相等,所述基向量对应的系数为0或1;所述处理器还用于,根据所述基向量对应的系数,确定所述第一数据报文中所述待定比特位的值。
26.结合第三方面,在一些可能的实现方式中,所述待定比特位的数量小于或等于所述校验码的位数。
27.结合第三方面,在一些可能的实现方式中,所述处理器还用于,根据所述纠错报文和所述纠错报文对应的所述数据报文,进行校验或纠错解码,以获得所述第一数据报文的报文副本。
28.结合第三方面,在一些可能的实现方式中,所述处理器还用于,当所述第一数据报文存在误码时,根据所述至少一个数据报文和所述纠错报文,确定所述报文副本。
29.第四方面,提供一种数据报文纠错装置,包括通信接口和处理器。所述通信接口用于,接收至少一个数据报文、纠错报文;所述处理器用于,根据所述纠错报文和所述纠错报文对应的数据报文,确定所述多个数据报文中的第一数据报文的多个报文副本,所述多个报文副本包括第一报文副本,所述第一报文副本是根据所述纠错报文进行纠错解码得到的;所述处理器还用于,确定所述第一数据报文中待定比特位的值,以得到纠错后的第一数据报文,所述待定比特位为报文集合的多个报文中值不相同的比特位,所述报文集合包括所述多个报文副本。
30.结合第四方面,在一些可能的实现方式中,所述处理器还用于,根据报文集合中每个报文在所述待定比特位的值中每个值的数量,确定所述第一数据报文中所述待定比特位的值,所述报文集合包括所述多个报文副本。
31.结合第四方面,在一些可能的实现方式中,所述报文集合包括所述第一数据报文。
32.第五方面,提供一种数据报文纠错装置,包括用于执行第一方面或第二方面所述的方法步骤的各个模块。
33.第六方面,提供一种计算机可读存储介质,该计算机可读存储介质存储有程序,该程序包括用于执行第一方面或第二方面中的方法中的步骤的指令。
34.第七方面,提供一种计算机程序产品,所述计算机程序产品包括计算机指令,当所述计算机程序产品被计算机执行时,该计算机执行前述第一方面或第二方面中的方法。
35.第八方面,提供一种芯片系统,所述芯片系统包括至少一个处理器,当程序在所述至少一个处理器中执行时,使得所述芯片系统执行第一方面或第二方面所述的方法。
36.可选地,作为一种实现方式,所述芯片系统还可以包括存储器,所述存储器中存储有程序,所述处理器用于执行所述存储器上存储的程序,当所述程序被执行时,所述处理器用于执行第一方面中的方法。
37.应理解,本技术中,第一方面的方法具体可以是指第一方面以及第一方面中各种实现方式中的任意一种实现方式中的方法。
附图说明
38.图1是一种通信场景的示意图。
39.图2是一种重传机制的正确接收情况的示意图。
40.图3是一种重传机制的重传情况的示意图。
41.图4是一种重传机制的重传情况的示意图。
42.图5是一种重传机制的重传情况的示意图。
43.图6是本技术实施例提供的一种数据报文纠错方法的示意性流程图。
44.图7是循环冗余校验的示意图。
45.图8是本技术实施例提供的一种数据报文纠错方法的示意性流程图。
46.图9是本技术实施例提供的待定比特位的示意图。
47.图10是本技术实施例提供的一种奇偶校验编解码示意图。
48.图11是本技术实施例提供的另一种奇偶校验编解码示意图。
49.图12是本技术实施例提供的一种数据报文纠错方法的示意性流程图。
50.图13是本技术实施例提供的基于投票的纠错方法的示意图
51.图14是本技术实施例提供的一种数据报文纠错方法的示意性流程图。
52.图15是本技术实施例提供的一种rs码字的构成方式示意图。
53.图16是一种rs码字的格式示意图。
54.图17是本技术实施例提供的一种通信设备的示意性结构图。
55.图18是本技术实施例提供的一种数据报文纠错装置的示意性结构图。
56.图19是本技术实施例提供的一种数据报文纠错装置的硬件结构示意图。
具体实施方式
57.下面将结合附图,对本技术中的技术方案进行描述。
58.图1是一种通信场景的示意图。
59.数据可以通过有线的方式或无线的方式传输。
60.本技术的技术方案,可以应用于各种通信系统,例如:通用分组无线业务(general packet radio service,gprs),长期演进(long term evolution,lte),第五代移动通信技术(fifth generation,5g)以及无线保真(wireless fidelity,wi-fi)系统等。
61.对于采用无线的方式进行数据传输,数据接收端可以是接入网设备、核心网设备
或用户设备,也可以是站点或接入点。
62.用户站点(station,sta)也可以称为系统、用户单元、接入终端、移动站、移动台、远方站、远程终端、移动设备、用户终端、终端、无线通信设备、用户代理、用户装置或ue。该sta可以是蜂窝电话、无绳电话、会话启动协议(session initiation protocol,sip)电话、wll站、pda、具有无线局域网(例如wi-fi)通信功能的手持设备、计算设备或连接到无线调制解调器的其它处理设备、车载设备、可穿戴设备或物联网、车联网中的终端设备以及未来网络中的任意形态的用户设备等。
63.接入点(access point,ap)可用于与接入终端通过无线局域网进行通信,并将接入终端的数据传输至网络侧,或将来自网络侧的数据传输至接入终端。
64.无线局域网技术(例如wi-fi技术等)可以满足不同形式的终端在局部边缘网络的快速接入及互联互通,对性能以及可靠性没有特别要求。在无线局域网通信过程中,传输的信号受各种噪声和干扰的影响。
65.wi-fi技术是基于ieee 802.11协议族下支持局域无线网络通信的技术总称。系统主要包括客户端(station,sta)和接入点(access point,ap),sta与ap之间通过空中接口即无线传输进行通信。ap将sta接入到互联网的局域网络中,从而使sta可以访问互联网。
66.一方面,采用无线局域网技术的信号发送端邻近布置时,会产生网内干扰。由于无线局域网技术一般采用信道竞争接入机制,不可避免的存在冲突和干扰,导致发送端发送的报文在接收端无法正确接收。
67.另一方面,自频率相近的其他无线通信技术,会对无线局域网通信产生网间干扰。例如采用蜂窝网、蓝牙、紫蜂(zigbee)技术的设备发送的电磁波,甚至微波炉发送的电磁波,均会对无线局域网络的信号传输产生影响,导致信号质量下,误码率上升。
68.前向纠错(forward error correction,fec)编码一般应用在物理层,是一种纠错编码的方式。里德-所罗门(reed-solomon,rs)编码,玻色-乔赫里-霍克文黑姆(bose-chaudhuri-hocquenghem,bch)编码等,均为fec编码。
69.发送端进行对数据进行fec编码,生成冗余信息。接收端根据冗余信息进行fec解码,对接收的数据进行纠错。
70.fec等纠错解码方案大多采用似然解码技术,如采用低密度奇偶校验(low density parity check,ldpc)等。似然解码技术的基本原理是通过多轮迭代不断逼近正确解,当迭代次数遇到预设的截止条件时,解码结束,而此时总是能给出一组解,但无法保证解码得到的解的正确性。也就是说,纠错解码后的数据仍可能存在误码。
71.发送端的数据链路层可以对数据报文进行循环冗余校验(cyclic redundancy check,crc)。数据链路层包括媒体访问控制(medium access control,mac)层。发送端的mac层可以对报文进行crc校验,生成该报文的crc码。发送端通过物理(physical,phy)层将该报文和该报文的crc码发送至接收端。
72.接收端的物理层将接收的报文和该报文的crc码传输至mac层。接收端的mac层可以根据该报文的crc码对该报文进行crc校验。在判断该报文正确的情况下,对该报文进行后续处理。在判断该报文不正确的情况下,将该报文丢弃。
73.对于报文丢失的问题,无线局域网通信过程中可以采用自动重传请求(automatic repeat request,arq)技术。arq是一种二层(level 2,l2)的网络技术,在无线局域网技术
中,l2层即数据链路层。该技术可以保障数据的可靠传输。
74.如图2所示,接收端在接收报文后并通过mac层的crc校验确定报文正确的情况下,确定成功接收报文,向发送端回送确认字符表示确认。应答消息(acknowledge,ack)是数据通信中,接收站发给发送站的一种传输类控制字符,用于表示发来的数据已确认接收无误。
75.如果发送端在约定时间内没有收到接收端回送的ack,就认为所发送的报文丢失,随即启动报文重传。采用arq技术,发送端可能在图3至图5所示的情况下启动重传。
76.如图3所示,发送端向接收端发送报文,接收端收到报文后立即向发送端回复ack,但ack丢失,发送端在发送报文之后的时间长度t内未收到ack,向接收端重传该报文,接收端收到重传报文后再次回复ack,发送端在发送重传报文之后的时间长度t内收到接收端回复的ack,报文重传成功。
77.如图4所示,发送端向接收端发送报文,但报文丢失。当发送端在发送报文之后的时间长度t内未收到ack,向接收端重新发送该报文,接收端正确接收重传报文后向发送端回复ack,发送端在发送重传报文之后的时间长度t内收到ack,报文重传成功。
78.如图5所示,发送端向接收端发送报文,接收端收到报文后立即向发送端回复ack,但由于ack未能在发送端发送报文之后的时间长度t内送达发送端,发送端向接收端重传该报文。
79.循环冗余校验(cyclic redundancy check,crc)可以用于判断报文是否存在误码,从而检测或校验数据传输或者保存后可能出现的错误。
80.发送端对数据进行crc校验,将校验的结果附加到数据之后随数据一起传输至接收端。
81.接收端对接收的数据进行crc校验,将计算的校验结果与接收的校验结果进行比较。当两个校验结果相同时,认为接收的数据正确。反之,当校验结果不相同时,认为接收的数据存在误码。
82.从而,发送端添加冗余信息,在解码端快速实现原信息的错误检测。冗余信息较为简短且位数固定。
83.循环冗余校验码属于一类纠错码。纠错码的设计理念是以最小的信息冗余量换取最大的错误检测能力。对于典型循环冗余校验码crc-r来说,r表示冗余信息的长度(即位数)。当原始信息中的连续错误位不超过r个时,crc码都能有效判断其对错。但是,对于错误位的个数以及错误位在原始信息中的位置,仅根据crc码均无法确定,因此无法实现对错误位的纠正。
84.一般情况下,无线局域网通信的设备(如接入点(access point,ap)、终端设备)均支持arq机制。arq机制给出了在无线局域网技术的二层(layer 2,l2)层(即数据链路层)的一套保障机制,用于提高通信的可靠性。
85.arq机制通常应用在单播的情况下,对点到多点的广播和组播单向通信,无法启用重传,从而使得接收的数据准确性较低。
86.另外,arq机制提供的可靠性基于报文重传,而报文重传依赖于超时机制来判定报文的丢失,重传所引入的延迟无法消除,导致很多对延迟敏感的业务不可用。重传本身可能多次失败,每次重传不仅再一次引入延迟,频繁的重传也会导致数据吞吐率下降。
87.可以通过fec编解码进行数据纠错,但是fec编解码大多采用似然解码及数,纠错
后的数据中仍然可能存在误码。
88.为了解决上述问题,本技术实施例提供了一种数据报文纠错方法,提高对数据纠错的准确性。
89.图6是本技术实施例提供的一种数据报文纠错方法的示意性流程图。
90.在数据传输过程中,接收端可以进行s610至s630。数据可以是通过有线的方式传输,也可以通过无线的方式传输。
91.在s610,接收至少一个数据报文、纠错报文、校验码,所述校验码用于检测所述至少一个数据报文中的第一数据报文是否存在误码。
92.报文(message)是网络中交换与传输的数据单元,即发送端一次性要发送的数据。报文包含了将要发送的完整的数据信息。每个报文的长度不限,即每个报文的长度可以相同或不相同。
93.报文也是网络传输的单位,传输过程中,发送端可以对报文进行封装以形成组、包、帧进行传输。对报文进行封装的方式,可以是在报文之前或之后添加一些信息段,例如添加报文头。
94.再例如,校验码可以是发送端对第一数据报文进行校验得到的,发送端可以将数据报文和校验码进行封装,并将发送封装后的报文。接收端可以接收封装后的报文,以得到封装前的报文和该报文的校验码。
95.接收端接收的报文可能存在误码。通过s620至s630,可以对报文中的传输错误进行纠正。
96.在s620,根据所述纠错报文和所述纠错报文对应的数据报文,确定所述第一数据报文的报文副本。
97.副本是对正本而言,可以用来表示某物有联系且相似的另一物。
98.第一数据报文的报文副本与第一数据报文的长度相等。也就是说,第一数据报文的报文副本与第一数据报文具有相同数量的比特位。
99.纠错报文对应的数据报文是根据发送端生成是纠错报文的方式确定的,可以包括第一数据报文之外的一个或多个报文,也可以包括第一数据报文。
100.发送端可以对多个数据报文进行校验或纠错编码,以得到纠错信息。每个纠错信息可以包括对包括第一数据报文的至少一个数据报文进行一次校验或纠错编码得到的冗余信息。可以通过多次校验和/或纠错编码,得到多个纠错信息。
101.该一个或多个纠错信息可以位于在一个或多个纠错报文中。一种可能的实现方式,一个纠错报文可以承载一个纠错信息,具体地,可以参见图10、图11和图15的说明。
102.校验的方式具体可以是奇偶校验,例如可以是按位异或,或比特交织奇偶校验(bit interleaved parity,bip)。
103.发送端可以对n个数据报文进行按位异或,n为正整数。发送端对n个数据比特进行按位异或,得到一个校验比特,该n个数据比特分别位于n个数据报文的第i比特位,该校验比特可以位于纠错报文的第i比特位。
104.该n个数据报文包括第一数据报文,该纠错报文对应的数据报文包括该n个数据报文除第一数据报文之外的报文。
105.接收端接收该n个数据报文以及纠错报文,并对接收的该n个数据报文除第一数据
报文之外的报文,以及纠错报文,进行校验,得到第一数据报文的一个报文副本。
106.具体地,接收端对接收的该n个数据报文中除位于第一数据报文之外的每个数据报文的第i比特位的数据比特的值,以及接收的纠错报文中第i比特位的校验比特的值,进行按位异或,以确定第一数据报文的报文副本中的第i比特位的数据比特。从而,可以得到第一数据报文的报文副本中每个比特位的值。
107.采用校验的方式生成第一数据报文的副本单元,当第一数据报文之外的其他数据报文中存在误码时,生成的第一数据报文的副本单元中也存在错误。也就是说,通过校验的方式生成第一数据报文的副本单元,在第一数据报文的副本单元中引入了其他数据报文中存在的误码。
108.纠错编码的方式具体可以是线性纠错编码或非线性纠错编码。例如,可以采用fec。
109.线性纠错编码也可以称为线性纠删码编码,是基于线性编码的系统码编码方式。对n个数据比特进行线性纠错编码,产生k个冗余比特。该n个数据比特可以位于一个或多个数据报文中,该k个冗余比特可以位于一个或多个纠错报文中。发送端向接收端发送数据报文和纠错报文。
110.将该n个数据比特和该k个冗余比特发送至接收端。接收端在数据报文中确定该n个数据比特,在纠错报文中确定该k个冗余比特。对接收的该n个数据比特和该k个冗余比特进行纠错解码,从而对接收的n个数据比特进行纠错。
111.线性纠错编解码与该n个数据比特和k个冗余比特之外的其他数据无关,可以降低解码复杂度。
112.如果该k个冗余比特位于m个纠错报文中,该n个数据比特位于至少一个数据报文中,则该m个纠错报文对应的数据报文包括该至少一个数据报文。
113.发送端可以根据该至少一个数据报文中的每n个数据比特生成k个冗余比特。生成的冗余比特可以形成纠错报文。至少一个数据报文包括第一数据报文。
114.接收端可以根据接收的该至少一个数据报文,以及纠错报文,进行纠错解码,以得到第一数据报文的报文副本。
115.由于纠错解码大多采用似然解码技术,进行纠错解码得到的第一数据报文的报文副本中可能仍存在错误。
116.接收端可以接收至少一个纠错报文,该至少一个纠错报文可以是发送端通过至少一次校验和/或纠错编码得到的,所以接收端可以进行至少一次校验和/或纠错解码,以得到第一数据报文的至少一个副本报文。
117.应当理解,发送端每次进行校验和/或纠错编码的数据报文可以相同或不同,因此,每个纠错信息对应的数据报文可以相同或不同。
118.例如,发送端对数据报文s1、s2、s3进行纠错编码得到纠错报文c1,发送端对数据报文s1、s2进行纠错编码得到纠错报文c2。也就是说,每个纠错报文仅包括一个纠错信息。接收端将接收的s1作为第一数据报文进行纠错时,纠错报文c1对应的数据报文为接收的数据报文s1、s2、s3,纠错报文c2对应的数据报文为接收的数据报文s1、s2。
119.在s610,接收的纠错报文中,纠错信息的数量可以是一个或多个。当接收多个纠错信息时,可以对每个纠错信息进行s620,即根据每个纠错信息对该纠错信息对应的数据报
文进行解码,以得到每个纠错信息对应的一个报文副本。该报文副本是第一数据报文的副本。
120.发送端可以向接收端发送指示信息,以指示纠错报文对应的数据报文。或者,接收端可以预设置纠错报文与数据报文的对应关系。
121.在s630,根据所述校验码,确定所述第一数据报文中待定比特位的值,以得到纠错后的第一数据报文,所述待定比特位为所述第一数据报文和所述报文副本中值不相同的比特位。
122.当进行s620得到多个报文副本时,待定比特位为第一数据报文和多个报文副本中值不相同的比特位。也就是说,每个待定比特位用于指示第一数据报文和多个报文副本中值不相同的比特在第一数据报文中的位置。第一数据报文和多个报文副本在每个待定比特位均包括“0”和“1”两种值。应当理解,第一数据报文中每一位的值可以是“0”或“1”。
123.根据待定比特位,可以确定与该待定比特位在第一数据报文中的位置对应的基向量。基向量与待定比特位在第一数据报文中的位置一一对应。也可以理解为,基向量与待定比特位一一对应。
124.每个基向量中,对应的待定比特位的值与其他比特位的值相反。例如,待定比特位为第一数据报文的第i位,与该待定比特位对应的基向量中,第i位的值为“1”,其他位的值为“0”。
125.如果校验码是crc码,则可以进行s631至s634。
126.具体地,可以进行s631至s634。
127.在s631,对基向量进行crc校验,以得到所述基向量的第一校验结果。
128.在s632,对所述第一数据报文或所述副本报文进行crc校验,以得到第二校验结果。
129.当进行s620得到多个报文副本时,可以仅对第一数据报文或报文副本中的一个报文进行crc校验以得到第二校验结果。
130.在s633,对所述校验码与所述第二校验结果进行按位异或,以得到第三校验结果。
131.该校验码是发送端发送的,是发送端对第一数据报文对进行crc校验得到的。
132.对数据进行crc校验可以理解为以数据为被除数,以预设向量为除数,进行除法运算,将除法运算的余数作为校验将结果,具体可以参见图7的说明。应当理解,在s631和s632中进行crc校验时,作为除数的预设向量相同,且与发送端对第一数据报文对进行crc校验以确定所述校验码时作为除数的预设向量相同。
133.在s634,确定所述基向量对应的系数,基向量对应的系数使得所述基向量的第一检验结果与所述基向量对应的系数的乘积的按位异或计算结果与所述第三校验结果相等,所述基向量对应的系数为0或1。
134.在s635,根据所述基向量对应的系数,确定所述第一数据报文中所述待定比特位的值。
135.通过将基向量与对应的系数的乘积进行按位异或,可以确定进行s632时使用的第一数据报文或副本报文中存在误码的比特位。
136.对于每个待定比特位,当与该待定比特位对应的基向量中该待定比特位的值为“1”,其他位的值为“0”时,可以将基向量与对应的系数的乘积进行按位异或的计算结果与
进行s632时使用的第一数据报文或副本报文进行按位异或,从而对s632时使用的报文中存在误码的比特位进行纠错。
137.如果进行s632时,第二校验结果是对第一数据报文进行crc校验得到的,则可以根据第一数据报文和每个基向量对应的系数,确定第一数据报文中存在误码的比特位,从而确定发送端发送的第一数据报文,实现对接收的第一数据报文中的误码纠错。示例性地,可以参见图8步骤s821至s823的说明。
138.如果进行s632时,第二校验结果是对某个报文副本进行crc校验得到的,则可以根据该报文副本和每个基向量对应的系数,确定该报文副本中存在误码的比特位,从而也可以确定发送端发送的第一数据报文。
139.在进行s631之前,可以确定第一数据报文中待定比特位的数量。可以在待定比特位的数量小于或等于所述crc码的位数时,进行s631至s634。当待定比特位的数量小于或等于所述crc码的位数时,通过s631至s634,能够准确确定待定比特位的值,提高对第一数据报文的纠错的准确性。
140.或者,也可以通过其他校验方式,确定第一数据报文中待定比特位的值。
141.例如,发送端可以将第一数据报文连续的每p个比特位进行奇偶校验,并根据每次接偶校验得到的奇偶校验结果生成纠错报文,发送至接收端。其中,p为正整数。
142.在进行s630时,如果第一数据报文中每p个比特位中仅有不超过一个待定比特位,则可以根据纠错报文确定每个待定比特位的数值,从而得到纠错后的第一数据报文。
143.可选地,在进行s620之前,可以根据校验码判断第一数据报文是否存在误码。
144.当确定第一数据报文存在误码时,进行s620,从而降低计算量,提高纠错效率。
145.如果采用校验的方式生成第一数据报文的副本单元,通过s620,将其他数据报文中存在的误码引入第一数据报文的副本单元中。通过s630,根据校验码确定第一数据报文的报文副本和接收的第一数据报文中值不同的待定比特位的值,即使在其他数据报文中存在误码的情况下,也能够对第一数据报文中的误码进行纠正。
146.纠错解码一般采用似然解码技术。如果采用纠错解码的方式生成第一数据报文的副本单元,则通过s620生成的第一数据报文的副本单元中可能存在误码。通过s630,根据校验码确定待定比特位的值确定第一数据报文的副本单元和接收的第一数据报文中值不同的待定比特位的值,在纠错解码的结果存在错误的情况下,能够对存在错误的第一数据报文副本进行修正。
147.以校验码为crc码为例,采用纠错解码的方式生成的第一数据报文的副本单元可能修改了所有传输错误的比特位,并且修改了部分传输正确的比特位。因此,第一数据报文的副本单元仍然存在误码,即存在错误修改的比特位。当修改的传输正确的比特位的数量小于crc码的长度时,通过s630,可以对错误修改的比特位进行更正,以使得更正后的第一数据单元与发送端发送的第一数据单元相同,提高纠错的准确性。
148.为了减小运算量,可以在根据校验码对第一数据报文的副本单元进行校验。当第一数据报文的副本单元存在误码时,进行s630。反之,当第一数据报文的副本单元不存在误码时,将第一数据报文的副本单元作为纠错后的第一数据报文。
149.图7是crc的示意图。
150.crc是一种检错方式,广泛应用于无线局域网(wireless local area network,
wlan)等数字信号传输系统的错误检测。
151.发送端对数据进行crc,生成crc码,将数据和crc码发送至接收端。例如,对每个报文中的数据进行crc,并将crc码添加在数据之后进行封装,将封装后的报文发送至接收端。
152.接收端对接收的信息进行crc,确定数据是否存在误码。
153.例如,接收端可以对数据进行crc,生成校验信息,并将校验信息与接收的crc码进行比较。当校验信息与接收的crc码相同时,校验成功,确定数据不存在误码。反之,当校验信息与接收的crc码不相同时,校验失败,确定数据存在误码。
154.或者,当接收的信息中crc码位于在数据之后,接收端对接收的信息用进行crc,如果余数为0,则校验成功,确定接收的信息没有错误,不存在误码。反之,若余数不为0,则校验失败,确定接收的信息存在误码。
155.发送端在发送的信息中增加crc码,以极低开销添加冗余信息,使得接收端能够实现对数据的快速错误检测。
156.发送端和接收端进行crc校验,根据相同的预设二进制数进行。
157.如图7所示,在进行crc校验时,将预设向量g(x)作为除数,g(x)也可以理解为二进制数,最该次幂为xk。预设向量g(x)应当选择素(不可约)多项式,例如,预设向量g(x)可以是10011,表示为g(x)=x4 x1 1,则k=4。将数据左移k位后,除以g(x),得到的k位余数就是crc码。数据左移k位,也可以理解为在数据之后补充k个“0”。
158.进行crc过程中的除法运算,是模2除法,即当部分余数首位是1时商取1,反之商取0。然后,每一位的减法运算是按位减,不产生借位。模2除法也可以理解为异或运算。如图7所示,数据为1101011011,以10011为预设向量进行crc校验,得到的crc码为1110。
159.与数据的长度相比,crc码的长度很小,与接收的报文存在误码的概率相比,crc码存在误码的概率很低。因此,当接收端crc校验失败时,可以确定接收端接收的数据中存在误码。
160.图8是本技术实施例提供的一种数据报文纠错方法的示意性流程图。
161.发送端进行s811至s813。
162.在s811,发送端进行对数据报文s1、s2、s3进行按位异或,以得到数据报文s1、s2、s3对应的纠错报文c1。纠错报文c1可以表示为:c1=s1

s2

s3。
163.在s812,发送端生成数据报文s1、s2、s3中每个数据报文的crc码,以及纠错报文的crc码。
164.发送端的mac层对数据报文s1、s2、s3以及纠错报文c1分别进行crc校验以得到每个报文对应的crc码,并将每个报文以及该报文对应的crc码进行封装。一般来说,crc码可以位于报文的尾部。
165.在s813,发送端向接收端发送数据报文、纠错报文和每个报文的crc码。
166.发送端可以向接收端发送封装后的报文,封装后的报文包括crc码。
167.如图10所示,数据报文s1的crc码可以表示为crc(s1),数据报文s2的crc码可以表示为crc(s2),数据报文s3的crc码可以表示为crc(s3),纠错报文c1的crc码可以表示为crc(c1)。
168.接收端在接收数据报文s1、s2、s3和纠错报文c1,以及每个报文的crc码之后,可以进行s821至s823。
169.分别对应于数据报文s1、s2、s3、纠错报文c1,接收端接收的报文为数据报文s1*、s2*、s3*,以及纠错报文c1*。也就是说,发送端发送的数据报文为s1,接收端接收的数据报文为s1*,接收端需要确定接收的数据报文是否与发送端发送的数据报文相同。在接收端接收的数据报文与发送端发送的数据报文不相同,即接收的数据报文存在误码的情况下,接收端可以对接收的数据报文进行纠错。
170.在s821,接收端根据每个数据报文的crc码,对数据报文进行crc校验。
171.当对数据报文的crc校验成功(例如,数据报文的crc校验结果与接收的crc码相同)时,确定该接收的数据报文正确。当数据报文的crc校验失败(例如,数据报文的crc校验结果与接收的crc码不相同)时,确定该接收的数据报文存在误码。
172.当接收的数据报文均crc校验成功时,确定接收端确定数据报文s1*、数据报文s2*、数据报文s3*即为数据报文s1、数据报文s2、数据报文s3。
173.当存在至少一个数据报文的存在误码时,保存对存在误码的数据报文进行crc的校验结果,并进行s822或s823。
174.在s822,根据纠错报文中的crc码对纠错报文进行crc校验。纠错报文c1*的crc校验结果为crc(c1*)。
175.如果校验结果crc(c1*)与接收的校验码crc(c1)不相同,即纠错报文c1存在误码,则纠错失败。
176.如果纠错报文的校验结果正确,即crc(c1*)与crc(c1)相同,确定c1*即为c1,并进行s823。
177.s822为可选步骤。在一些实施例中,在s821之后,可以进行s823。
178.一般情况下,当报文存在误码时,传输错误的比特位在报文中所占的比例很低。通过进行s823,可以将纠错报文c1*中的传输错误引入数据报文s2的报文副本s2**中。之后,进行s824,对接收的数据报文进行纠错和修复。
179.也就是说,本技术实施例提供的数据报文纠错方法,即使在接收的纠错报文存在误码的情况下也能够适用,提高了对数据报文纠错的适用广泛性。
180.数据报文s1*的crc校验结果为crc(s1*),数据报文s2*的crc校验结果为crc(s2*),数据报文s3*的crc校验结果为crc(s3*)。crc()表示crc运算符。
181.在s823,对于每个存在误码的接收数据报文,对纠错报文c1、接收的其他数据报文进行按位异或,以得到该数据报文的副本报文。
182.在仅有一个数据报文存在误码时,如果纠错报文的crc校验结果正确,可以将该副本作为修正后的数据报文。
183.在存在至少两个数据报文存在误码,或者,在仅有一个数据报文存在误码但纠错报文crc校验失败的情况下,可以进行s824。
184.或者,也可以不进行存在误码的数据报文数量的判断,在接收的多个数据报文中有存在误码的数据报文时,均进行s824。
185.在s824,对于每个存在误码的数据报文,可以根据接收的其他数据报文、接收的纠错报文,以及接收的该数据的crc码进行纠错。
186.以接收的数据报文s2*存在误码,接收端对s2*进行纠错为例进行说明。
187.接收端接收的数据报文为s2*,可以理解为发送端发送的数据报文s2的一个副本
报文。
188.在s823,对接收的数据报文s1*、s3*、纠错报文c1进行按位异或,得到数据报文s2的另一个报文副本s2**。报文副本s2**可以表示为:
189.在进行s824的过程中,具体可以进行s8241至s8246。
190.在s8241,对报文副本s2**与报文副本s2*进行按位异或运算,以得到待定比特序列m,如图9所示。待定比特序列m可以表示为:因此,报文副本s2**与s2*中值不相同的比特位在待定比特序列m中值为“1”,报文副本s2**与s2*中值相同的比特位在待定比特序列m中值为“0”。也就是说,在待定比特序列m中,值为“1”的比特位为数据报文s2的待定比特位。数据报文s2的待定比特位可能存在错误,值待定。
191.在s8242,判断待定比特序列m中值为“1”的比特位的数量n是否超过crc码的长度。
192.如果待定比特序列m中值为“1”的位(bit,比特)的数量n不超过crc码长度,则接收端能够对接收的数据报文s2*中的数据进行纠错。
193.当待定比特序列m中值为“1”的位的数量n小于或等于crc码长度时,进行s8243。否则,纠错失败。
194.纠错报文是对接收的多个数据报文进行按位异或得到的。在数据传输的误码率较低的情况下,数据传输错误导致误码的概率很低。可以认为在数据报文s1*、s2*、s3*中进行按位异或以得到纠错报文中的一个比特的数据不会同时发生误码。也就是说,认为用于进行按位异或以得到纠错报文中一个比特的多个比特中至多存在一个比特传输错误,该多个比特中的每个比特位于数据报文s1*、s2*、s3*中的一个数据报文中。
195.在s8243,根据待定比特序列m,设置n个基向量e1至en,n为待定比特序列m中“1”的个数。每个基向量与m长度相等,均为p维基向量,p为数据报文s2的长度,p为正整数,n小于或等于p。在ei中,仅有一个值为“1”的位,该位是m中第i个值为“1”的比特位,i为正整数且i小于或等于n。
196.假设错误向量其中,k1至kn均为待定系数,待定系数的值为0或1。错误向量n中,值为“1”的比特位,即待定系数为“1”的基向量中“1”所在的比特位,用于表示一个报文副本中存在误码的比特位。
197.下面,以错误向量n表示报文副本s2*中存在误码的比特位为例进行说明。
198.在s8244,对错误向量n进行crc校验,以得到校验表达式crc(n)。校验表达式crc(n)中的未知量为k1至kn。
199.在s8245,将接收的数据报文s2*的crc校验结果crc(s2*)与接收的crc校验码crc(s2)按位异或,令校验表达式crc(n)与该按位异或的结果相等,求解以得到k1至kn的值。
200.由于错误向量n表示接收的数据报文s2*中错误的比特位,则数据报文s2可以表示为对错误副本s2*和错误向量n的按位异或计算结果,即
[0201][0202]
对等式两边分别进行crc校验,则,
[0203][0204]
因此,
[0205]
[0206]
因为所以,
[0207][0208]
即,
[0209][0210]
上述等式也可以表示为
[0211][0212]
其中,crc(e1)至crc(en)可以计算得到。
[0213]
上述表达式中,仅k1至kn为未知量,其他均为已知量,当n小于或等于crc码长度时,可以求解得到k1至kn,从而得到错误向量n。
[0214]
也就是说,通过s8241至s8245,确定了报文副本中存在误码的比特位。
[0215]
在s8246,对错误向量n和接收的数据报文s2*进行按位异或,从而得到错误副本s2*纠错后的结果。
[0216]
应当理解,错误向量n还可以用于表示错误副本s2**中错误的比特位,则数据报文s2可以表示为对错误副本s2**和错误向量n的按位异或计算结果:
[0217][0218]
类似地,可以得到错误向量n。
[0219]
对错误向量n和错误副本s2**进行按位异或,从而可以得到错误副本s2*纠错后的结果。
[0220]
经过s8241至步骤s8246,接收端可以在接收的数据报文存在误码时,对数据报文进行纠错。
[0221]
应当理解,数据报文s1、s2、s3的长度可以相等或不相等。数据报文s1、s2、s3和纠错报文c1可以称为一个编码组。
[0222]
如图10所示,数据报文s1、s2、s3的长度可以相等,可以均包括p位,即bit 0至bit p-1。纠错报文c1也可以包括p位。
[0223]
发送端可以分别对数据报文s1、s2、s3以及纠错报文c1进行crc校验,得到每个数据报文对应的crc码以及纠错报文c1对应的crc码。
[0224]
发送端对每个报文以及该报文对应的crc码进行封装,并将封装后的报文发送至接收端。
[0225]
如图11所示,数据报文s1、s2、s3的长度可以不相等。数据报文s1的长度为p1,数据报文s2的长度为p2,数据报文s3的长度为p3。
[0226]
发送端对数据报文s1、s2、s3分别进行crc校验,得到每个数据报文对应的crc码。
[0227]
对于数据报文s1、s2、s3的长度不相等的情况,发送端在进行奇偶校验以生成纠错报文c1时,可以在较短的数据报文之后添加预设比特序列,进行奇偶校验。例如,在较短的数据报文之后补“0”,进行按位奇偶校验,从而生成纠错报文c1。因此,纠错报文的长度可以与数据报文s1、s2、s3中长度最大的数据报文的长度相等。
[0228]
发送端可以将数据报文的crc码添加在数据报文之前或之后。
[0229]
在一些实施例中,纠错报文中还可以不包括对数据报文s1、s2、s3的crc码的校验结果。也就是说,发送端可以对每个数据报文以及该数据报文对应的crc码进行封装,将crc码添加在数据报文之后,以形成封装后的数据报文。发送端可以对封装后的数据报文进行奇偶校验,以得到纠错报文。发送端可以对纠错报文进行crc校验以得到纠错报文的crc码,将纠错报文的crc码添加在纠错报文之后,以形成封装后的纠错报文。
[0230]
发送端可以将封装后的数据报文和封装后的纠错报文发送至接收端。
[0231]
图12是本技术实施例提供的一种数据报文纠错方法的示意性流程图。
[0232]
发送端进行s1211至s1213。
[0233]
在s1211,发送端采用两种不同的方式对数据报文s1、s2、s3进行纠错编码,以得到数据报文s1、s2、s3对应的纠错报文c1和纠错报文c2。纠错报文c1对应于一种纠错编码方式,纠错报文c2对应于另一种纠错编码方式。每个纠错报文可以用于对数据报文s1、s2、s3进行纠错。例如,可以对数据报文s1、s2、s3进行rs编码以得到纠错报文c1,对数据报文s1、s2、s3进行bch编码以得到纠错报文c2。
[0234]
在s1212,发送端对数据报文s1、s2、s3和纠错报文c1、c2分别进行crc校验,以得到每个报文的crc码。
[0235]
发送端可以对每个报文以及该报文对应的crc码进行封装。可以将crc码封装在报文的头部或尾部。
[0236]
数据报文s1的crc码可以表示为crc(s1),数据报文s2的crc码可以表示为crc(s2),数据报文s3的crc码可以表示为crc(s3),纠错报文c1的crc码可以表示为crc(c1),纠错报文c2的crc码可以表示为crc(c2)。
[0237]
在s1213,发送端向接收端发送数据报文、纠错报文以及每个报文的crc码。
[0238]
例如,发送端可以发送封装后的报文。
[0239]
接收端接收数据报文、纠错报文以及每个报文的crc码。
[0240]
之后,接收端可以进行s1221至s1224。
[0241]
接收端接收数据报文s1*、数据报文s2*、数据报文s3*、纠错报文c1*和纠错报文c2*。上述报文分别对应于数据报文s1、数据报文s2、数据报文s3、纠错报文c1、纠错报文c2。
[0242]
在s1221,接收端根据每个数据报文的crc码,对每个数据报文进行crc校验。
[0243]
如果数据报文的crc校验结果与接收的该数据报文的crc码相同,则确定该接收的数据报文正确。反之,如果数据报文的crc校验结果与接收的该数据报文的crc码不相同时,则确定该接收的数据报文存在误码。
[0244]
当接收的数据报文均正确时,确定接收端确定数据报文s1*、数据报文s2*、数据报文s3*即为数据报文s1、数据报文s2、数据报文s3。
[0245]
当存在至少一个数据报文的存在误码时,或者说,当存在至少一个数据报文crc校验失败时,进行s1222或进行s1223。
[0246]
在s1222,根据纠错报文中的crc码对纠错报文进行crc校验。纠错报文c1*的crc校验结果为crc(c1*),纠错报文c2*的crc校验结果为crc(c2*)。
[0247]
如果纠错报文c1*与c2*的校验结果均与接收的对应纠错报文的crc校验码不相同,且,即纠错报文均存在误码,则纠错失败。
[0248]
如果纠错报文c1*与c2*的校验结果仅一个与接收的对应纠错报文的crc校验码不相同,另一个与接收的对应纠错报文的crc校验码相同,则根据相同的校验结果对应的纠错报文对接收的数据报文进行纠错解码,以对接收的数据报文进行纠错。
[0249]
如果纠错报文c1*与c2*的校验结果均与接收的对应纠错报文的crc校验码相同,即纠错报文的校验结果均正确,则认为接收的纠错报文c1*与c2*与纠错报文c1与c2相同,进行s1223。
[0250]
通过s1222,可以提高纠错解码的准确性。
[0251]
s1222为可选步骤,也可以不进行s1222,在s1221之后,进行s1223。
[0252]
一般情况下,当报文存在误码时,传输错误的比特位在报文中的比例很低。通过s1223,可以降低纠错报文中的误码对纠错正确率的影响。
[0253]
不进行s1222,在纠错报文存在误码的情况下,也能够对数据报文进行纠错解码,从而对数据报文进行纠错,提高本技术实施例提供的数据报文纠错方法的适用广泛性。
[0254]
在s1223,根据纠错报文c1*与c2*,分别对数据报文进行纠错解码,以得到存在误码的数据报文的两个报文副本。
[0255]
以接收的数据报文s2*存在误码为例进行说明。将s2*作为s2的一个报文副本。
[0256]
根据纠错报文c1*进行纠错解码,以得到数据报文s2的报文副本s2**。根据纠错编解码方式的不同,报文副本s2**可以表示为s2**=dcd(s1*,s3*,c1)或s2**=dcd(s1*,s2*,s3*,c1)。其中,dcd()表示纠错解码运算。
[0257]
根据纠错报文c2进行纠错解码,以得到数据报文s2的报文副本s2***,s2***=dcd(s1*,s3*,c2)或s2***=dcd(s1*,s2*,s3*,c2)。
[0258]
在s1224,根据报文副本s2*、s2**、s2***在待定比特位的值中每个值的数量,确定待定比特位的值。其中,待定比特为多个报文副本中值不相同的位。
[0259]
如图13所示,对s2的三个副本s2*、s2**、s2***进行逐位比较,三个报文副本中值不相同的比特位为待定比特位,将数量满足预设条件的值作为待定比特位的值。从而,可以得到数据报文s2的修正结果。
[0260]
三个报文副本在待定比特位的值包括“0”和“1”。根据“投票”方式,即根据“0”和/或“1”的数量,确定待定比特位的数值。
[0261]
预设条件可以是“0”和“1”中数量较多的值,“0”和“1”中也可以是满足预设数量的值。
[0262]
图14是本技术实施例提供的一种数据报文纠错方法的示意性流程图。
[0263]
在s1410,接收至少一个数据报文、纠错报文。
[0264]
在s1420,根据所述纠错报文和所述纠错报文对应的数据报文,确定所述至少一个数据报文中的第一数据报文的多个报文副本。所述多个报文副本包括第一报文副本,所述第一报文副本是根据所述纠错报文进行纠错解码得到的。
[0265]
所述多个报文副本可以包括一个或多个第一报文副本。
[0266]
该多个报文副本还可以包括通过校验解码得到的报文副本。
[0267]
通过校验或纠错解码确定报文副本的过程具体可以参见对图6中s620的说明。
[0268]
在s1430,确定所述第一数据报文中待定比特位的值,以得到纠错后的第一数据报文,所述待定比特位为报文集合的多个报文中值不相同的比特位,所述报文集合包括所述
多个报文副本。
[0269]
数据报文纠错方法还可以包括接收校验码的步骤。校验码用于检测第一数据报文是否存在误码。
[0270]
可以在第一数据报文存在误码时,进行s1420至s1430,从而减小计算量。
[0271]
由于纠错解码大多采用似然解码的方式,不能够确保得到的第一报文副本完全正确。通过s1410至步骤s1420,获取多个报文副本,并确定多个报文副本中值不相同的待定比特位的数值,可以提高数据报文纠错的准确性。
[0272]
在一些实施例中,可以根据接收的校验码,确定所述第一数据报文中待定比特位的值。具体地,可以参见图6和图8的说明。
[0273]
在另一些实施例中,可以根据报文集合中每个报文在所述待定比特位的值中每个值的数量,确定所述第一数据报文中所述待定比特位的值。所述报文集合包括所述多个报文副本。具体地,可以参见图12的说明。
[0274]
所述报文集合还可以包括所述第一数据报文。一般情况下,接收的数据报文中存在错误的比特位所占的比例很低,大多比特位的值都能够正确传输。因此,可以将接收的第一数据报文也可以作为确定待定比特位的值的依据,从而能够提高数据报文纠错的准确性,减小冗余信息的比例,提高传输效率。
[0275]
图15是本技术实施例提供的一种rs码字的构成方式示意图。
[0276]
以发送端采用rs(544,514)为纠错编码方式进行计算以确定纠错单元,接收端以rs(544,514)为纠错解码方式对数据报文进行纠错为例进行说明。
[0277]
发送端可以根据预设的方式,在数据报文s1中每次取q1比特,在数据报文s2中每次取q2比特,数据报文s3中每次取q3比特,进行rs编码,每次rs编码形成30个符号长的冗余信息承载在纠错报文c1中。每个符号长度为10比特,也就是说,一个符号长为10比特。
[0278]
数据报文s1、s2、s3的长度可以相等或不相等。当数据报文s1、s2、s3的长度不相等,或者比特数不满足rs编码的要求时,发送端可以在数据报文之后添加预设比特序列,例如填充“0”,进行rs编码以生成纠错报文c1。
[0279]
如图15所示,发送端在生成纠错报文时,数据报文s2的长度较短,数据报文s2中,不存在对应于rs码字的数据;数据报文s3对应于rs码字k的数据比特数量较少,少于q3。发送端可以在数据报文s2和数据报文s3之后补充“0”,从而生成纠错报文中rs码字k中的冗余信息。
[0280]
接收端根据接收数据报文s1*、s2*、s3*和纠错报文c1*。报文s1*、s2*、s3*、c1*分别对应于报文s1、s2、s3、c1。
[0281]
接收端每次在数据报文s1*中每次取q1比特,在数据报文s2*中每次取q2比特,数据报文s3*中每次取q3比特,在纠错报文c1*中取300比特,以构成rs码字。对rs码字进行rs解码,以对q1、q2、q3比特对应的数据进行纠错。
[0282]
如果数据报文s1*、s2*、s3*的长度不相等,或者剩余的比特数不满足rs解码的要求,在数据报文之后填充“0”,以形成rs码字,进行rs解码。
[0283]
rs码字的格式可以参见图16的说明。
[0284]
图16是一种rs码字的格式示意图。
[0285]
对于rs(544,514)编解码方式,每个rs码字包括514个符号长的数据和30个符号长
的冗余信息。
[0286]
发送端对每514个符号长度的数据进行rs(544,514)编码计算,生成30个符号长的冗余信息,以形成rs码字。接收端接收rs码字,对其中的514个符号的数据和30个符号长的冗余信息,进行rs(544,514)解码计算,从而对514个符号的数据进行纠错。
[0287]
通过rs(544,514)方式形成的rs码字,最多可以对514个符号的数据中的15个符号的错误进行纠正。
[0288]
发送端可以根据预设的方式,在数据报文s1中取q1比特,在数据报文s2中取q2比特,数据报文s3中取q3比特,进行rs编码以形成30个符号长的冗余信息。q1、q2、q3之和不超过5140比特。当q1、q2、q3之和小于5140比特时,为了进行rs编码,可以根据q1、q2、q3中的信息和5140-(q1 q2 q3)比特的填充信息进行rs编码。填充信息可以是预设的,或者,发送端可以与接收端进行通信以确定填充信息。例如,填充信息可以均为“0”。q1、q2、q3、冗余信息和填充信息,构成一个rs码字。冗余信息可以承载在纠错报文中。
[0289]
接收端可以对一个rs码字进行rs解码。
[0290]
接收端可以根据预设的方式,在接收的数据报文s1*中取q1比特,在数据报文s2*中取q2比特,数据报文s3*中取q3比特,并在纠错报文中取300比特作为冗余信息。根据s1*中q1个比特的信息、s2*中q2个比特的信息、s3*中q3中个比特的信息、纠错报文中300比特的冗余信息,接收端可以确定rs码字。在q1、q2、q3之和小于5140比特时,rs码字中可以包括填充信息。填充信息是预设的,或者,发送端可以与接收端进行通信以确定填充信息。
[0291]
图17是本技术实施例提供的一种通信设备的示意性结构图。
[0292]
该通信装置通过wi-fi网络与其他通信设备进行信息交互。
[0293]
phy层接收完成标准的接收解码,形成封装后的报文上送给mac层。
[0294]
mac层对封装后的报文进行解封装,确定解封装后的报文以及该报文对应的crc码。解封装后的报文包括数据报文和纠错报文。mac层中的crc校验模块根据crc码对数据报文进行crc校验。
[0295]
如果数据报文crc校验成功,则进行后续处理,并将数据报文传输至高层(upper layer)。
[0296]
如果数据报文crc校验失败,确定该数据报文为第一数据报文,将第一数据报文对应的纠错报文,以及该纠错报文对应的其他数据报文传输至数据报文纠错子层。
[0297]
第一数据报文对应的纠错报文,用于对第一数据报文进行纠错。
[0298]
纠错报文对应的数据报文,是纠错报文进行校验或纠错解码以得到第一数据报文的报文副本所需的数据报文。
[0299]
第一数据报文对应的纠错报文可以是一个或多个。可以根据该数据报文对应的纠错报文的数量c确定对该数据报文进行纠错的方式。其中,c为正整数。
[0300]
当该数据报文对应的纠错报文的数量c等于1时,可以利用基于crc的纠错模块进行数据报文纠错。
[0301]
当该数据报文对应的纠错报文的数量c大于或等于2时,可以利用基于crc的纠错模块进行数据报文纠错。
[0302]
数据报文纠错子层对同一编码组的报文进行缓存。同一编码组的报文包括第一数据报文、纠错报文和该纠错报文对应的数据报文。在一些实施例中,该纠错报文对应的数据
报文包括第一数据报文。
[0303]
基于crc的纠错模块可以用于执行图6所示的方法。
[0304]
基于投票的纠错模块,可以用于执行图14所示的方法。
[0305]
基于crc的纠错模块或基于投票的纠错模块将纠错后的第一数据报文输入crc校验模块。如果纠错后的第一数据报文crc校验结果正确,确定纠错成功,进行后续处理,将纠错后的第一数据报文传输至高层。如果纠错后的第一数据报文crc校验结果错误,确定纠错失败,将第一数据报文丢弃。
[0306]
数据报文纠错子层可以属于mac层或其他层,例如,可以称为后fec(post-fec)子层。数据报文纠错子层对所接收的存在误码的数据报文进行纠错,避免依赖高开销的整报文重传。只有当无法纠正所有错误时才丢弃报文,启动重传。
[0307]
数据报文纠错子层中的可以采用软件或硬件实现,例如可以采用比较器与矩阵求逆电路等,也可以采用软件开发工具包(software development kit,sdk)中的fec对应的函数。
[0308]
通过在mac层综合应用校验和/或纠错解码,以及crc技术,增强系统整体的纠错能力,显著降低重传出现的次数。
[0309]
通常情况下,mac层或phy层包括fec子层,用于对报文进行纠错。在纠错模块采用fec解码的方式确定存在误码的数据报文的报文副本的情况下,可有效降低fec子层的fec编码冗余度,减少实际所需发送的物理层符号数,降低无线网络带宽消耗,降低收发器的功耗。
[0310]
本技术实施例提供的数据报文纠错方法,通过计算同一数据报文的多个不同报文副本(包括一个接收到的报文副本,及一个或多个通过其它编码组内报文解码计算所得的报文副本),确定数据报文内错误可能所在的位置及个数。错误可能所在的位置为数据报文的待定比特位。数据报文的多个报文副本在待定比特位的值不一致。
[0311]
当待定比特位的数量不超过crc位宽(例如,crc-32对应32位宽),可以利用循环冗余校验的线性编码特性,对数据报文进行纠错。
[0312]
当数据报文对应多种编码方式得到的纠错信息时,可以根据数据报文的多个报文副本在待定比特位的值的数量,确定数据报文在待定比特位的值。
[0313]
相比于原wi-fi arq机制,避免了多数报文因少量错误位而引发的大量重传,降低了网络开销及传输延迟。
[0314]
相比于原物理层fec机制,避免了为了获更强纠错能力而引入的高编码冗余开销。
[0315]
相比于原mac层fec机制,避免了mac层fec纠错与crc检错的简单叠加导致的纠错能力受限。
[0316]
在低冗余度(c=1)的情况下,本技术实施例提供的方法可额外恢复一个或多个数据报文,纠错能力提升
[0317]
在高冗余度(c≥2)的情况下,本技术实施例提供的方法理论上可恢复所有数据报文。
[0318]
本技术实施例是构建在mac层fec与crc之上的增强纠错方案,通过在mac增加一个功能子层,显著增强在wi-fi网络l2层纠错的能力。新增子层与原有l2各自层及功能块间接口简单通路清晰易于实现,对有高可靠、低延迟需求的场景支持更好。
[0319]
图18是本技术实施例提供的一种数据报文纠错装置的示意性结构图。
[0320]
数据报文纠错装置2000包括接收单元2010和处理单元2020。
[0321]
在一些实施例中,接收单元2010用于,接收至少一个数据报文、纠错报文,以及校验码,所述校验码用于检测所述至少一个数据报文中的第一数据报文是否存在误码。
[0322]
处理单元2020用于,根据所述纠错报文和所述纠错报文对应的所述数据报文,确定所述第一数据报文的报文副本。
[0323]
处理单元2020还用于,根据所述校验码,确定所述第一数据报文中待定比特位的值,以得到纠错后的第一数据报文,所述待定比特位为所述第一数据报文和所述报文副本中值不相同的比特位。
[0324]
可选地,处理单元2020还用于,对基向量进行crc校验,以得到所述基向量的第一校验结果,所述基向量与所述待定比特位在所述第一数据报文中所处的位置一一对应,在所述基向量中,所述待定比特位的值与其他比特位的值相反。
[0325]
处理单元2020还用于,对所述第一数据报文或所述副本报文进行crc校验,以得到第二校验结果。
[0326]
处理单元2020还用于,对所述校验码与所述第二校验结果进行按位异或,以得到第三校验结果。
[0327]
处理单元2020还用于,确定所述基向量对应的系数,使得每个所述基向量的第一检验结果与所述基向量对应的系数的乘积的按位异或计算结果与所述第三校验结果相等,所述基向量对应的系数为0或1。
[0328]
处理单元2020还用于,根据所述基向量对应的系数,确定所述第一数据报文中所述待定比特位的值。
[0329]
可选地,所述待定比特位的数量小于或等于所述校验码的位数。
[0330]
可选地,处理单元2020还用于,根据所述纠错报文和所述纠错报文对应的所述数据报文,进行校验或纠错解码,以获得所述第一数据报文的报文副本。
[0331]
可选地,处理单元2020还用于,当所述第一数据报文存在误码时,根据所述至少一个数据报文和所述纠错报文,确定所述报文副本。
[0332]
在另一些实施例中,接收单元2010用于,接收至少一个数据报文、纠错报文。
[0333]
处理单元2020用于,根据所述纠错报文和所述纠错报文对应的数据报文,确定所述多个数据报文中的第一数据报文的多个报文副本,所述多个报文副本包括第一报文副本,所述第一报文副本是根据所述纠错报文进行纠错解码得到的。
[0334]
处理单元2020还用于,确定所述第一数据报文中待定比特位的值,以得到纠错后的第一数据报文,所述待定比特位为报文集合的多个报文中值不相同的比特位,所述报文集合包括所述多个报文副本。
[0335]
可选地,处理单元2020还用于,根据报文集合中每个报文在所述待定比特位的值中每个值的数量,确定所述第一数据报文中所述待定比特位的值,所述报文集合包括所述多个报文副本。
[0336]
可选地,所述报文集合包括所述第一数据报文。
[0337]
图19是本技术实施例提供的一种数据报文纠错装置的硬件结构示意图。
[0338]
据报文纠错装置3000包括通信接口3010和处理器3020。
[0339]
在一些实施例中,通信接口3010用于,接收至少一个数据报文、纠错报文,以及校验码,所述校验码用于检测所述至少一个数据报文中的第一数据报文是否存在误码。
[0340]
处理器3020用于,根据所述纠错报文和所述纠错报文对应的所述数据报文,确定所述第一数据报文的报文副本。
[0341]
处理器3020还用于,根据所述校验码,确定所述第一数据报文中待定比特位的值,以得到纠错后的第一数据报文,所述待定比特位为所述第一数据报文和所述报文副本中值不相同的比特位。
[0342]
可选地,处理器3020还用于,对基向量进行crc校验,以得到所述基向量的第一校验结果,所述基向量与所述待定比特位在所述第一数据报文中所处的位置一一对应,在所述基向量中,所述待定比特位的值与其他比特位的值相反。
[0343]
处理器3020还用于,对所述第一数据报文或所述副本报文进行crc校验,以得到第二校验结果。
[0344]
处理器3020还用于,对所述校验码与所述第二校验结果进行按位异或,以得到第三校验结果。
[0345]
处理器3020还用于,确定所述基向量对应的系数,使得每个所述基向量的第一检验结果与所述基向量对应的系数的乘积的按位异或计算结果与所述第三校验结果相等,所述基向量对应的系数为0或1。
[0346]
处理器3020还用于,根据所述基向量对应的系数,确定所述第一数据报文中所述待定比特位的值。
[0347]
可选地,所述待定比特位的数量小于或等于所述校验码的位数。
[0348]
可选地,处理器3020还用于,根据所述纠错报文和所述纠错报文对应的所述数据报文,进行校验或纠错解码,以获得所述第一数据报文的报文副本。
[0349]
可选地,处理器3020还用于,当所述第一数据报文存在误码时,根据所述至少一个数据报文和所述纠错报文,确定所述报文副本。
[0350]
在另一些实施例中,通信接口3010用于,接收至少一个数据报文、纠错报文。
[0351]
处理器3020用于,根据所述纠错报文和所述纠错报文对应的数据报文,确定所述多个数据报文中的第一数据报文的多个报文副本,所述多个报文副本包括第一报文副本,所述第一报文副本是根据所述纠错报文进行纠错解码得到的。
[0352]
处理器3020还用于,确定所述第一数据报文中待定比特位的值,以得到纠错后的第一数据报文,所述待定比特位为报文集合的多个报文中值不相同的比特位,所述报文集合包括所述多个报文副本。
[0353]
可选地,处理器3020还用于,根据报文集合中每个报文在所述待定比特位的值中每个值的数量,确定所述第一数据报文中所述待定比特位的值,所述报文集合包括所述多个报文副本。
[0354]
可选地,所述报文集合包括所述第一数据报文。
[0355]
应注意,尽管图19所示的装置3000仅仅示出了处理器、通信接口,但是在具体实现过程中,本领域的技术人员应当理解,3000还包括实现正常运行所必须的其他器件,如用于存储程序指令的存储器等。同时,根据具体需要,本领域的技术人员应当理解,3000还可包括实现其他附加功能的硬件器件。此外,本领域的技术人员应当理解,装置3000也可仅仅包
括实现本技术实施例所必须的器件,而不必包括图19中所示的全部器件。
[0356]
上述各个附图对应的流程的描述各有侧重,某个流程中没有详述的部分,可以参见其他流程的相关描述。
[0357]
本技术实施例还提供一种计算机可读存储介质,其特征在于,所述计算机可读存储介质具有程序指令,当所述程序指令被直接或者间接执行时,使得前文中的方法得以实现。
[0358]
本技术实施例中,还提供了一种包含指令的计算机程序产品,当其在计算设备上运行时,使得计算设备执行前文中的方法,或者使得所述计算设备实现前文中的装置的功能。
[0359]
本技术实施例还提供一种芯片系统,其特征在于,所述芯片系统包括至少一个处理器,当程序指令在所述至少一个处理器中执行时,使得前文中的方法得以实现。
[0360]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元、模块及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0361]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0362]
在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0363]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0364]
以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献