下载了论坛的6670VCP2.zip例程,对第一个VCP2_BER历程进行了测试,其中参数是1/3,约束长度为9,运行没有问题!

但是经过修改,参数是1/3,约束长度为7,卷积编码生成多项式是[133, 171, 165],

将TestVCP2()中的

    if (VcpConfigParms.poly0) poly[0] = VcpConfigParms.poly0|0x100;
    if (VcpConfigParms.poly1) poly[1] = VcpConfigParms.poly1|0x100;
    if (VcpConfigParms.poly2) poly[2] = VcpConfigParms.poly2|0x100;
    if (VcpConfigParms.poly3) poly[3] = VcpConfigParms.poly3|0x100; 修改为

    if (VcpConfigParms.poly0) poly[0] = VcpConfigParms.poly0|0x40;
    if (VcpConfigParms.poly1) poly[1] = VcpConfigParms.poly1|0x40;
    if (VcpConfigParms.poly2) poly[2] = VcpConfigParms.poly2|0x40;
    if (VcpConfigParms.poly3) poly[3] = VcpConfigParms.poly3|0x40;

还将VCP2_genParams()函数中mask = 0x00FF;修改了的mask = 0x003F;

还修改了VCP2_Channel_Density.h的
#define VCP2_POLY0_FOR_CONST7_RATE_1_3 0544
#define VCP2_POLY1_FOR_CONST7_RATE_1_3 0624
#define VCP2_POLY2_FOR_CONST7_RATE_1_3 0764修改为

#define VCP2_POLY0_FOR_CONST7_RATE_1_3 0133
#define VCP2_POLY1_FOR_CONST7_RATE_1_3 0171
#define VCP2_POLY2_FOR_CONST7_RATE_1_3 0165

#define VCP2_POLY2_FOR_CONST7_RATE_1_3 0000

但是经过VCP2译码的结果不对!

感觉在约束长度K=9时,修改生成多项式后,译码结果都是对的!但是修改了约束长度K后,译码怎么修改都不对!

望老师查找下问题!谢谢!