一种具有强不等差错保护的Turbo码删余方案设计方法

申请号 CN201610858662.1 申请日 2016-09-28 公开(公告)号 CN106452672A 公开(公告)日 2017-02-22
申请人 郑州大学西亚斯国际学院; 发明人 邵霞; 张卫党; 穆维新; 叶会英; 李萍;
摘要 本 发明 公开了一种具有强不等差错保护的Turbo码删余方案设计方法,首先基于交织器的长度构造基本删余序列,然后根据交织器的长度和实际要求的码率对基本删余序列进行 修改 ,使得修改后的删余序列的长度和码率等于实际要求的长度和码率,则第一路校验序列的删余序列形成;根据第一路校验序列的删余序列构造第二路校验序列的删余序列,最终组成Turbo码的删余矩阵。本发明能够保证信息序列前段的误比特率曲线具有较强保护能 力 ,同时有效改善信息序列后段误比特率曲线的恶化程度,大大增强了Turbo码的不等差错保护特性。
权利要求

1.一种具有强不等差错保护的Turbo码删余方案设计方法,其特征在于,包括以下步骤:
A、基于交织器的长度计算参数k的取值,将交织器的长度记为L,则k为正整数且满足以下不等式:
2k(k+1)+2k+1-1≤L≤2k+1(k+2)+2k+2-1;
利用参数k构建第一路校验序列的基本删余序列,其组成结构如下所示:

第一路校验序列的基本删余序列由k+1组数字序列构成,每组数字序列由若干个单元构成,每个单元又由若干个“1”加上末尾的一个“0”构成,上式中最下面一行表示的是对应数字序列中单元的个数,中间一行表示的是对应单元中“1”的个数,最上面一行“1”表示第一路校验序列中对应位置上的码元被保留,而“0”表示第一路校验序列中对应位置上的码元被删除;
B、将第一路校验序列的基本删余序列中“1”的个数记为l11,“0”的个数记为l10,则l11=(k+1)×2k;
l10=2k+1-1;
将第一路校验序列的基本删余序列的长度记为L1,则
L1=l11+l10=2k(k+1)+2k+1-1;
将第一路校验序列的基本删余序列的基本码率记为rate1,则

将Turbo码的码率记为Rate,当L=L1并且rate1=Rate时,进入步骤C,当L≠L1或者rate1≠Rate时,进入步骤D;
C、针对第一路校验序列的基本删余序列,将每个单元中的第一个“1”和末尾的“0”互换,即得到第二路校验序列的基本删余序列,如下所示:
将第一路校验序列的基本删余序列作为第一行,第二路校验序列的基本删余序列作为第二行,即构成Turbo码的删余矩阵,设计完成;
D、向第一路校验序列的基本删余序列中添加“1”和“0”,得到第一路校验序列的删余序列,具体步骤为:将第一路校验序列的删余序列中“1”的个数记为l′11,则码率Rate为

由上式可以得出

将向第一路校验序列的基本删余序列中添加的“1”的个数记为l″11,则

如果l′11-l11≥0,则直接进入步骤E,如果l′11-l11<0,则减小正整数k并对k取使l′11-l11≥0的最大值,根据最新取得的k值修改第一路校验序列的基本删余序列,并更新第一路校验序列的基本删余序列中“1”的个数l11和“0”的个数l10,然后进入步骤E;
E、将第一路校验序列的删余序列中“0”的个数记为l′10,则

将向第一路校验序列的基本删余序列中添加的“0”的个数记为l″10,则l″10=l′10-l10;
如果l″10=l″11,则将l″10组”10”添加到第一路校验序列的基本删余序列的尾部,得到第一路校验序列的删余序列;
如果l″10>l″11,则将l″11组”10”添加到第一路校验序列的基本删余序列的尾部,然后再添加l″10-l″11个“0”,得到第一路校验序列的删余序列;
如果l″10<l″11,则将l″10组”10”添加到第一路校验序列的基本删余序列的尾部,然后再添加l″11-l″10个“1”,得到第一路校验序列的删余序列;
F、针对第一路校验序列的删余序列,将第一路校验序列的基本删余序列的每个单元中的第一个“1”和末尾的“0”互换,即得到第二路校验序列的删余序列,将第一路校验序列的删余序列作为第一行,第二路校验序列的删余序列作为第二行,即构成Turbo码的删余矩阵,设计完成。

说明书全文

一种具有强不等差错保护的Turbo码删余方案设计方法

技术领域

[0001] 本发明涉及数据通信差错保护技术领域,尤其涉及一种具有强不等差错保护的Turbo码删余方案设计方法。

背景技术

[0002] 在数据通信,尤其是多媒体通信中,数据往往根据不同重要程度,被分成不同的保护等级,现有技术通常采用不等差错保护技术实现上述目的。Turbo码是近十余年来发展的一种性能优异的纠错码,具有非常好的纠错能,可以大大改善系统性能。Turbo码构造简单灵活,易于实现,已有不少学者研究了基于Turbo码的不等差错保护,改变Turbo码的分量码、交织器和删余方式都可改变Turbo码的不等差错保护特性。与其他方式相比,通过改变Turbo码的删余矩阵得到强不等差错保护具有操作简单、容易实现且效果显著的特点。
[0003] 在文献“Estimate BER Distributions of Turbo Codes,International Journal of Wireless and Microwave Technologies(IJWMT),Vol.2,No.2,April 2012.pp53-58"(标为文献【1】)中,作者给出了一种具有强不等差错保护的删余方案。其删余矩阵表示为
[0004]
[0005] 删余矩阵p7中的第一行对应着对第一路校验序列的删余,“1”意味着此位置的码元不被删除,“0”意味着此位置上的码元被删除。因此p7的删余机制为:对信息序列不进行删余,对第一路校验序列,保留序列的前一半,而将序列的后一半完全删除,对第二路校验序列的删余同第一路校验序列的删余。这种方案可以对某些位置上的信息产生很强的不等差错保护。但是,对另外一些位置上的信息的保护却很弱,甚至没有保护功能。因此,上述方案的平均误比特率严重恶化。
[0006] 在文献“Unequal error protection of JPEG2000images using short block length turbo codes’,IEEE Commun.Lett.,2011,15,(6),pp.659–661.”(标为文献【2】)中,作者对文献[1]中提出的删余方案进行了改进,其提出的新的删余方案,给出了两个删余矩阵p2和p3,表示如下:
[0007]
[0008] 在这个改进方案中,不仅对两路校验序列进行删余,对信息序列也进行了删余。在删余矩阵p2和p3中,第一行对应着对信息序列的删余,后两行对应着对两路校验序列的删余。p2的删余机制为:对信息序列,前半序列采用交替删除的方法,而后半序列不进行删余。对第一路校验序列,保留前半序列,删除后半序列。对第二路校验序列,保留前半序列,后半序列采用交替删除。p3的删余机制为:对信息序列和第二路校验序列,均保留前半序列,删除后半序列。第一路校验序列全保留,不进行删余。在文献2的改进方案中,虽然对某些位置上的信息的强不等差错保护能力有所降低,但平均误比特率有了明显提高。图1给出了由这三种删余方案产生的误比特率分布曲线。在图1中,交织器的类型为3gpp交织器,长度均为
64比特,Turbo码的生成函数矩阵为(1,10001/10011),信噪比为4dB的高斯噪声,译码采用BCJR算法迭代5次。三条误比特率分布曲线由仿真得到,为了容易比较三种情况下各个位置的不等保护程度,信息序列按照各个位置误比特率的不同进行了从小到大的重新排列。
从图1可以看出,由p7删余矩阵产生的误比特率曲线在前段具有最强的不等保护特性,但是在后段误比特率急剧恶化。而由删余矩阵p2和p3产生的误比特率曲线虽然在后段的恶化程度得到了明显改善,但在前段却没有p7产生的保护能力强。

发明内容

[0009] 本发明提供了一种具有强不等差错保护的Turbo码删余方案设计方法,能够保证信息序列前段的误比特率曲线具有较强保护能力,同时有效改善信息序列后段误比特率曲线的恶化程度。
[0010] 为实现上述目的,本发明采用的技术方案是:
[0011] 一种具有强不等差错保护的Turbo码删余方案设计方法,包括以下步骤:
[0012] A、基于交织器的长度计算参数k的取值,将交织器的长度记为L,则k为正整数且满足以下不等式:
[0013] 2k(k+1)+2k+1-1≤L≤2k+1(k+2)+2k+2-1;
[0014] 利用参数k构建第一路校验序列的基本删余序列,其组成结构如下所示:
[0015]
[0016] 第一路校验序列的基本删余序列由k+1组数字序列构成,每组数字序列由若干个单元构成,每个单元又由若干个“1”加上末尾的一个“0”构成,上式中最下面一行表示的是对应数字序列中单元的个数,中间一行表示的是对应单元中“1”的个数,最上面一行“1”表示第一路校验序列中对应位置上的码元被保留,而“0”表示第一路校验序列中对应位置上的码元被删除;
[0017] B、将第一路校验序列的基本删余序列中“1”的个数记为l11,“0”的个数记为l10,则[0018] l11=(k+1)×2k;
[0019] l10=2k+1-1;
[0020] 将第一路校验序列的基本删余序列的长度记为L1,则
[0021] L1=l11+l10=2k(k+1)+2k+1-1;
[0022] 将第一路校验序列的基本删余序列的基本码率记为rate1,则
[0023]
[0024] 将Turbo码的码率记为Rate,当L=L1并且rate1=Rate时,进入步骤C,当L≠L1或者rate1≠Rate时,进入步骤D;
[0025] C、针对第一路校验序列的基本删余序列,将每个单元中的第一个“1”和末尾的“0”互换,即得到第二路校验序列的基本删余序列,如下所示:
[0026]
[0027] 将第一路校验序列的基本删余序列作为第一行,第二路校验序列的基本删余序列作为第二行,即构成Turbo码的删余矩阵,设计完成;
[0028] D、向第一路校验序列的基本删余序列中添加“1”和“0”,得到第一路校验序列的删余序列,具体步骤为:将第一路校验序列的删余序列中“1”的个数记为l′11,则码率Rate为[0029]
[0030] 由上式可以得出
[0031]
[0032] 将向第一路校验序列的基本删余序列中添加的“1”的个数记为l″11,则[0033]
[0034] 如果l′11-l11≥0,则直接进入步骤E,如果l′11-l11<0,则减小正整数k并对k取使l′11-l11≥0的最大值,根据最新取得的k值修改第一路校验序列的基本删余序列,并更新第一路校验序列的基本删余序列中“1”的个数l11和“0”的个数l10,然后进入步骤E;
[0035] E、将第一路校验序列的删余序列中“0”的个数记为l′10,则
[0036]
[0037] 将向第一路校验序列的基本删余序列中添加的“0”的个数记为l″10,则[0038] l″10=l′10-l10;
[0039] 如果l″10=l″11,则将l″10组”10”添加到第一路校验序列的基本删余序列的尾部,得到第一路校验序列的删余序列;
[0040] 如果l″10>l″11,则将l″11组”10”添加到第一路校验序列的基本删余序列的尾部,然后再添加l″10-l″11个“0”,得到第一路校验序列的删余序列;如果l″10<l″11,则将l″10组”10”添加到第一路校验序列的基本删余序列的尾部,然后再添加l″11-l″10个“1”,得到第一路校验序列的删余序列;F、针对第一路校验序列的删余序列,将第一路校验序列的基本删余序列的每个单元中的第一个“1”和末尾的“0”互换,即得到第二路校验序列的删余序列,将第一路校验序列的删余序列作为第一行,第二路校验序列的删余序列作为第二行,即构成Turbo码的删余矩阵,设计完成。
[0041] 本发明通过基于交织器的长度构造基本删余序列,然后根据交织器的长度和码率对基本删余序列进行修改,构造最终的删余序列并组成Turbo码的删余矩阵,使得产生的误比特率曲线不仅在信息序列的前段具有较强的保护能力,而且在信息序列的后段恶化程度得到明显的改善,大大增强了Turbo码的不等差错保护特性。附图说明
[0042] 图1为分别由文献[1]中的删余矩阵p7和文献[2]中的删余矩阵p2及p3产生的误比特率曲线图;
[0043] 图2为分别由本发明实施例一中的删余矩阵p1和文献[2]中的删余矩阵p2及p3产生的误比特率曲线图;
[0044] 图3为分别由本发明实施例二中的删余矩阵p4和文献[2]中的删余矩阵p2及p3产生的误比特率曲线图;
[0045] 图4为分别由本发明实施例三中的删余矩阵p5和文献[2]中的删余矩阵p2及p3产生的误比特率曲线图。

具体实施方式

[0046] 本发明所述的具有强不等差错保护的Turbo码删余方案设计方法,包括以下步骤:
[0047] A、基于交织器的长度计算参数k的取值,将交织器的长度记为L,则k为正整数且满足以下不等式:
[0048] 2k(k+1)+2k+1-1≤L≤2k+1(k+2)+2k+2-1;
[0049] 利用参数k构建第一路校验序列的基本删余序列,其组成结构如下所示:
[0050]
[0051] 式中“1”表示第一路校验序列中对应位置上的信息被保留,而“0”表示第一路校验序列中对应位置上的信息被删截。由上式可知,第一路校验序列的基本删余序列由k+1组数字序列构成,每组数字序列由若干个单元构成,每个单元又由若干个“1”加上末尾的一个“0”构成,式中最下面一行表示的是对应数字序列中单元的个数,中间一行表示的是对应单元中“1”的个数,例如上式中第三组数字序列由4个单元构成,每个单元中“1”的个数为2k-2。
[0052] B、将第一路校验序列的基本删余序列中“1”的个数记为l11,“0”的个数记为l10,则[0053] l11=(k+1)×2k;
[0054] l10=2k+1-1;
[0055] 将第一路校验序列的基本删余序列的长度记为L1,则
[0056] L1=l11+l10=2k(k+1)+2k+1-1;
[0057] 将第一路校验序列的基本删余序列的基本码率记为rate1,则
[0058]
[0059] 将Turbo码的码率记为Rate,当L=L1并且rate1=Rate时,进入步骤C,当L≠L1或者rate1≠Rate时,进入步骤D。
[0060] C、针对第一路校验序列的基本删余序列,将每个单元中的第一个“1”和末尾的“0”互换,即得到第二路校验序列的基本删余序列,如下所示:
[0061]
[0062] 将第一路校验序列的基本删余序列作为第一行,第二路校验序列的基本删余序列作为第二行,即构成Turbo码的删余矩阵,设计完成。
[0063] D、向第一路校验序列的基本删余序列中添加“1”和“0”,使得到的第一路校验序列的删余序列的长度等于实际要求的长度,码率等于实际要求的码率,具体步骤如下:
[0064] 将第一路校验序列的删余序列中“1”的个数记为l′11,则码率Rate为
[0065]
[0066] 由上式可以得出
[0067]
[0068] 将向第一路校验序列的基本删余序列中添加的“1”的个数记为l″11,则[0069]
[0070] 如果l′11-l11≥0,则直接进入步骤E,如果l′11-l11<0,则减小正整数k并对k取使l′11-l11≥0的最大值,根据最新取得的k值修改第一路校验序列的基本删余序列,并更新第一路校验序列的基本删余序列中“1”的个数l11和“0”的个数l10,然后进入步骤E。
[0071] E、将第一路校验序列的删余序列中“0”的个数记为l′10,则
[0072]
[0073] 将向第一路校验序列的基本删余序列中添加的“0”的个数记为l″10,则[0074] l″10=l′10-l10;
[0075] 如果l″10=l″11,则将l″10组”10”添加到第一路校验序列的基本删余序列的尾部,得到第一路校验序列的删余序列;
[0076] 如果l″10>l″11,则将l″11组”10”添加到第一路校验序列的基本删余序列的尾部,然后再添加l″10-l″11个“0”,得到第一路校验序列的删余序列;
[0077] 如果l″10<l″11,则将l″10组”10”添加到第一路校验序列的基本删余序列的尾部,然后再添加l″11-l″10个“1”,得到第一路校验序列的删余序列;
[0078] F、针对第一路校验序列的删余序列,将第一路校验序列的基本删余序列的每个单元中的第一个“1”和末尾的“0”互换,即得到第二路校验序列的删余序列,将第一路校验序列的删余序列作为第一行,第二路校验序列的删余序列作为第二行,即构成Turbo码的删余矩阵,设计完成。
[0079] 下面结合具体实施例对本发明所述的具有强不等差错保护的Turbo码删余方案设计方法进行详细说明。
[0080] 实施例一
[0081] 为一个交织器长度L=64,码率Rate=1/2的Turbo码设计删余矩阵,则
[0082] 2k(k+1)+2k+1-1≤64≤2k+1(k+2)+2k+2-1;
[0083] 由上式可知,k=3,则第一路校验序列的基本删余序列为
[0084] (111111110 1111011110 110110110110 1010101010101010);
[0085] 第一路校验序列的基本删余序列中有32个“1”和15个“0”,即L1=47,l11=32,l10=15,经计算可得 l′10=L-l′11=32。由于l″11=l′11-l11=0,因此没有”
1”需要添加到第一路校验序列的基本删余序列的尾部。由于l″10=l′10-l10=32-15=17,因此需要添加17个”0”到第一路校验序列的基本删余序列的尾部,最后得到第一路校验序列的删余序列为
[0086] (1111111101111011110110110110110101010101010101000000000000000000);
[0087] 将第一路校验序列的基本删余序列的每个单元中的第一个“1”和末尾的“0”互换,即得到第二路校验序列的删余序列
[0088] (0111111110111101111011011011011010101010101010100000000000000000);
[0089] 将第一路校验序列的删余序列作为第一行,第二路校验序列的删余序列作为第二行,即构成Turbo码的删余矩阵
[0090]
[0091] 由本实施例中的删余矩阵p1和文献[2]中的删余矩阵p2及p3产生的误比特率曲线如图2所示,其中交织器的类型为3gpp交织器,Turbo码的生成函数矩阵g=(1,10001/10011),仿真环境为高斯噪声,信噪比为4dB,使用BCJR译码算法,迭代5次。为了容易比较三种情况下各个位置的不等保护程度,信息序列按照各个位置误比特率的不同进行了从小到大的重新排列,由图2可以看出,在三种交织器长度相同的情况下,本发明所给出的删余矩阵p1产生的误比特率,基本上都低于由p2和p3产生的误比特率。
[0092] 实施例二
[0093] 为一个交织器长度L=128,码率Rate=1/2的Turbo码设计删余矩阵,则
[0094] 2k(k+1)+2k+1-1≤128≤2k+1(k+2)+2k+2-1;
[0095] 由上式可知,k=4,则第一路校验序列的基本删余序列为
[0096](1111111111111111011111111011111111011110111101111011110110110110110110110110
11010101010 1010 10101010101010101010);
[0097] 第一路校验序列的基本删余序列中有80个“1”和31个“0”,即L1=111,l11=80,l10=31,经计算可得 l′10=L-l′11=64。由于l″11=l′11-l11<0,因此取k值为3,并更新第一路校验序列的基本删余序列为
[0098] (111111110 1111011110 110110110110 1010101010101010);
[0099] 同时更新L1=47,l11=32,l10=15,则l″11=l′11-l11=32,l′10=L-l′11=64,此时l″10=l′10-l10=64-15=49,因为l″10>l″11,故需要添加32个”10”到第一路校验序列的基本删余序列的尾部,然后再添加17个”0”,最后得到第一路校验序列的删余序列为[0100](1111111101111011110110110110110101010101010101010101010101010101010101010101
0101010101010101010101010101010101000000000000000000);
[0101] 将第一路校验序列的基本删余序列的每个单元中的第一个“1”和末尾的“0”互换,即得到第二路校验序列的删余序列
[0102](0111111110111101111011011011011010101010101010110101010101010101010101010101
0101010101010101010101010101010101000000000000000000);
[0103] 将第一路校验序列的删余序列作为第一行,第二路校验序列的删余序列作为第二行,即构成Turbo码的删余矩阵p4。由本实施例中的删余矩阵p4和文献[2]中的删余矩阵p2及p3产生的误比特率曲线如图3所示,其中交织器的类型为3gpp交织器,Turbo码的生成函数矩阵g=(1,10001/10011),仿真环境为高斯噪声,信噪比为3dB,使用BCJR译码算法,迭代5次。为了容易比较三种情况下各个位置的不等保护程度,信息序列按照各个位置误比特率的不同进行了从小到大的重新排列,由图3可以看出,在三种交织器长度相同的情况下,本发明给出的删余矩阵p4产生的误比特率基本上都低于由p2和p3产生的误比特率,尤其是在信息序列的尾部,信噪比的恶化得到了明显的抑制。
[0104] 实施例三
[0105] 为一个交织器长度L=320,码率Rate=1/2的Turbo码设计删余矩阵,则
[0106] 2k(k+1)+2k+1-1≤320≤2k+1(k+2)+2k+2-1;
[0107] 由上式可知,k=5,则第一路校验序列的基本删余序列为
[0108](1111111111111111111111111111111101111111111111111011111111111111110111111110
11111111011111111011111111011110111101111011110111101111011110111101101101101
10110110110110110110110110110110110110101010101010101010101010101010101010101
0 101010101010101010101010);
[0109] 第一路校验序列的基本删余序列中有192个“1”和63个“0”,即L1=255,l11=192,l10=63,经计算可得 l′10=L-l′11=160。由于l″11=l′11-l11<0,因此取k值为4,并更新第一路校验序列的基本删余序列为
[0110](1111111111111111011111111011111111011110111101111011110110110110110110110110
11010101010 1010 10101010101010101010);
[0111] 同时更新L1=111,l11=80,l10=31,则l″11=l′11-l11=80,l′10=L-l′11=160,此时l″10=l′10-l10=160-31=129,因为l″10>l″11,故需要添加80个”10”到第一路校验序列的基本删余序列的尾部,然后再添加49个”0”,最后得到第一路校验序列的删余序列为[0112](1111111111111111011111111011111111011110111101111011110110110110110110110110
11010101010101010101010101010101010101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010000000000000000000000000000000000000
0000000000000);
[0113] 将第一路校验序列的基本删余序列的每个单元中的第一个“1”和末尾的“0”互换,即得到第二路校验序列的删余序列
[0114](0111111111111111101111111101111111101111011110111101111011011011011011011011
01101010101010101010101010101010101101010101010101010101010101010101010101010
10101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010000000000000000000000000000000000000
0000000000000);
[0115] 将第一路校验序列的删余序列作为第一行,第二路校验序列的删余序列作为第二行,即构成Turbo码的删余矩阵p5。由本实施例中的删余矩阵p5和文献[2]中的删余矩阵p2及p3产生的误比特率曲线如图4所示,其中交织器的类型为3gpp交织器,Turbo码的生成函数矩阵g=(1,10001/10011),仿真环境为高斯噪声,信噪比为2dB,使用BCJR译码算法,迭代5次。为了容易比较三种情况下各个位置的不等保护程度,信息序列按照各个位置误比特率的不同进行了从小到大的重新排列,由图4可以看出,在三种交织器长度相同的情况下,本发明给出的删余矩阵p5产生的误比特率基本上都低于由p2和p3产生的误比特率,尤其是在信息序列的尾部,信噪比的恶化得到了明显的抑制。
QQ群二维码
意见反馈