发明内容
本发明的目的在于克服上述现有技术的缺陷,提出一种基于Turbo译码的网络编码方法,以将信道译码-网络编码直接推广至源节点采用Turbo码的情况,提高网络吞吐量和中继节点的转发效率,改善目的节点的性能。
本发明是这样实现的;
技术方案1,对于源节点采用不同Turbo码的网络编码,包括如下步骤:
(1)采用Turbo码对两个源节点的数据信息d1,d2分别进行编码,得出编码序列x1,x2,并同时发送至中继节点,若两个源节点都采用BPSK调制,中继节点接收的信号为y=(2x1-1)+(2x2-1)+n,n代表信道的加性高斯白噪声;
(2)根据两个源节点采用的Turbo码结构,构造虚拟Turbo编码器的两个联合分量码:
设第1个源节点Turbo码的第一个分量码生成多项式为(g11 (1)(D)/g12 (1)(D)),第2个源节点Turbo码的第一个分量码生成多项式为(g21 (1)(D)/g22 (1)(D)),则第一联合分量码的生成多项式为:
设第1个源节点Turbo码的第二个分量码生成多项式为(g11 (2)(D)/g12 (2)(D)),第2个源节点Turbo码的第二个分量码生成多项式为(g21 (2)(D)/g22 (2)(D)),则第二联合分量码的生成多项式为:
gi1 (j)(D)代表第i个源节点Turbo码中第j个分量码的前向多项式,gi2 (j)(D)代表第i个源节点Turbo码中第j个分量码的反馈多项式;
(3)根据第一联合分量码和第二联合分量码的生成多项式,构造联合分量码的虚拟Trellis图:
(3a)设第1个源节点采用Turbo码中第l个分量码有m1 (l)个移位寄存器,第2个源节点采用的Turbo编码器中第l个分量码有m2 (l)个移位寄存器,则由第l个联合分量码的m1 (l)+m2 (l)个移位寄存器,得出第l个联合分量码有个状态,其中l=1,2;
(3b)从第1个联合分量码中的任一状态Si (l)出发,根据两个输入比特d1 (l)d2 (l)和第1个联合分量码的生成多项式,计算第1个联合分量码编码器的校验比特输出c1 (l)c2 (l)和下一时刻的状态Sj (l),确定出第1个联合分量码的Trellis图中的一个状态转移,即从状态Si (l)转移至状态Sj (l), l=1,2;
(3c)将Si (l)和d1 (l)d2 (l)遍历所有取值,重复过程(4b),确定Trellis图所有的状态转移,得出第1联合分量码的Trellis图;
(3d)保持每一个联合分量码的Trellis图的状态数及状态转移关系不变,将两个输入比特和两个校验比特分别进行和运算,构成联合分量码的虚拟Trellis图;
(4)用第l个联合分量码的虚拟Trellis图代替Turbo码的第l个分量码,并用与源节点交织器结构相同的交织器,构成虚拟Turbo码,l=1,2;
(5)中继节点根据虚拟Turbo码的特点,对接收信号y=(2x
1-1)+(2x
2-1)+n进行最大后验概率译码,得到两个源节点信息相加后的估计序列
(6)中继节点对估计序列
进行模2运算,得出网络编码信息
再对
重新进行Turbo编码,并将编码序列广播至两个源节点;
(7)第1个源节点根据接收的信号进行Turbo译码,并将译码结果与本地信息d
1进行模2运算,得到第2个源节点的估计信息
第2个源节点根据接收的信号进行译码,并将译码结果与本地信息d
2模2运算,得到第1个源节点的估计信息
技术方案2,对于源节点采用相同Turbo码的网络编码,包括如下步骤:
1)采用Turbo码对两个源节点的数据信息d1,d2分别进行编码,得出编码序列x1,x2,并同时发送至中继节点,若两个源节点都采用BPSK调制,中继节点接收的信号为y=(2x1-1)+(2x2-1)+n,n代表信道的加性高斯白噪声;
2)根据两个源节点采用的Turbo码结构,构造虚拟Turbo编码器的两个联合分量码:
设第1个源节点Turbo码的第一个分量码生成多项式为(g11 (1)(D)/g12 (1)(D)),第2个源节点Turbo码的第一个分量码生成多项式为(g21 (1)(D)/g22 (1)(D)),则第一联合分量码的生成多项式为:
设第1个源节点Turbo码的第二个分量码生成多项式为(g11 (2)(D)/g12 (2)(D)),第2个源节点Turbo码的第二个分量码生成多项式为(g21 (2)(D)/g22 (2)(D)),则第二联合分量码的生成多项式为:
gi1 (j)(D)代表第i个源节点Turbo码中第j个分量码的前向多项式,gi2 (j)(D)代表第i个源节点Turbo码中第j个分量码的反馈多项式;
3)根据第一联合分量码和第二联合分量码的生成多项式,构造联合分量码的简化虚拟Trellis图:
3a)当两个源节点采用的Turbo编码器中的第l个分量码有m
(l)个移位寄存器,则由第l个联合分量码有2m
(l)个移位寄存器,得出联合分量码有
个状态,其中l=1,2;
3b)从第l个联合分量码中的第一个分量码的0状态开始,找第l个联合分量码中的第二个分量码的状态数不小于第一个分量码状态数的状态,与第一个分量码的状态联合,构成Trellis图的简化状态,遍历第l个联合分量码的第一个分量码的的
个状态,得出简化后的状态数为
l=1,2;
3c)从简化后的状态的任一状态Si (l)出发,根据两个输入比特d1 (l)d2 (l)和第l个联合分量码的编码器结构,计算第l个联合分量码编码器的校验比特输出c1 (l)c2 (l)和下一时刻的状态Sj (l),确定出第l个联合分量码的Trellis图中从状态Si (l)转移至状态Sj (l)的一个简化状态转移,其中
3d)将Si (l)和d1 (l)d2 (l)遍历所有取值,重复步骤(5c),确定Trellis图所有的简化状态转移,得出第l联合分量码的简化Trellis图;
3e)保持每一个联合分量码的简化Trellis图状态数及状态转移关系不变,将两个输入比特和两个校验比特分别进行和运算,构成联合分量码的简化虚拟Trellis图;
4)用第l个联合分量码的简化虚拟Trellis图代替Turbo码的第l个分量码,并用与源节点交织器结构相同的交织器,构成虚拟Turbo码,l=1,2;
5)中继节点根据虚拟Turbo码的特点,对接收信号y=(2x1-1)+(2x2-1)+n进行最大后验概率译码,得到两个源节点信息相加后的估计序列
6)中继节点对估计序列
进行模2运算,得出网络编码信息
再对
重新进行Turbo编码,并将编码序列广播至两个源节点;
7)第1个源节点根据接收的信号进行Turbo译码,并将译码结果与本地信息d
1进行模2运算,得到第2个源节点的估计信息
第2个源节点根据接收的信号进行译码,并将译码结果与本地信息d
2模2运算,得到第1个源节点的估计信息
本发明与现有技术相比,具有如下优点:
1.本发明由于在中继节点上采用了基于Turbo译码的网络编码,使中继节点直接译出两个源节点发送信息的模2和,不仅可用两个时隙完成两个源节点的信息交互,使吞吐量可以达到1/2符号/用户/符号周期,并且可以提高中继节点的译码性能;
2.本发明由于针对两个源节点采用相同Turbo码的情况提出了一种虚拟简化Trellis图,因而可在不损失性能的前提下降低中继节点的译码复杂度。
具体实施方式
参照图2,本发明源节点采用不同Turbo码的网络编码方法,包括如下步骤:
步骤1,两个源节点的Turbo编码。
参照图1,采用不同Turbo码对两个源节点N1,N2的数据信息d1,d2分别进行编码,得出编码序列x1,x2,并在第一个时隙同时发送编码序列至中继节点N3,若两个源节点都采用BPSK调制,中继节点接收的信号为y=(2x1-1)+(2x2-1)+n,n代表信道的加性高斯白噪声。
步骤2,构造联合分量码。
根据两个源节点采用的Turbo码结构,构造虚拟Turbo码的两个联合分量码:
设第1个源节点Turbo码的第一个分量码生成多项式为(g11 (1)(D)/g12 (1)(D)),第2个源节点Turbo码的第一个分量码生成多项式为(g21 (1)(D)/g22 (1)(D)),构造出第一联合分量码的生成多项式为:
设第1个源节点Turbo码的第二个分量码生成多项式为(g11 (2)(D)/g12 (2)(D)),第2个源节点Turbo码的第二个分量码生成多项式为(g21 (2)(D)/g22 (2)(D)),构造出第二联合分量码的生成多项式为:
gi1 (j)(D)代表第i个源节点Turbo码中第j个分量码的前向多项式,gi2 (j)(D)代表第i个源节点Turbo码中第j个分量码的反馈多项式。
步骤3,构造联合分量码的虚拟Trellis图。
如图3所示,根据第一联合分量码和第二联合分量码的生成多项式,按照如下步骤构造联合分量码的虚拟Trellis图:
3.1)1个源节点采用Turbo码中第l个分量码有m
1 (l)个移位寄存器,第2个源节点采用的Turbo编码器中第l个分量码有m
2 (l)个移位寄存器,则由第l个联合分量码的m
1 (l)+m
2 (l)个移位寄存器,得出第l个联合分量码有
个状态,其中l=1,2;
3.2)第l个联合分量码中的任一状态Si (l)出发,根据两个输入比特d1 (l)d2 (l)和第l个联合分量码的生成多项式,计算第l个联合分量码编码器的校验比特输出c1 (l)c2 (l)和下一时刻的状态Sj (l),确定出第l个联合分量码的Trellis图中的一个状态转移,即从状态Si (l)转移至状态Sj (l), l=1,2;
3.3)将Si (l)和d1 (l)d2 (l)遍历所有取值,重复过程3.2),确定Trellis图所有的状态转移,得出第l联合分量码的Trellis图;
3.4)保持每一个联合分量码的Trellis图的状态数及状态转移关系不变,将两个输入比特和两个校验比特分别进行和运算,构成联合分量码的虚拟Trellis图。
步骤4,构造虚拟Turbo码。
用第l个联合分量码的虚拟Trellis图代替Turbo码的第l个分量码,并用与源节点交织器结构相同的交织器,构成虚拟Turbo码,l=1,2。
步骤5,中继节点最大后验概率译码。
中继节点N
3根据虚拟Turbo码的特点,对接收信号y=(2x
1-1)+(2x
2-1)+n进行最大后验概率译码,得到两个源节点信息相加后的估计序列
步骤6,中继节点重新编码并广播信号。
中继节点N
3对估计序列
进行模2运算,得出网络编码信息
再对
重新进行Turbo编码,并参照图1,在第二个时隙中继节点N
3将编码序列广播至两个源节点N
1,N
2。
步骤7,两个源节点分别译码,获得对方节点信息。
源节点N1根据接收的信号进行Turbo译码,并将译码结果与本地信息d1进行模2运算,得到源节点N2的估计信息源节点N2根据接收的信号进行译码,并将译码结果与本地信息d2模2运算,得到源节点N1的估计信息
参照图4,源节点采用相同Turbo码的网络编码方法,包括如下步骤:
步骤A,两个源节点Turbo编码。
参照图1,采用相同Turbo码对两个源节点N1,N2的数据信息d1,d2分别进行编码,得出编码序列x1,x2,并在第一个时隙同时发送编码序列至中继节点,若两个源节点都采用BPSK调制,中继节点接收的信号为y=(2x1-1)+(2x2-1)+n,n代表信道的加性高斯白噪声。
步骤B,构造联合分量码。
根据两个源节点采用的相同Turbo码结构,构造虚拟Turbo编码器的两个联合分量码:
设第1个源节点Turbo码的第一个分量码生成多项式为(g11 (1)(D)/g12 (1)(D)),第2个源节点Turbo码的第一个分量码生成多项式为(g21 (1)(D)/g22 (1)(D)),则第一联合分量码的生成多项式为:
设第1个源节点Turbo码的第二个分量码生成多项式为(g11 (2)(D)/g12 (2)(D)),第2个源节点Turbo码的第二个分量码生成多项式为(g21 (2)(D)/g22 (2)(D)),则第二联合分量码的生成多项式为:
gi1 (j)(D)代表第i个源节点Turbo码中第j个分量码的前向多项式,gi2 (j)(D)代表第i个源节点Turbo码中第j个分量码的反馈多项式。
步骤C,构造联合分量码的虚拟Trellis图。
参照图5,根据第一联合分量码和第二联合分量码的生成多项式,按照如下步骤构造联合分量码的简化虚拟Trellis图:
C1)设两个源节点采用的Turbo编码器中的第l个分量码有m
(l)个移位寄存器,则由第l个联合分量码有2m
(l)个移位寄存器,得出联合分量码有
个状态,其中l=1,2;
C2)从第l个联合分量码中的第一个分量码的0状态开始,找第l个联合分量码中的第二个分量码的状态数不小于第一个分量码状态数的状态,与第一个分量码的状态联合,构成Trellis图的简化状态,遍历第l个联合分量码的第一个分量码的的
个状态,得出简化后的状态数为
l=1,2;
C3)从简化后的状态的任一状态Si (l)出发,根据两个输入比特d1 (l)d2 (l)和第l个联合分量码的编码器结构,计算第l个联合分量码编码器的校验比特输出c1 (l)c2 (l)和下一时刻的状态Sj (l),确定出第l个联合分量码的Trellis图中从状态Si (l)转移至状态Sj (l)的一个简化状态转移,其中
C4)将Si (l)和d1 (l)d2 (l)遍历所有取值,重复步骤C3),确定Trellis图所有的简化状态转移,得出第l联合分量码的简化Trellis图;
C5)保持每一个联合分量码的简化Trellis图状态数及状态转移关系不变,将两个输入比特和两个校验比特分别进行和运算,构成联合分量码的虚拟简化Trellis图。
步骤D,构造虚拟Turbo码。
用第l个联合分量码的简化虚拟Trellis图代替Turbo码的第l个分量码,并用与源节点交织器结构相同的交织器,构成虚拟Turbo码,l=1,2。
步骤E,中继节点最大后验概率译码。
中继节点N
3根据虚拟Turbo码的特点,对接收信号y=(2x
1-1)+(2x
2-1)+n进行最大后验概率译码,得到两个源节点信息相加后的估计序列
步骤F,中继节点重新编码并广播信号。
中继节点N
3对估计序列
进行模2运算,得出网络编码信息
再对
重新进行Turbo编码,并参照图1,在第二个时隙中继节点N
3将编码序列广播至两个源节点N
1,N
2。
步骤G,两个源节点分别译码,获得对方节点信息。
源节点N
1根据接收的信号进行Turbo译码,并将译码结果与本地信息d
1进行模2运算,得到源节点N
2的估计信息
源节点N
2根据接收的信号进行译码,并将译码结果与本地信息d
2模2运算,得到源节点N
1的估计信息
实施例1:
第1步,采用两个分量码生成多项式均为1/1+D的Turbo码对第一个源节点进行编码,两个分量码生成多项式均为1+D2/1+D+D2的Turbo码对第二个源节点进行编码,得出编码序列,并将编码序列同时发送到中继节点。
第2步,由第一个源节点的Turbo码第一个分量码的生成多项式1/1+D,第二个源节点的Turbo码第一个分量码的生成多项式1+D2/1+D+D2,构造出第一联合分量码的生成多项式为
由第一个源节点的Turbo码第二个分量码的生成多项式1/1+D,第二个源节点的Turbo码第二个分量码的生成多项式1+D2/1+D+D2,构造出第二联合分量码的生成多项式为
D代表分量码从第一个移位寄存器的后抽头,D2代表分量码从第二个移位寄存器的后抽头,
第一联合分量码和第二联合分量码具有相同的生成多项式,其码结构均如图6所示。
第3步,按照下述过程可以构造第一联合分量码的虚拟Trellis图:
由第一联合分量码的第一个分量码有一个移位寄存器,第二个分量码有两个移位寄存器,得出第一联合分量码有8个状态分别为:000,001,010,011,100,101,110,111,将这8个状态用十进制数表示分别为:0,1,2,3,4,5,6,7;
第一联合分量码的每个状态都有4个输入比特分别为:00,01,10,11,用十进制数表示为:0,1,2,3;
当第一联合分量码的初始状态为0,输入比特为0时,将第一联合分量码的输入比特和生成多项式相乘,得到联合分量码的输出比特为0,下一状态为1,确定了图7的第一个状态转移分支,输入比特和输出比特在状态转移分支的右侧表示;
按照上述同样的方法,遍历第一联合分量码的所有状态:0,1,2,3,4,5,6,7和所有输入比特:0,1,2,3,确定联合分量码的Trellis图,如图7所示;
保持第一联合分量码的Trellis图的状态数和状态转移关系不变,将两个输入比特和两个校验比特分别做和运算,得出第一联合分量码的虚拟Trellis图,如图8所示。
第4步,由于第一联合分量码和第二联合分量码具有相同的生成多项式,得出第二联合分量码和第一联合分量码具有相同的虚拟Trellis图,如图8所示。。
第5步,用第一联合分量码的虚拟Trellis图代替Turbo码的第1个分量码,用第二联合分量码的虚拟Trellis图代替Turbo码的第2个分量码,并用与源节点交织器结构相同的交织器,构成虚拟Turbo码。
第6步,中继节点对接收信号进行最大后验概率译码,并对译码信息进行模2运算,得到网络编码信息,将网络编码信息重新进行Turbo编码,广播至两个源节点。
第7步,第一源节点将接收的信号进行Turbo译码,再将译码信息和本地信息模2和,得出第二源节点的估计信息;
第二源节点将接收的信号进行Turbo译码,再将译码信息和本地信息模2和,得出第一源节点的估计信息。
实施例2:
第1步,采用两个分量码生成多项式均为1+D2/1+D+D2的Turbo码分别对两个源节点进行编码,并将编码序列同时发送至中继节点。
第2步,由第一个源节点的Turbo码第一个分量码的生成多项式1+D2/1+D+D2,第二个源节点的Turbo码第一个分量码的生成多项式1+D2/1+D+D2,构造出第一联合分量码的生成多项式为
由第一个源节点的Turbo码第二个分量码的生成多项式1+D2/1+D+D2,第二个源节点的Turbo码第二个分量码的生成多项式1+D2/1+D+D2,构造出第二联合分量码的生成多项式为
D代表分量码从第一个移位寄存器的后抽头,D2代表分量码从第二个移位寄存器的后抽头。
第一联合分量码和第二联合分量码具有相同的生成多项式,其码结构均如图9所示。
第3步,按照下述过程构造第一联合分量码的简化虚拟Trellis图:
由两个源节点采用Turbo码的第一个分量码都有2个移位寄存器,得出第一联合分量码有24=16个状态,将这16个状态用四维二进制向量a3a2a1a0表示,分别为0000,0001,0010,0011,0100,0101,0110,0111,1000,1001,1010,1011,1100,1101,1110,1111,a3a2代表第一联合分量码的第一个分量码所确定的状态,a1a0代表第一联合分量码的第二个分量码所确定的状态;
第一联合分量码的第一个分量码有4个状态:00,01,10,11,第二个分量码有4个状态:00,01,10,11。当第一个分量码的状态为00时,第二个分量码不小于00状态的状态为00,01,10,11;当第一个分量码的状态的状态为01时,第二个分量码不小于01状态的状态为01,10,11;当第一个分量码的状态的为10时,第二个分量码不小于10状态的状态为10,11;当第一个分量码的状态为11时,第二个分量码不小于11状态的状态为11;将第一个分量码的状态与第二个分量码的状态组合起来,构成了联合分量码的的10个简化状态:0000,0001,0010,0011,0101,0110,0111,1010,1011,1111,将这10个状态用十进制数表示分别为:0,1,2,3,4,5,6,7,8,9;
第一联合分量码的每个简化状态都有4个输入比特分别为:00,01,10,11,用十进制数表示为:0,1,2,3;
当第一联合分量码的状态为0,输入比特为0时,将联合分量码的输入比特和生成多项式相乘,得出联合分量码的下一状态为0,输出比特为0,确定了第一联合分量码的一个状态转移分支;
按照上述的方法,遍历联合分量码的所有简化状态和所有的输入比特,确定联合分量码的简化Trellis图;
保持联合分量码的简化Trellis图的状态数及状态转移关系不变,将两个输入比特和两个校验比特分别做和运算,构成第一联合分量码的简化虚拟Trellis图,如图10所示,输入比特和输出比特在状态转移分支的右侧表示。
第4步,由于第二联合分量码和第一联合分量码具有相同的生成多项式,可以得出第二联合分量码与第一联合分量码具有相同的简化虚拟Trellis图,如图10所示。
第5步,用第一联合分量码的简化虚拟Trellis图代替Turbo码的第1个分量码,用第二联合分量码的简化虚拟Trellis图代替Turbo码的第2个分量码,并用与源节点交织器结构相同的交织器,构成虚拟Turbo码。
第6步,中继节点对接收信号进行最大后验概率译码,并对译码信息进行模2运算,得到网络编码信息,并将网络编码信息重新进行Turbo编码,广播至两个源节点。
第7步,第一源节点将接收的信号进行Turbo译码,再将译码信息和本地信息模2和,得出第二源节点的估计信息;
第二源节点将接收的信号进行Turbo译码,再将译码信息和本地信息模2和,得出第一源节点的估计信息。
为了进一步说明本发明方法带来的有益结果,图11给出了实施例2在AWGN信道中,源节点采用1/3码率Turbo码中继节点的译码性能曲线,并与《Physical-LayerNetwork Coding Schemes over Finite and Infinite Fields》一文中给出的基于MMSE-PNCF译码方法进行了比较。由图11可看出,当两种方案源节点采用相同Turbo码编码,在误比特率10-5时,本发明的联合Turbo译码网络编码方法比PNCF方法有接近0.5dB的编码增益。