一种同时具有纠错与加密功能的串口数据发送方法与流程

文档序号:14748521发布日期:2018-06-22 08:50阅读:286来源:国知局

本发明涉及一种既具有纠错功能又具有加密功能的串口数据发送方法,属于通信技术领域。



背景技术:

基于RS232、RS485以及RS422接口标准的串行数据传输方式,具有传输线路简单、成本低廉等优点,在许多测量仪器及其它低速数据传输的场合有着广泛的应用。由于RS232、RS485以及RS422接口对于每个发送字节只施加了奇偶校验,因此只有当每个字节发生奇数个比特错误时,才能检测出误码,而且无法进行误码的定位与纠错。在其它一些数据传输方式中,也存在类似问题,只有奇偶校验,无法保证数据的可靠传输。

Polar码(极化码)是一种性能优秀的纠错编码之一。一定长度的输入比特,通过特定的编码结构产生信道合并与信道分裂,使得每一个输入比特对应一个分裂信道,Polar码的编码结构使得分裂信道具有极化特性,即有些信道容量低,有些信道容量高。信道容量高的传输用户数据信息(本发明称为信息比特),也称为自由变量(free variable)或信源,信道容量低的传输冻结比特(frozen bits),为了编解码方便,冻结比特一般固定设为0。

在某些应用场合,数据的传输需要加密,加密后的数据即使在传输过程中被窃听也不会发生信息泄露。然而现有的串口数据发送方法功能都比较单一,不能同时保证数据传输的可靠性与安全性,无法满足某些应用场合的使用要求。



技术实现要素:

本发明的目的在于针对现有技术之弊端,提供一种同时具有纠错与加密功能的串口数据发送方法,以确保数据传输的可靠性与安全性。

本发明所述问题是以下述技术方案实现的:

一种同时具有纠错与加密功能的串口数据发送方法,所述方法将待传输数据构造成一个行数为待传输字节数、列数为8的二进制待传输数据块,将待传输数据块的每一列比特作为信息比特,再将每列信息比特与设置的冻结比特按照二进制Polar码规则进行编码,得到8个Polar码编码码组,最后经过对Polar码编码码组进行凿孔和扰乱排列顺序后,通过信道发送出去。

上述同时具有纠错与加密功能的串口数据发送方法,所述方法包括以下步骤:

a.构造待传输数据块

设待传输数据的字节数为m,将待传输的m个字节构造成一个m行8列的二进制待传输数据块,每一行为1个待传输字节,每个字节8个比特,用aij表示数据块第i行第j列的比特,i=1、2、…m,j=1、2、…8,{ai1ai2…ai8}为第i个待传输字节;

b.确定Polar码编码的冻结比特个数及编码长度

设Polar码编码长度为N,按照二进制Polar码的编码规则,N为2的正整数次幂,单个Polar码信息比特数为m,设冻结比特个数为d,则N=m+d=2n,n为正整数;

c.确定Polar码输入码组的信息比特和冻结比特的位置

将串行信道等效为二进制删除信道,按照N位码长Polar码的信道极化方法,将串行信道合并为一个N入N出的矢量信道,再将该矢量信道分裂成N个信道,计算该N个分裂信道的巴氏参数(Bhattacharyya parameter):Zk(k=1,2,…,N),或计算该N个分裂信道的对称容量(symmetric capacity):Ik(k=1,2,…,N),将上述N个巴氏参数Zk(k=1,2,…,N)从高到低排序,或将N个对称容量Ik(k=1,2,…,N)从低到高排序,排在前面的d个信道传输冻结比特,其余m个信道传输信息比特,与N个分裂信道相对应,N位Polar码输入码组的相应位置分别设置为冻结比特与信息比特的位置;

d.构造Polar码的输入码组并进行Polar码编码

取出待传输数据块第1列的m个比特,将其作为信息比特,再设置d个比特作为冻结比特,将信息比特和冻结比特分别填入到步骤c所确定的信息比特和冻结比特的位置,得到第1个Polar码的输入码组;

根据Polar码的编码规则对第1个Polar码的输入码组进行编码,得到第1个Polar码的编码码组{x11x21…xN1},xi1为该编码码组的第i个比特,i=1、2、…N;

依次取出待传输数据块第2、3、4、…8列的m个比特,按照第1列的m个比特的处理方法分别构造Polar码的输入码组并进行Polar码编码,得到第2、3、4、…8个Polar码编码码组{x1j x2j…xNj},xij为第j个编码码组的第i个比特i=1、2、…N,j=3、4、…8;

e.凿孔

对得到的每一个Polar码编码码组,删除其任意p个比特,p小于冻结比特个数,删除比特的位置为收发双方所约定;

f.扰乱排列顺序

对于每一个凿孔后的Polar码编码码组,按收发双方的约定扰乱其排列顺序;

g.构造输出数据块并发送

将每个凿孔并扰乱顺序的Polar码编码码组作为一列,8个Polar码编码码组构造成一个N-p行8列输出数据块,将输出数据块的每一行作为一个字节发送到信道上,发送过程完毕。

上述同时具有纠错与加密功能的串口数据发送方法,所述Polar码的输入码组中,冻结比特按收发双方的约定任意设定。

本发明将Polar码应用于数据传输中并对Polar码编码码组任意凿孔和扰乱排列顺序,不仅具有很好的纠错性能,而且由于窃听者无法获得Polar码编码码组中冻结比特的位置及内容、凿孔位置和排列顺序,因此还具有良好的加密性能,从而确保了数据传输的可靠性与安全性。

附图说明

图1是本发明给出的实施例中待传输数据块的结构;

图2是本发明给出的实施例所构造的第1个Polar码输入码组;

图3是实施例中获得的第1个Polar码编码码组;

图4是实施例中构造的第2个Polar码输入码组;

图5是实施例中获得的第2个Polar码编码码组;

图6是实施例对8个Polar码编码码组的凿孔(阴影部分为删除的比特);

图7是实施例中构造的输出数据块(对每个Polar码编码码组扰乱顺序)。

文中所用符号如下:m为待传输数据的字节数,aij表示待传输数据块第i行第j列的比特,{ai1ai2…ai8}为第i个待传输字节,N为Polar码编码长度,d为冻结比特个数,Zk为分裂信道的巴氏参数,Ik为分裂信道的对称容量,xij为第j个编码码组的第i个比特,p为每一个Polar码编码码组删除比特的个数。

具体实施方式

下面结合附图对本发明作进一步说明。

本发明提供了一种结合Polar码的数据发送方法,该方法将Polar码应用于数据传输中,编码过程中对冻结比特进行任意设置,当接收端解码的时候,需要冻结比特参与进行解码,由于窃听者不知道冻结比特的位置、数量和内容,再结合对编码码组凿孔和扰乱排列顺序等措施,使得窃听者无法进行有效解码,既可解决串行通信的误码纠错问题,又具有一定的加密功能。本发明很好地解决了串行数据传输方式中的误码纠错问题以及数据加密问题,提高了数据传输的可靠性和安全性,本方法既可应用于串行数据传输,也可应用其它一些数据传输方式中。

本发明的技术方案如下:

将待传输数据构造成一个行数为待传输字节数、列数为8的二进制待传输数据块,将待传输数据块的每一列比特作为信息比特,再加上冻结比特,按照二进制Polar码规则进行编码,8列待传输数据块共编成8个Polar码编码码组,经过对Polar码编码码组凿孔和扰乱排列顺序后,通过信道发送出去。本发明方法所述的过程如下:

第1步:构造待传输数据块

设待传输数据的字节数为m,将待传输的m个字节构造成一个m行8列的二进制待传输数据块,每一行为1个待传输字节,每个字节8个比特,aij为数据块第i行第j列的比特,i=1、2、…m,j=1、2、…8,{ai1ai2…ai8}为第i个待传输字节。

第2步:确定Polar码编码的冻结比特个数及编码长度

设Polar码编码长度为N,按照二进制Polar码的编码规则,N为2的正整数次幂。待传输数据的字节数为m,则单个Polar码信息比特数为m,设冻结比特个数为d,则N=m+d=2n,n为正整数。例如,若待传输数据为3个字节,即m=3,d可为1或5或13等等,若选择d=1,则N=3+1=4,若选择d=5,则N=3+5=8,依次类推,使得编码长度N为2的正整数次幂。d越大系统误码率越低,但编码效率也越低,d可根据系统误码率和(或)编码效率的要求进行选取。

第3步:确定Polar码输入码组的信息比特和冻结比特的位置

将串行信道等效为二进制删除信道,按照N位码长Polar码的信道极化方法,将串行信道合并为一个N入N出的矢量信道,再将该矢量信道分裂成N个信道(信道合并与信道分裂属于Polar码编码范畴,本发明不做赘述),计算该N个分裂信道的巴氏参数(Bhattacharyya parameter):Zk(k=1,2,…,N),或计算该N个分裂信道的对称容量(symmetric capacity):Ik(k=1,2,…,N)。将上述N个巴氏参数Zk(k=1,2,…,N)从高到低排序,或将N个对称容量Ik(k=1,2,…,N)从低到高排序,排在前面的d个信道传输冻结比特,其余m个信道传输信息比特。与N个分裂信道相对应,N位Polar码输入码组的相应位置分别设置为冻结比特与信息比特的位置。

第4步:构造Polar码的输入码组并进行Polar码编码

取出待传输数据块第1列的m个比特,作为信息比特,再设置d个比特作为冻结比特,d由第3步所确定。将信息比特和冻结比特分别填入到第3步所确定的信息比特和冻结比特的位置,构造第1个Polar码的输入码组。其中冻结比特可按收发双方的约定任意设定。

根据Polar码的编码规则对第1个Polar码的输入码组进行编码,得到第1个Polar码的编码码组{x11x21…xN1},xi1为该编码码组的第i个比特,i=1、2、…N。Polar码的编码方法为本领域众所周知,这里不赘述。

取出待传输数据块第2列的m个比特,作为信息比特,加上d个冻结比特,构成第2个Polar码的输入码组,再根据Polar码的编码规则进行编码,得到第2个Polar码的编码码组{x12x22…xN2},xi2为该编码码组的第i个比特,i=1、2、…N。其中冻结比特可按收发双方的约定任意设定。

按照前面所述相同的过程依次取出待传输数据块的第3、4、…8列,作为信息比特,加上冻结比特,根据Polar码的编码规则进行编码,分别得到第3、4、…8个Polar码编码码组{x1j x2j…xNj},xij为第j个编码码组的第i个比特i=1、2、…N,j=3、4、…8,总共得到8个Polar码编码码组。

第5步:凿孔

对上述得到的每一个Polar码编码码组进行凿孔,即删除上述得到的每一个Polar码编码码组的任意p个比特,每个Polar码编码码组的凿孔个数(即删除的比特数p)要小于冻结个数,各个Polar码编码码组的凿孔个数要保持相同,凿孔位置为收发双方所约定。凿孔后的每一个Polar码编码长度变为N-p。凿孔个数的选取要满足系统误码率和编码效率的要求。

第6步:扰乱排列顺序

对于每一个凿孔后的Polar码编码码组,按收发双方约定的顺序扰乱其排列顺序,8个Polar码编码码组的扰乱顺序可各不相同。

第7步:构造输出数据块并发送

将每个凿孔并扰乱顺序的Polar码编码码组作为一列,8个Polar码编码码组构造成一个N-p行8列输出数据块。输出数据块按行发送,每一行作为一个字节发送到信道上。发送过程完毕。

实施例:

假设有3个字节的待传输数据,将待传输的3个字节数据构成一个3行8列的二进制待传输数据块,将待传输数据块的每一列比特作为信息比特,再加上冻结比特,按照二进制Polar码规则进行编码,8列待传输数据块共编成8个Polar码编码码组,经过对Polar码编码码组凿孔和扰乱排列顺序后,通过信道发送出去。本发明方法所述的过程如下:

第1步:构造待传输数据块

将待传输的3个字节数据构成一个3行8列的二进制待传输数据块,如图1所示,每一行为1个待传输字节,每个字节8个比特,aij为数据块第i行第j列的比特,i=1、2、3,j=1、2、…8,{ai1ai2…ai8}为第i个待传输字节。

第2步:根据待传输数据的字节数,确定冻结比特个数及编码长度。

按照二进制Polar码的编码规则,设Polar码编码长度N,则N为2的正整数次幂。本实施例中待传输数据的字节数为3,设冻结比特个数为d,则Polar码的编码长度为:N=3+d=2n,n为正整数。d可为1或5或13等等,使得编码长度N为2的正整数次幂。d的选取要满足系统误码率或编码效率的要求,本实施例中选择d=5,则编码长度N=3+5=8。

第3步:确定Polar码输入码组的信息比特和冻结比特的位置。

将串行信道等效为二进制删除信道,按照N(本实施例中N=8)位编码长度Polar码的信道极化方法,将串行信道合并为一个8入8出的矢量信道,再将该矢量信道分裂成8个信道,计算该8个分裂信道的巴氏参数(Bhattacharyya parameter):Zk(k=1,2,…,8),将上述N个巴氏参数Zk(k=1,2,…,8)从高到低排序,排在前面的d(本实施例中d=5)个信道传输冻结比特,其余m(本实施例中m=3)个信道传输信息比特。与8个分裂信道相对应,8位Polar码输入码组的相应位置分别设置为冻结比特与信息比特的位置。

例如当信道删除概率等于0.5时,按照Polar码的信道极化方法计算8个分裂信道的巴氏参数可得:Z1=0.9961,Z2=0.8789,Z3=0.8086,Z4=0.3164,Z5=0.6836,Z6=0.1914,Z7=0.1211,Z8=0.0039。由高到低排序可得,Z1>Z2>Z3>Z5>Z4>Z6>Z7>Z8,前5个分裂信道(即信道1、2、3、5、4)传输冻结比特,后3个分裂信道(即信道6、7、8)传输信息比特。与8个分裂信道相对应,8位Polar码输入码组的位置1、2、3、5、4设置为冻结比特的位置,位置6、7、8设置为信息比特的位置。

第4步:构造Polar码的输入码组并进行Polar码编码。

取出待传输数据块第1列的3个比特,作为信息比特,再设置5个比特作为冻结比特,将信息比特和冻结比特分别填入到第3步所确定的信息比特和冻结比特的位置,构造第1个Polar码的输入码组,如图2所示。其中冻结比特可按收发双方的约定任意设定。

根据Polar码的编码规则对第1个Polar码的输入码组进行编码,得到第1个Polar码的编码码组{x11x21…x81},xi1为该编码码组的第i个比特,i=1、2、…8,如图3所示。Polar码的编码方法为本领域众所周知,这里不赘述。

取出待传输数据块第2列的3个比特,作为信息比特,加上5个冻结比特,构成第2个Polar码的输入码组,如图4所示。再根据Polar码的编码规则进行编码,得到第2个Polar码的编码码组{x12x22…x82},xi2为该编码码组的第i个比特,i=1、2、…8,如图5所示。其中冻结比特可按收发双方的约定任意设定。

按照前面所述相同的过程依次取出待传输数据块的第3、4、…8列,作为信息比特,加上冻结比特,根据Polar码的编码规则进行编码,分别得到第3、4、…8个Polar码编码码组{x1j x2j…x8j},xij为第j个编码码组的第i个比特i=1、2、…8,j=3、4、…8,总共得到8个Polar码编码码组。

第5步:凿孔

对于每一个Polar码编码码组进行凿孔,本实施例中随机删除每一个Polar码编码的1个比特,凿孔位置按照收发双方的约定任意设定,凿孔后的Polar码编码长度变为8-1=7,如图6所示,图中阴影部分为删除掉的比特位置。

第6步:扰乱排列顺序

对于每一个凿孔后的Polar码编码码组,按收发双方约定的顺序扰乱其排列顺序,8个Polar码编码码组的扰乱顺序可各不相同。

第7步:构造输出数据块并发送

将每个凿孔并扰乱顺序的Polar码编码码组作为一列,构造成一个7行8列的数据块,如图7所示。每一行为一个字节,将所有字节按一定顺序发送到信道上。发送过程完毕。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1