IS-95系统中反向业务信道卷积译码器.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
IS-95系统中反向业务信道卷积译码器

IS-95系统中反向业务信道卷积译码器 及其C语言实现 IS-95系统中反向业务信道采用接入信道采用(3,1,8)的卷积码,其码率R 1/3,约束长度K 9。编码器结构如图1所示。 图1 反向业务信道编码器结构 其中:G0 557(101101111),G1 663(110110011),G2 711(111001001)。 卷积编码器对每个输入编码器的数据比特产生三个编码符号,首先输出的是编码符号C0,它用发生器函数G0编码,在其后输出的是编码符号C1,用发生器函数G1编码,最后输出的是编码符号C2,用发生器函数G2编码。卷积编码器初始化时的状态应为全零状态,随后第一个输出编码符号为用发生器函数G0编码的编码符号。 卷积码的译码一般采用Viterbi译码算法,但由于其实现起来很复杂,在这里我们使用了一种简便译码方法,其结构如图2所示。 图2 反向业务信道译码器结构 以上三路输出进入一个判决器,两个及以上相同输出的值即为判决器的最后输出值,同时该输出值再反馈到译码器中。 其C语言编程实现为: //Reverse Channel Convolutional Decoder unsigned int input[36],output[12]; //定义两个无符号整形数组,input为输入数组,放入译码器输入576位每帧;output为输出 //数组,放入译码器输出的192位每帧 void ConCoder unsigned int c0_x0,c0_x1,c0_x2,c0_x3,c0_x4,c0_x5,c0_x6,c0_x7,c0_x8,c0_in; unsigned int c_out,i,NUM,bit; unsigned int c1_x0,c1_x1,c1_x2,c1_x3,c1_x4,c1_x5,c1_x6,c1_x7,c1_x8,c1_in; unsigned int c2_x0,c2_x1,c2_x2,c2_x3,c2_x4,c2_x5,c2_x6,c2_x7,c2_x8,c2_in; //x1~x8分别表示移位寄存器1~8的输出值,x0为移位寄存器1的输入比特,也既图 //2中的c0out、c1out和c2out,NUM用来计算数组的数组数,bit用来计算输入比特 //在数组中的位数。 for NUM 0;NUM 5;NUM++ output[NUM] 0; c0_x0 c0_x1 c0_x2 c0_x3 c0_x4 c0_x5 c0_x6 c0_x7 c0_x8 0; c1_x0 c1_x1 c1_x2 c1_x3 c1_x4 c1_x5 c1_x6 c1_x7 c1_x8 0; c2_x0 c2_x1 c2_x2 c2_x3 c2_x4 c2_x5 c2_x6 c2_x7 c2_x8 0; //赋初值 for i 0;i 575;i++ NUM i/16; bit i%16; //c0 if i%3 0 //求输出比特 c0_in input[NUM] 15-bit 1; c0_x0 c0_x2^c0_x3^c0_x5^c0_x6^c0_x7^c0_x8^c0_in; //移位 c0_x8 c0_x7; c0_x7 c0_x6; c0_x6 c0_x5; c0_x5 c0_x4; c0_x4 c0_x3; c0_x3 c0_x2; c0_x2 c0_x1; c0_x1 c0_x0; else //c1 if i%3 1 //求输出比特 c1_in input[NUM] 15-bit 1; c1_x0 c1_x1^c1_x3^c1_x4^c1_x7^c1_x8^c1_in; //移位 c1_x8 c1_x7; c1_x7 c1_x6; c1_x6 c1_x5; c1_x5 c1_x4; c1_x4 c1_x3; c1_x3 c1_x2; c1_x2 c1_x1; c1_x1 c1_x0; //c2 else //求输出比特 c2_in input[NUM] 15-bit 1; c2_x0 c2_x1^c2_x2^c2_x5^c2_x8^c2_in; //移位 c2_x8 c2_x7; c2_x7 c2_x6; c2_x6 c2_x5; c2_x5 c2_x4; c2_x4 c2_x3; c2_x3 c2_x2; c2_x2 c2_x1; c2_x1 c2_x0; //比较判决 if c0_x0! c1_x0c1_x0 c2_x0 c_out c1_x0; else c_out c0_x0; c0_x1 c1_x1 c2_x1 c_out; //将纠错后的结果返回译码器中

文档评论(0)

juhui05 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档