循环编码.doc
- 文档编号:152171
- 上传时间:2022-10-04
- 格式:DOC
- 页数:15
- 大小:237KB
循环编码.doc
《循环编码.doc》由会员分享,可在线阅读,更多相关《循环编码.doc(15页珍藏版)》请在冰豆网上搜索。
汕头大学工学院
三级项目报告
课程名称:
信息论与编码
课程题目:
循环码的编码和译码程序设计
指导教师:
唐雅娟
系别:
电子工程系 专业:
电子信息工程
学生姓名:
曾煌冠
学号:
09141014
完成时间:
2012年5月4日至5月14日
成绩:
评阅人:
唐雅娟
循环码的编码和译码程序设计
一.循环码编码和译码原理简介:
1.RS循环码编码原理与特点:
首先令和分别表示信息多项式与校验多项式,则一个RS码的多项式表达式为:
如果为一个码字,则它必须为生成多项式的位数,即:
编码的过程就是从和中寻找,它可通过除法算法来完成。
即用除以得到:
(1式)
同时令=-,则有。
2.RS循环码译码原理与特点:
(1)能纠正t个符号差错的(n,k)RS码,数据段中包含k个信息符号和2t个校验符号。
设存贮器系统数据输出的多项式(妈接收字多项式)可以表达为,差错图样多项式为,纠错后的码多项式为,伴随式多项式为,差错定位多项式为。
3.RS循环码的基本步骤及实现循环码的程序流程图:
信源
分帧
Rs(7,3)编码
BPSK调制
AWGN信道
BPSK解调
Rs(7,3)译码
合帧
误码率计算
4.主要源程序:
/*输入的信息元:
m(x)*/
voidinformation_element(unsignedcharmx[K])
{
unsignedchartem;
srand((unsigned)time(0));
for(unsignedinti=0;i tem=rand()%6+1; if(tem==1) mx[i]='a'; else mx[i]=tem+48; } } /*确定被除数: x^(n-k)m(x)*/ voidcount_dividend(unsignedchardividend[],unsignedcharmx[]) { for(inti=0;i if(i>=K) { dividend[i]='0'; continue; } dividend[i]=mx[i]; } } /*gx各项乘以被除数的第一项系数;注意: 符号'0'的ASCII码为48*/ voidfor_mod2(unsignedchartem[],unsignedcharc) { unsignedinti; switch(c) { case'1': for(i=0;i<5;i++) tem[i]=gx[i]; break; case'a': for(i=0;i<5;i++){ if(gx[i]=='1') tem[i]='a'; elseif(gx[i]=='a') tem[i]='2'; else tem[i]=gx[i]+1; } break; default: for(i=0;i<5;i++) { if(gx[i]=='1') tem[i]=c; elseif(gx[i]=='a') tem[i]=(int)c+1; else tem[i]=(int)gx[i]+(int)c-48; } break; } /*应用课本第153页的表6-7的关系式转换*/ for(i=0;i<5;i++) { if(tem[i]=='8') tem[i]='a'; if(tem[i]>'8'&&tem[i]! ='a') tem[i]-=7; if(tem[i]=='7') tem[i]='1'; } } /*与GF(2^3)扩域(课本153页)匹配*/ unsignedcharmath(unsignedcharctem[]) { unsignedcharc='0';//当两系数相同时(即a^i+a^i=0)为0 if(ctem[0]=='0'&&ctem[1]=='0'&&ctem[2]=='1') c='1'; if(ctem[0]=='0'&&ctem[1]=='1'&&ctem[2]=='0') c='a'; if(ctem[0]=='1'&&ctem[1]=='0'&&ctem[2]=='0') c='2'; if(ctem[0]=='0'&&ctem[1]=='1'&&ctem[2]=='1') c='3'; if(ctem[0]=='1'&&ctem[1]=='1'&&ctem[2]=='0') c='4'; if(ctem[0]=='1'&&ctem[1]=='1'&&ctem[2]=='1') c='5'; if(ctem[0]=='1'&&ctem[1]=='0'&&ctem[2]=='1') c='6'; returnc; } /*mod2加*/ voidmod2(unsignedchardividend[],unsignedchartem[],unsignedcharremainder[]) { unsignedintk; for(unsignedintj=1;j<5;j++) { unsignedchartem1[3]; unsignedchartem2[3]; /*被除数对应到GF(2^3)扩域,增加三位都是'0'的情况*/ switch(dividend[j]) {case'1': for(k=0;k<3;k++) tem1[k]=GF[0][k]; break; case'a': for(k=0;k<3;k++) tem1[k]=GF[1][k]; break; case'0': for(k=0;k<3;k++) tem1[k]='0'; break; default: unsignedintn=dividend[j]-48; for(k=0;k<3;k++) tem1[k]=GF[n][k]; } /*gx各项乘以被除数的第一项系数后对应到GF(2^3)扩域,增加三位都是'0'的情况*/ switch(tem[j]) {case'1': for(k=0;k<3;k++) tem2[k]=GF[0][k]; break; case'a': for(k=0;k<3;k++) tem2[k]=GF[1][k]; break; case'0': for(k=0;k<3;k++) tem1[k]='0'; break; default: unsignedintm=tem[j]-48; for(k=0;k<3;k++) tem2[k]=GF[m][k]; } /*异或运算*/ unsignedcharctem[3]; for(k=0;k { if(tem1[k]==tem2[k]) ctem[k]='0'; else ctem[k]='1';} remainder[j-1]=math(ctem);/*匹配*/ } } /*多项式相除*/ voidpolynomial_division(unsignedchardividend[],unsignedcharremainder[],intflag) { unsignedchartem[5];unsignedinti,n=5; for(i=0;i { for_mod2(tem,dividend[0]); mod2(dividend,tem,remainder); /*准备下次除法的被除数,如果被除数的第一项为0则被除数数组左移一位,第一,二项都为0则停止*/ for(unsignedintj=0;j dividend[4]=dividend[n++]; if(dividend[0]=='0') { if(dividend[1]=='0')break; for(unsignedintk=0;k i++;n++; dividend[3]='0'; } } } /*求余式*/ voidcount_remainder(unsignedcharremainder[R]) { information_element(mx);unsignedchardividend[N]; count_dividend(dividend,mx); polynomial_division(dividend,remainder,K); } /*RS码映射成7个二进制3bit组,对应GF表*/ voidcreate_rsc(unsignedcharrsc[],unsignedcharremainder[],unsignedcharrsc_GF[N][K]) { unsignedinti,k; for(i=0;i<3;i++){rsc[i]=mx[i]; } for(i=3;i for(i=0;i { switch(rsc[i]) { case'1': for(k=0;k<3;k++)rsc_GF[i][k]=GF[0][k]; break; case'a': for(k=0;k<3;k++)rsc_GF[i][k]=GF[1][k]; break; case'0': for(k=0;k<3;k++)rsc_GF[i][k]='0'; break; default: unsignedintm=rsc[i]-48; for(k=0;k<3;k++)rsc_GF[i][k]=GF[m][k]; } } } /*BPSK映射: 符号‘1’映射成‘1’,符号‘0’映射成‘-’;注意: 符号‘-’输出为‘-1’*/ voidBPSK_mapping(unsignedcharrsc_GF[N][K],unsignedcharrsc_BPSK[N][K]) { unsignedinti,j; for(i=0;i {for(j=0;j {if(rsc_GF[i][j]=='1')rsc_BPSK[i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 循环 编码