You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Matlab的poly2trellis正确定义指定递归系统卷积码(RSC)?

正确定义递归系统卷积码(RSC)的poly2trellis用法

你的核心问题是生成多项式的顺序与RSC生成矩阵的输出位对应关系不匹配,同时需要明确poly2trellis针对递归系统卷积码的参数规则:

错误原因分析

你给出的生成矩阵是:
G(D) = [1 n0(D)/d(D) n1(D)/d(D)]
其中:

  • n0(D) = 1 + D + D³ → 八进制13
  • n1(D) = 1 + D + D² + D³ → 八进制17
  • d(D) = 1 + D² + D³ → 八进制15

但你写的poly2trellis(4, [15 17 13], 15)中,生成多项式数组的顺序是[系统位多项式, n1(D), n0(D)],和生成矩阵中[1, n0(D)/d(D), n1(D)/d(D)]的输出位顺序不匹配,导致校验位对应错误。

正确写法

调整生成多项式的顺序,让校验位的多项式和生成矩阵对应:

trellis = poly2trellis(4, [15 13 17], 15);

poly2trellis递归系统码的核心用法规则

  • 参数含义:
    • 第一个参数4:约束长度,等于寄存器个数+1(你的RSC有3个移位寄存器,所以约束长度为4)。
    • 第二个参数[15 13 17]:每个输出位的前馈生成多项式(八进制):
      • 第一个元素15:系统位的前馈多项式,必须等于反馈多项式15,这样系统位的生成式为15(D)/15(D)=1,符合系统码要求。
      • 后续元素13、17:对应生成矩阵中n0(D)/d(D)、n1(D)/d(D)的校验位前馈多项式。
    • 第三个参数15:递归反馈的连接多项式(八进制),对应d(D)。
  • 八进制多项式转换注意事项:
    二进制多项式的最高次项对应八进制的最高位,例如d(D)=1+D²+D³的二进制是1101(从D³到D⁰),转换为八进制即15(1*8 +5),你的转换是正确的。
  • 验证方法:
    可以用istrellis(trellis)验证格型结构合法性,也可以用convenc生成编码序列,对比手动计算的RSC编码结果来确认正确性。

内容的提问来源于stack exchange,提问作者Jhonathan Nicolas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 23:20:06