1、一种基于遗传算法的 RSC 码盲识别方法 张立民 吴昭军 钟兆根 海军航空大学信息融合所 海军航空大学电子信息工程系 摘 要: 针对目前递归系统卷积 (RSC) 码盲识别算法容错性差、计算量大的问题, 提出了基于遗传算法的 RSC 多项式参数盲识别算法。首先根据 RSC 码特殊的编码结构, 构建了基于遗传算法的识别模型, 将结果向量的码重作为适应度函数, 然后推导出了不同误码率条件下平均码重的理论值, 实现了算法中最优门限的获得。该算法容错性能较好, 并且最大计算量只与初始种群的规模、遗传代数的上限以及输出路数成正比。最后仿真验证表明, 理论推导的码重分布情况能够与仿真结果较好地吻合, 并且在
2、误码率高达 0.06 的情况下, 各种寄存器个数下的 RSC 码参数识别率接近于 0.9。关键词: RSC 码; 遗传算法; 适应度函数; 最优门限; 盲识别; 作者简介:吴昭军.E-mail:收稿日期:2017-03-15Blind identification of RSC code based on genetic algorithmZHANG Limin WU Zhaojun ZHONG Zhaogen Institute of Information Fusion, Naval Aeronautical University; Department of Electronic and
3、 Information Engineering, Naval Aeronautical University; Abstract: To address the problems of poor performance and heavy computation in blind identification of Recursive Systematic Convolutional (RSC) code, a new algorithm for blind identification of RSC polynomial parameters is proposed based on th
4、e genetic algorithm.Considering the special structure of RSC code, the identification model is constructed based on the genetic algorithm.The weight of the result vector is used as fitness function, and the theoretical value of the average code weight is derived at different Bit Error Rates, as the
5、results.The optimal threshold is then obtained.The performance of the proposed algorithm is good, and the maximum amount of calculation is only proportional to the initial population size, genetic generations, and paths of outputs.The simulation results show that the theoretical derivation of the co
6、de weight is in good agreement with the simulation results, and the recognition rate of the RSC code is close to 0.9 at different number of registers when the Bit Error Rate is up to 0.06.Keyword: Recursive Systematic Convolutional (RSC) code; genetic algorithm; fitness function; optimal threshold;
7、blind identification; Received: 2017-03-15网络出版地址:http:/ 吴昭军, 钟兆根.一种基于遗传算法的 RSC 码盲识别方法J.航空学报, 2017, 38 (11) :321246.ZHANG L M, WU Z J, ZHONG Z G.Blind identification of RSC code based on genetic algorithmJ.Acta Aeronautica et Astronautica Sinica, 2017, 38 (11) :321246.由于 Turbo 码在交织长度足够长且交织关系随机时, 其容错性
8、能能够逼近香侬限1, 所以被广泛运用于卫星通信、深空探测等领域2, 且成为 3G、4G 通信系统的信道编码标准之一。在 Turbo 码中, 递归系统卷积 (Recursive Systematic Convolutional, RSC) 码是其主要的分量编码器, 正确识别出 RSC码的编码多项式, 对于 Turbo 码交织器的识别具有重要意义3-4。目前针对 RSC 码盲识别的传统算法主要有:解线性方程组方法、欧几里得算法、快速双合冲算法和 Walsh-Hadamard 变换等5。基于有限域中解线性方程组方法, 利用码元之间线性约束关系来构建方程组6, 但当存在误码时, 线性关系将遭到破坏导致
9、识别失效, 所以这种方法的容错性能较差。欧几里得算法7和快速双合冲算法8能够实现卷积码快速盲识别, 但算法的容错性能不好。Walsh-Hadamard 变换9在实现 RSC 码盲识别上具有极强的容错性能, 但是算法的实质是一个穷举算法, 计算量随着移位寄存器个数呈指数增加。Debessu等10首次提出了基于期望最大化 (Expectation Maximization, EM) 算法的RSC 参数的盲识别方法, 该方法在很低的信噪比下, 编码参数的盲识别率能够达到很高, 但在实际运用中, 算法极易陷入局部极小值, 导致算法识别错误。此外, 还有许多算法基于软判决信息来识别, 如文献11, 其容
10、错性能较好但是计算量太大。目前 RSC 码盲识别算法存在计算量大、容错性能差等缺点, 还需进一步对其进行深入研究。基于此, 本文充分利用遗传算法的迭代选优功能, 对 RSC 码进行识别分析。该方法最大计算量仅与种群规模、遗传代数上限和码率有关, 同时具有较好的容错性能。仿真结果表明:在误码率 (Bit Error Rate, BER) 达到 10 数量级时, 各种寄存器个数下的 RSC 码参数的识别率能够达到 0.9 以上。1 识别模型的建立RCS 码, 其编码结构中, 存在着反馈部分, 能够有效避免各路低重量的码字与高重量的码字配对, 常常作为 Turbo 码分量编码器, 从而达到优良的纠错
11、性能。图 1 所示为 RSC 码的编码结构12。图 1 中 Ik为第 k 时刻的信息码元;u k为当前反馈节点信息;s (0im) 为寄存器状态, 取值为 0 或 1;ck和 ck分别为 k 时刻第 1 路和第 2 路的编码输出码元;g10, g11, , g1m和g 20, g21, , g2m分别为反馈多项式和前向多项式的系数;D 为一个延时单元, 用多项式的形式表示。I (D) 、C 1 (D) 和 C2 (D) 之间的关系为其中:m 为寄存器个数, 设信息码元长度为 L, 则有将式 (2) 同乘以分母多项式, 在二元域中相加, 可以得到式 (6) , 实际应用中 I (D) 可用式 (
12、1) 替代。式中:表示二元域中的异或运算。利用式 (6) , 将截获的码元在一个码元约束长度下, 展开成卷积的形式, 得到图 1 RSC 码编码结构 Fig.1 Encoding structure of RSC code 下载原图式中:c i, j为第 2 路码元构建的分析矩阵中的第 i 行、第 j 列元素;I i, j为第 1路信息码元构建的分析矩阵中的第 i 行、第 j 列元素; , 符号表示向下取整。当多项式参数识别正确时, 无误码条件下, 截获的信息码元应满足式 (7) , 这是推导遗传算法适应度函数的核心。本文假定 RSC 码的码率、码字起点已经完成了识别。文献13针对该问题进行了
13、详细的说明, 并提出了基于矩阵分析的识别算法, 该算法具有较强的工程实用性。所以本文研究的重点在于仅仅依靠截获的码元序列识别出生成多项式的系数, 从而最大概率地满足式 (7) 。本文提出了基于遗传算法的盲识别方法, 该方法能够有效地识别出生成多项式的系数。2 RSC 码识别算法2.1 算法原理根据遗传算法的思想14-15, 在 RSC 码的识别过程中, 将待识别的多项式参数g10, g11, , g1 m, g20, g21, , g2 m序列作为一个基因个体。首先随机生成一组种群, 然后通过适应度函数进行筛选, 选出优良个体再进行遗传, 从而实现基因个体的寻优, 而筛选出来的最优基因即待识别
14、的多项式参数。由于多项式参数就是 0、1 序列, 所以基因编码方式可以为其本身, 避免了基因编码与解码的复杂性。2.1.1 适应度函数选取由式 (7) 可知, 所得结果为 t1 的列向量, 正确的多项式参数能够使得该向量的码重为 0;反之, 列向量中 1 为随机分布, 码重近似为 t/2。当存在误码情况时, 遗传过程中最佳基因个体一定能够使得列向量的码重最小, 即以最大的概率满足整个方程组的成立。不妨设第 i 代中第 j 个个体基因序列为 Si, j, 含错方程结果 t1 的列向量为 bi, j, 即则可以得到定义向量 bi, j码重为向量中元素为 1 的个数, 表示为 weight b (i
15、, j) , 则最优的个体的选择应满足:从而得到适应度函数为 。2.1.2 最佳门限的选择分析式 (9) , 当 Si, j为正确多项式参数时, 在含误码情况下, 不妨设误码率为 Pe, 其编码约束关系不能够成立, 取式 (9) 中一个编码方程为例, 即将式 (11) 进一步展开, 得到由于误码只能出现在 ci, k、I i, k中, 分析式 (12) , 编码约束方程不成立必须要满足 2 个条件: (1) 误码发生的位置只能在多项数 Si, j、S i, j参数不为 0 所对应的码元位置, 因为 0 乘以任何数都为 0, 误码将不会影响最终结果; (2) 在条件 (1) 下的错误码元个数必须
16、为奇数, 因为在二元域中, 偶数的变化不会导致结果的变化。由上述 2 个必要条件, 可以得到 P 的计算公式为式中:w 为生成多项式系数 的码重, 即其中 1 元素的个数。在式 (13) 中 C2 (m+1) Pe (1-Pe) 为在一个线性约束关系下的码元序列出现了 j 个错误的概率, 而 为 j 个错误中有 2k-1 个误码出现在生成多项式系数为 1 的对应位置, 各种情况由求和符号连接。当 Pe较小时, 可以直接用 k=1 的情况近似代替。求解出 P 后, weight b ( i, j) 服从均值为 tP、方差为 tP 1- (P) 的二项式分布, 在该情况下, 估计的多项式为实际的编
17、码多项式。当 Si, j为不正确的多项式时, 对应的向量 bi, j相应位置行上元素为 1 的概率为1/2, 故得到 weight b (i, j) 的分布列为当向量 bi, j的行数 t 足够大时, weight b ( i, j) 近似服从正态分布, 由此可进一步计算算法中的最优门限值。不妨设 Si, j为不正确多项式的事件为 H1, Si, j为正确的事件为 H0, D0为事件H0的观测空间, D 1为事件 H1的观测空间, 设定虚警概率 P D (0|H1) 为 0.001, 最优门限为 。则通过查询正态分布表, 可知: 时, 满足预定的结果, 故得到最优门限为2.2 算法具体步骤基于
18、遗传算法的思想, 将生成多项式系数作为个体基因来设置种群。在已经确定出适应度函数以及最优门限的条件下, 可以得到 RSC 码盲识别算法的基本过程为:首先, 随机确定出一定规模的种群, 种群个体基因为 RSC 码生成多项式的系数;然后, 通过个体之间随机的交叉配对繁殖以及基因突变产生子代;最后, 通过适应度函数进行筛选, 确定优良个体, 继续进行遗传繁衍, 直到适应度函数值大于门限值或是遗传的代数超出设置的遗传代数上限时, 算法识别过程结束。具体步骤为:步骤 1 以多项式的系数 0、1 序列作为基因的编码方式, 随机产生一个规模数量为 M 的种群。步骤 2 将产生的种群个体最大程度地进行两两随机
19、配对交叉繁衍, 以概率 Pc将种群个体进行变异, 从而产生出新的子代, 并将新的子代与父代相结合, 形成更大规模的种群。步骤 3 将截获的码元按码率分成 2 路, 并将每路码元按顺序按行排列成 t (m+1) 的矩阵 I、C, 按照式 (9) 计算种群每个个体的适应度函数值。步骤 4 将适应度函数值按从小到大的顺序进行排列, 选取前 M 个个体, 作为新一个种群, 重复步骤 1, 直到某一代的最小适应度函数值小于最佳门限 或是遗传代数大于设定的遗传代数 G, 识别算法结束, 输出最佳基因个体, 即识别的多项式参数。参数识别算法的具体流程图如图 2 所示。整个算法虽然是在码率为 1/2 时推导出
20、来的, 但是同样适用于码率为 1/n 的情况。识别方法为:首先按照码率为 1/2 的方式, 识别出反馈多项式与第 1 个前项多项式参数, 然后利用识别出来的反馈多项式参数, 同样按照码率为 1/2 的算法依次识别出第 2 个, 第 3 个, 直到第 n-1 个前向多项式参数, 从而完成 1/n的 RSC 码盲识别。2.3 计算复杂度分析假定算法初始种群规模数为 M, 遗传代数上限为 G, RSC 码码元寄存器个数为 m, 输出码元路数为 n, 设截获的码元序列所构成的数据矩阵 C、I 均为 t (m+1) 大小的矩阵。按照文献5对运算量的定义, 有限域中加法与乘法定义为 1 次运算, 实数域中
21、加法为 1 次运算, 乘法为 4 次运算。按照 2.2 节中的识别步骤, 可得到本文算法的计算复杂度 complex 为图 2 参数识别算法流程图 Fig.2 Flow chart of algorithm for parameters recognition 下载原图从计算复杂度的表达式来看, 算法的复杂度主要来源于种群规模数量以及设定的最大遗传代数, 二者都是可以人为控制的。当寄存器个数较小时, 可以减少M 与 G 来实现计算量的减小。3 仿真验证3.1 不同误码下, 结果向量码重分布在最优门限的推导过程中, 对结果向量 bi, j的码重分布作了理论的推导, 不同误码率条件下, 将仿真结果
22、与推导的理论结果作比较。为了反映出统计特性, 仿真时设定截获的码元为 10 000 个。在编码多项式正确时, 选取 (7, 5) 、 (13, 17) 、 (25, 37) 、 (45, 67) 代表了 4 种寄存器个数的多项式, 在不同误码率下, 将 bi, j平均码重的理论值与仿真值对比;当编码多项式不正确时, 选择 (27, 13) 多项式为不正确多项式, 而 (25, 37) 为正确多项式, 同样将bi, j的平均码重理论值与仿真值对比, 误码率设定为 00.5, 间隔取值为 0.01, 得到的结果向量码重随误码率变化的理论与仿真结果如图 3 所示。从仿真结果与理论值对比来看, 可得出
23、结论:当多项式参数正确时, 理论值与仿真值相一致, 二者相当接近;当多项式不正确时, 结果向量 bi, j的码重理论值为 1 000, 而仿真结果正好在 1 000 附近来回波动, 说明理论推导结果正确。综上所述, 2.1.2 节中的码重分布理论推导结果能够反映实际的情况。图 3 仿真结果与理论结果对比 Fig.3 Comparison of simulation and theoretic results 下载原图3.2 寄存器个数对进化速度的影响由于寄存器个数越多, 生成多项式系数就越大, 反映在种群个体的基因序列上就越复杂。设定初始种群数目为每种编码器所有可能个体总数的 2/3 (如寄存
24、器个数为 3 的情况, 所有可能的个体总数为 2, 初始种群数目可设定为 42) , 分别在寄存器个数为 2、3、4、5 下, 研究优良个体进化的速度, 设定误码率为0.01, 得到在不同寄存器个数下, 优良基因进化速度结果如图 4 所示。从仿真的结果来看, 寄存器个数对于进化速度影响较为明显, 当编码器中寄存器的个数等于 2 时, 优良个体的占有率在第 5 代就达到了峰值;而寄存器个数为5 时, 遗传代数则需要大于 25 代才能达到峰值。说明寄存器个数越多, 优质基因越难寻得。从曲线变化趋势上来看, 一旦出现优质个体基因, 那么种群个体急剧向优质个体进化。故对于寄存器个数较多的编码多项式估计
25、, 可以选择采用增加初始种群规模, 增加进化代数上限来克服, 但是同时也增加了识别的时间。图 4 不同寄存器个数下的优良基因进化速度 Fig.4 Evolution speed of excellent genetic with different number of registers 下载原图3.3 算法的容错性分析3.3.1 寄存器个数对算法的影响仿真选取的 RSC 码编码形式主要有:RSC (2, 1, 2) 、RSC (2, 1, 3) 、RSC (2, 1, 4) 、RSC (2, 1, 5) 4 种;寄存器个数分别为:2、3、4、5;多项式的形式为 (7, 5) 、 (13, 1
26、7) 、 (25, 37) 、 (45, 67) ;多项式的表示方式为八进制。设定截获的码元数目为 1 000 个, 设定初始种群数目与 3.2 节的方法一致, 配对方式为最大程度的两两随机配对交叉, 变异概率为 0.05。为提高算法的实时性, 设定遗传代数上限为 20 代, 误码率为 00.2, 间隔取值为 0.01, 采用蒙特卡罗仿真, 统计在不同误码率条件下, 参数正确识别率结果如图 5 所示。从识别结果上看, 算法的容错性能较强, 在寄存器个数较少时, 尤为明显。但是当寄存器个数增加时, 算法的容错性下降, 主要原因为寄存器个数越多, 误码出现在寄存器个数内的概率就越大, 造成结果向量
27、的对应行位置不为 0, 以至码重增加导致误判。图 5 寄存器个数对算法性能的影响 Fig.5 Performance of algorithm with different number of registers 下载原图3.3.2 估计的寄存器个数对算法的影响在实际工程中, 编码器的寄存器个数 m 多数条件下是不能获得的, 解决该问题的一个途径就是尽量最大化地估计实际的寄存器个数, 在估计的寄存器个数与实际的寄存器个数 m 不同差值条件下, 研究算法的容错性能具有较大的现实意义。仿真选用 RSC (7, 5) , 其寄存器个数为 2, 工程实践中, 为了减少译码的复杂度通常编码器的寄存器个数
28、取值范围为2, 6, 所以估计的寄存器个数 取值为 2、3、4、5 四种情况, 此时由于估计的寄存器个数增加了, 等价于解空间的维度增加了, 在多维空间中一定会使得解的个数增多, 这 4 种情况所对应的解的个数分别为 1、3、7、15 种, 每种情况下都除去了全零解, 这些解都是正确的, 因为通过约去反馈多项式与前项多项式的公因式都能得到原始编码多项式, 同样通过 1 000 次的蒙特卡罗试验, 统计在不同误码率条件下的识别率, 记录结果如图 6 所示。图 6 估计的寄存器个数对算法的影响 Fig.6 Performance of algorithm with different estima
29、ted number of registers 下载原图从图 6 中可以看出, 算法的性能随着寄存器个数增加而下降, 但是与图 5 相比, 其下降的幅度并不大, 4 条曲线相对比较接近。分析其主要原因为:虽然估计的寄存器个数增加了, 但是却导致多维度空间中多解的出现, 使得遗传算法更容易找到正确解。3.3.3 截获码元长度对算法的影响仿真选取的 RSC 码生成多项式为 (13, 17) , 其寄存器个数为 3, 设定截获的码元长度 L 为 500、1 000、1 500、2 000, 误码率的变化范围为 00.15, 间隔取值为 0.01, 蒙特卡罗仿真次数为 1 000 次, 统计在不同误码
30、率下多项式的正确识别率, 实验结果如图 7 所示。从仿真结果来看, 截获码元长度对于算法的影响较为明显, 随着截获码元的增加算法的容错性能得到了提高, 但是计算的复杂度也增加了。同时从图 7 中还能得到, 随着截获码元的进一步增大, 识别性能曲线逐步接近, 提高不大。图 7 截获码元长度对算法性能的影响 Fig.7 Performance of algorithm with different lengths of intercepted code 下载原图3.3.4 种群规模与遗传代数对算法的影响同样选取 (13, 17) 为实际编码多项式, 设定截获的码元长度为 1 000, 在固定的最大
31、遗传代数为 20 的情况下, 种群规模为 50、100、170;同时, 在固定的种群规模为 170 时, 最大遗传代数为 1、3、5、20;误码率变化范围为 00.2, 间隔取值为 0.01, 蒙特卡罗试验次数为 1 000, 得到如图 8 所示的结果。从得到的实验结果来看, 种群规模对于算法的识别性能影响较大, 在低误码率的条件下, 当种群规模较小时, 识别率曲线会出现震荡现象, 随着误码率的增加, 种群规模的影响渐渐消失;最大遗传代数的影响不是特别明显, 除了遗传代数为 1 的情况, 不管是在低误码率还是在高误码率的情况下, 其识别性能差距不大, 如代数为 3、5、20 的性能曲线没有太大
32、区别。由此可知, 在实际应用该算法时, 可以根据实际的信道情况来选择种群规模以及最大遗传代数, 如在低误码率条件下, 可选择较大的种群规模和较小的遗传代数;在高误码率条件下, 选择较小的种群规模和较小的遗传代数, 从而实现计算量的减少, 提高算法的实时性。图 8 种群规模与遗传代数对算法的影响 Fig.8 Performance of algorithm with different populations and genetic generations 下载原图3.4 与其他算法的比较首先与本文算法作比较的是经典的 WalshHadamard 变换, 仿真中选取的多项式与 3.3.1 节中一致, 误码率变化范围为 00.2, 间隔取值为 0.01, 蒙特卡罗试