本发明涉及数据编解码方法领域,具体是一种uwb系统中基于分组的数据卷积编解码方法。
背景技术:
:uwb系统中的发射端和接收端基于ieee802.11.4和ieee802.11.4z协议进行payload数据编解码后传输,ieee802.11.4和ieee802.11.4z协议中都采用k=3的卷积编码作为基本的前项纠错码,它们支持最大的payload数据量是4095bytes。uwb系统中发射端的卷积编码端把这些信息比特连同一部分的头信息一起送入接收端的卷积编码端中生成校验比特,并且在卷积解码端一般采用viterbi算法把所有这些信息看成一组数据进行校正检测。这种编解码方法中当payload数据量比较大时,存在解码性能差、错误率高的问题。技术实现要素:本发明的目的是提供一种uwb系统中基于分组的数据卷积编解码方法,以解决现有技术uwb系统的编解码方法在数据量大时存在错误率高的问题。为了达到上述目的,本发明所采用的技术方案为:一种uwb系统中基于分组的数据卷积编解码方法,其特征在于:包括以下步骤:(1)、在卷积编码端,将输入至卷积编码端的总数据均分为多组数据,具体分组规则如下:在卷积编码端设定单组数据的数据量阈值k,并设总数据的数据量为n,均分成的组数为m;若总数据的数据量n为单组数据的数据量阈值k的整数倍,则均分成的组数m=n/k;若总数据的数据量n不为单组数据的数据量阈值k的整数倍,则在总数据中填入数据量为z的填充数据,使填充后的总数据的数据量n z为单组数据的数据量阈值k的整数倍,则均分的组数m=(n z)/k;(2)、对步骤(1)得到的每组数据分别进行单独卷积编码,多组数据卷积编码后得到多组编码数据,将多组编码数据组织为串行编码数据,若没有填入填充数据则将串行编码数据直接输送至卷积解码端;若填入有填充数据则去掉串行编码数据中填充数据对应的编码数据,然后将丢弃填充数据对应编码数据的串行编码数据输送至卷积解码端;(3)、在卷积解码端中,将步骤(2)得到的串行编码数据再次分成m组得到多组编码数据,若没有填入填充数据,则卷积编码端对每组编码数据分别进行单独解码得到多组数据;若填入有填充数据,则卷积编码端再次填入填充数据对应编码数据后,再对每组编码数据分别进行单独解码得到多组数据;(4)、卷积解码端中,将步骤(3)得到多组数据组织为串行数据,若没有填入填充数据则直接输出串行数据;若填入有填充数据则去掉串行数据中的填充数据后,再输出去掉填充数据的串行数据。所述的一种uwb系统中基于分组的数据卷积编解码方法,其特征在于:数据量为z的填充数据由0比特数据构成。所述的一种uwb系统中基于分组的数据卷积编解码方法,其特征在于:所述卷积编码端中按串行顺序,在分组时将填充数据填入至第一组数据的最前端。所述的一种uwb系统中基于分组的数据卷积编解码方法,其特征在于:所述卷积解码端中按串行顺序,在分组时将填充数据对应的编码填入至第一组编码的最前端。所述的一种uwb系统中基于分组的数据卷积编解码方法,其特征在于:所述卷积编码端中,按串行顺序对多组数据依次进行卷积编码。所述的一种uwb系统中基于分组的数据卷积编解码方法,其特征在于:所述卷积解码端中,按串行顺序对多组编码依次进行卷积解码。与现有技术相比,本发明能有效提高uwb系统中payload数据在接收端的解码正确率,进而提高了uwb系统的定位准确性。附图说明图1是本发明方法流程框图。图2是本发明方法原理图。图3是本发明具体实施例中卷积编码端编码示意图。图4是本发明具体实施例中性能比较示意图。具体实施方式下面结合附图和实施例对本发明进一步说明。如图1所示,一种uwb系统中基于分组的数据卷积编解码方法,包括以下步骤:(1)、在卷积编码端,将输入至卷积编码端的总数据均分为多组数据,具体分组规则如下:在卷积编码端设定单组数据的数据量阈值k,并设总数据的数据量为n,均分成的组数为m;若总数据的数据量n为单组数据的数据量阈值k的整数倍,则均分成的组数m=n/k;若总数据的数据量n不为单组数据的数据量阈值k的整数倍,则在总数据中填入数据量为z的填充数据,使填充后的总数据的数据量n z为单组数据的数据量阈值k的整数倍,则均分的组数m=(n z)/k;(2)、对步骤(1)得到的每组数据分别进行单独卷积编码,多组数据卷积编码后得到多组编码数据,将多组编码组织为串行编码数据,若没有填入填充数据则将串行编码数据直接输送至卷积解码端;若填入有填充数据则去掉串行编码数据中填充数据对应的编码数据,然后将丢弃填充数据对应编码数据的串行编码数据输送至卷积解码端;(3)、在卷积解码端中,将步骤(2)得到的串行编码数据再次分成m组得到多组编码数据,若没有填入填充数据,则卷积编码端对每组编码数据分别进行单独解码得到多组数据;若填入有填充数据,则卷积编码端再次填入填充数据对应编码数据后,再对每组编码数据分别进行单独解码得到多组数据;(4)、卷积解码端中,将步骤(3)得到多组数据组织为串行数据,若没有填入填充数据则直接输出串行数据;若填入有填充数据则去掉串行数据中的填充数据后,再输出去掉填充数据的串行数据。本发明中,数据量为z的填充数据由0比特数据构成。由于卷积编码的性质,0比特数据经过编码之后得到的编码数据仍为0,且对编码状态寄存器没有影响,所以这一部分填充数据编码后可以直接丢弃掉,对最后的结果没有影响。同样,在解码端也是在相应的位置填充0比特数据然后进行解码,对最后的结果也没有影响。本发明中,卷积编码端中按串行顺序,在分组时将填充数据填入至第一组数据的最前端。同样卷积解码端中按串行顺序,在分组时将填充数据对应的编码数据填入至第一组编码数据的最前端。本发明卷积编码端中,按串行顺序对多组数据依次进行卷积编码。同样卷积解码端中,按串行顺序对多组编码数据依次进行卷积解码。本发明的基本构思就是在发射端对送入卷积编码端的数据进行分组,每一组的数据大小不过数据量阈值,然后对每一组数据单独进行编码,每组数据编码后的结果再串行输出。接收端的卷积解码端也进行这样的分组操作,对每一组数据单独进行viterbi解码,解码后的数据仍然串行输出给后续模块。实施例:本发明分组说明如下:在卷积编码端,对于从总数据分组后每组数据的大小,如果选择的过大,则分组效果不明显,性能提升有限;如果选择过小,由于每一组数据编码后要加入2个额外的咬尾比特,则对整体的编码效率有影响。表1是选择不同组数据大小情况下分别对应的码率损失。表1中给出了不同组大小选择时对应码率损失,选择256保证损失在1%以下,因此综合考虑本实施例选择32bytes,即每组大小是256bit,当然这个值是可调整的。表1不同组数据大小情况下分别对应的码率损失表每个组的大小(bits)码率损失(%)825326.25643.1251281.56252560.781255120.390625确定好分组大小后,下面介绍先介绍如何在卷积编码端进行分组,假设当前输入至卷积编码端的payload数据即总数据是nbit,每组数据的大小即数据量阈值k=256bit,则分成的组数m为:(1),其中表示向上取整操作,比如n/k=3.1时则m=4。由于输入的总数据大小有可能不是k的整数倍,则此时需要填充到k的整数倍,由于卷积编码端数据输出时采用串行结构,因此填充数据放在串行结构中第一组数据的最前面,即整个数据的最前面,这样的好处是可以人为在头信息和payload数据之间加入一个间隔,简化解码端在有信息和payload数据之间的切换流程。本实施例填充数据由0比特数据构成,需要填入的0比特数据的数量是:z=m*k-n(2),这样输入payload数据就变成b={0,0,0,0,...,0,b0,...,bn-1}共n z个bit。如图2所示,其中bi是总数据信息比特流中的各个信息比特,i=0,1,…n-1,共有n个,这就是要发送的原始信息。发送的n个信息比特,在前面插入z个0信息比特,作为编码前的输入。然后按照下面公式(3)进行分组:(3),对输入至卷积编码端并填入有填充数据后的总数据b={0,0,0,0,...,0,b0,b1,...,bn-1}进行分组如公式(3)所示,如图2所示,用cm表示卷积编码端每一个分组中信息比特的集合,其中c0是第一组,c1是第二组……cm是第m组。bmk是第m组cm中第k个信息比特,比如c0={b01,b02,b03,...b0(k-1)},表示分成的第一组上的所有的比特信息。总共分成m个分组,每一组上有k个信息比特。分组得到的每一组数据在卷积编码端进行卷积编码,如图2所示,输出为:(4),卷积编码端的编码是对每一组单独进行的,每一组之间是无关的。输入第一组c0={b01,b02,...,b0(k-1)}的编码结果即编码数据是d0,同理第二组c1的编码数据是d1,第三组c2的编码数据是d2……,则dm是第m组cm的编码数据,dm,0是编码数据dm中的第一个比特,dm,2是编码数据dm的第二个比特…dm,r-1是编码数据dm的第r个比特,依次类推。编码过程和当前ieee协议中的过程一样。ieee协议的编码结构如图3所示,每一个输入比特会输出两个比特,即图3中的系统比特g0(n)、校验比特g1(n)当第一个分组完全完成编码后,才开始第二个组的编码操作,即依次进行卷积编码。编码后各组的编码数据要串在一起形成串行数据结构后输出至卷积解码端,对每一组卷积编码的输出数据为ej,j=0,...,mr-1,设第m(j)个比特对应dm,n的输入:(5)编码后可能有很多组dm,m=0,...,m-1,设dm,n是第m组dm的第n个信息比特。随后这些组要串联起来变成串行数据e,即e={d0,0,d0,1,d0,2...d0,(r-1),d1,0,d1,1,d1,2...d1,(r-1),d2,0............dm,0,dm,1...dm,(r-1)}={e0,e1,e2,...,e(mr-1)}={ej}。j表示串行数据e的第j个比特信息,公式(5)表示e的第j个信息对应的是第m组dm的第n个比特,那么可以根据j求出m和n。表示向下取整操作,mod(…)是取模值,n的取值范围限定在0,.....,r-1。如图2所示,最后把串行数据e的最前面2z个比特去掉,把剩下的数据依次送给接收端的卷积解码端。接收端的卷积解码端采用和卷积编码端相同的操作,即填入填充数据并分组后对每组分别进行viterbi解码,解码后去掉填充数据再将数据串行输出,如图2所示,其中m表示卷积解码端每一个分组中信息比特的集合,m表示分组得到的每一组在卷积解码端进行卷积解码后的输出,i是解码后去掉填充数据串行输出的数据。采用本发明的方案的总体性能如图4所示。图4中输入1024bytes,图4中实线是没有分组的解码性能曲线,图4中虚线是采用本发明的分组后的解码性能曲线。考虑误码率0.1的位置对应的snr,本发明在码率损失很小的情况下可以提升2db的解码性能。当然,如果可以接受更大的码率损失,选择更小的组大小,则性能提升的更大。本发明所述的实施例仅仅是对本发明的优选实施方式进行的描述,并非对本发明构思和范围进行限定,在不脱离本发明设计思想的前提下,本领域中工程技术人员对本发明的技术方案作出的各种变型和改进,均应落入本发明的保护范围,本发明请求保护的技术内容,已经全部记载在权利要求书中。当前第1页1 2 3 
技术特征:1.一种uwb系统中基于分组的数据卷积编解码方法,其特征在于:包括以下步骤:
(1)、在卷积编码端,将输入至卷积编码端的总数据均分为多组数据,具体分组规则如下:
在卷积编码端设定单组数据的数据量阈值k,并设总数据的数据量为n,均分成的组数为m;
若总数据的数据量n为单组数据的数据量阈值k的整数倍,则均分成的组数m=n/k;
若总数据的数据量n不为单组数据的数据量阈值k的整数倍,则在总数据中填入数据量为z的填充数据,使填充后的总数据的数据量n z为单组数据的数据量阈值k的整数倍,则均分的组数m=(n z)/k;
(2)、对步骤(1)得到的每组数据分别进行单独卷积编码,多组数据卷积编码后得到多组编码数据,将多组编码数据组织为串行编码数据,若没有填入填充数据则将串行编码数据直接输送至卷积解码端;若填入有填充数据则去掉串行编码数据中填充数据对应的编码数据,然后将丢弃填充数据对应编码数据的串行编码数据输送至卷积解码端;
(3)、在卷积解码端中,将步骤(2)得到的串行编码数据再次分成m组得到多组编码数据,若没有填入填充数据,则卷积编码端对每组编码数据分别进行单独解码得到多组数据;若填入有填充数据,则卷积编码端再次填入填充数据对应编码数据后,再对每组编码数据分别进行单独解码得到多组数据;
(4)、卷积解码端中,将步骤(3)得到多组数据组织为串行数据,若没有填入填充数据则直接输出串行数据;若填入有填充数据则去掉串行数据中的填充数据后,再输出去掉填充数据的串行数据。
2.根据权利要求1所述的一种uwb系统中基于分组的数据卷积编解码方法,其特征在于:数据量为z的填充数据由0比特数据构成。
3.根据权利要求1所述的一种uwb系统中基于分组的数据卷积编解码方法,其特征在于:所述卷积编码端中按串行顺序,在分组时将填充数据填入至第一组数据的最前端。
4.根据权利要求1所述的一种uwb系统中基于分组的数据卷积编解码方法,其特征在于:所述卷积解码端中按串行顺序,在分组时将填充数据对应的编码填入至第一组编码的最前端。
5.根据权利要求1所述的一种uwb系统中基于分组的数据卷积编解码方法,其特征在于:所述卷积编码端中,按串行顺序对多组数据依次进行卷积编码。
6.根据权利要求1所述的一种uwb系统中基于分组的数据卷积编解码方法,其特征在于:所述卷积解码端中,按串行顺序对多组编码依次进行卷积解码。
技术总结本发明公开了一种UWB系统中基于分组的数据卷积编解码方法首先在卷积编码端将总数据均分为多组数据,然后对每组数据分别进行单独卷积编码后串行输送至卷积解码端;在卷积解码端中,将串行编码再次分组后单独解码得到多组数据;最后由卷积解码端输出串行数据。本发明能有效提高UWB系统中Payload数据在接收端的解码正确率。
技术研发人员:吴极;陈文晓;董宗宇
受保护的技术使用者:杭州优智联科技有限公司
技术研发日:2020.04.26
技术公布日:2020.06.05