卷积码实验教材_第1页
卷积码实验教材_第2页
卷积码实验教材_第3页
卷积码实验教材_第4页
卷积码实验教材_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、天津理工丸学卖验报告学院(系)名称:讣算机与通信工程学院姓名张彩云学号20135683专业信息与计算科学班级2013级1班实验项目卷积码的编译课程名称信息论课程代码0665066实验时间实验地点7号楼219批改意见成绩教师签字:实验目的:1、使用编程软件进行卷积码编译器的代码编写.运行.仿真等操作。2、熟练掌握相关软件、语句。3、理解卷积码编解码器的原理.知识实验原理:卷积码将k个信息比特编成n个比特,但k和n通常很小,特别适合以串行形式进行传输时延小。与 分组码不同,卷积码编码后的n个码元不仅与当前段的k个仁息有关,还与前而的-1段倍息有关,编码 过程中互相关联的码元个数为nN。卷积码的纠错

2、性能随N的增加而增大,而差错率随N的增加而指数下阶 程序编写:# i nc1ude#includeusing namespace std;class Juanj iCode pr i vate:int i. j. t;int nO. k0r rO, m;int *h.*H, *g.*G; /实现编码所需变呈int code;str ing 1nfo_str Codecstr;int total_num. extra_num;publ ic:void Initial izingO ;void Trans_h_to_H();void Trans_h_to_g();void Pr int_g();v

3、oid Trans_g_to_G();void Print_G(); /编码void Before Encoding() ;/编码前的准备int Check(stri ng); void Encoding();;void Juanj iCode: : Init ial izing()coutM请输入码字长nO=M;c i nnO:coutiW输入信息元个数k0=;c i nkO:coutM请输入关联长度m=;cinm: /监督元个数rO=nO-kO; /动态分配存储单元h=new int*rO:for(i=0:ir0;i+)hi=new intm*nO:coutM请输入(MnOM. Mk0w.

4、 Nm)卷积码的基本监督矩阵 hrOM wm*nO,J :endl;for(i=0;ir0;i+)for(j=0;jm*nO;j+)cinhij; /检测,输出 hcoutM您输入的基本监督矩阵 hl,rOM wm*nOt,如下:n”endl; for(i=0;ir0;i+)for (j=0:jm*nO:j+)couthi j;if(j+1)%n0=0)coutM ”;coutend I ;coutendl : /动态分配存储单元 H=new int*m*rO;for (i=0: i m*rO: i 卄)Hi=new i ntm*nO;g=new i nt*m*kO;for (i =0;i m

5、*k0;i+)gi=nev/ intnO;G=new int*m*k0;for (i=0: i m*k0; i 卄)Gi=new intm*n0; 由基本监督矩阵h导出一致监督矩阵H井打印输岀 void Juanj iCode: :Trans h to H() coutM该卷积码对应的一致监督矩阵HMm*rOHm*nOM如下(未输出部分全为0) : nnendl; for(t=0;tm;t+)for(i=0:ir0;i+)for(j=0;j(t+1)*n0; j+)Ht*r0+ij=hi(m-t-1)*n0+j;coutHt*rO+i j;if(j+1)%nO=O)coutH -jcouten

6、d I;coutend I; 由基本监督矩阵h导出基本生成矩阵g井打印输岀void Juanj iCode: :Trans_h_to_g()for (t=0;tm;t+)for(i=0:ik0;i+)for (j=0:j=kO)gk0*t+i j=hj-kO t*n0+i;elseif(t=m-1&i=j)gkO*t+i j=1;elsegk0*t+ij=0;Pr int_g ();void Juanj iCode: :Pr irvt_g()coutM该卷积码对应的基本生成矩阵g,m*kOH n0H如下:nHendl: for (i=0;i m*k0:i卄)for(j=0;jnO;j+) co

7、utgi j;if(i+1)%k0=0) coutend I ;coutend I ; 由基本生成矩阵g导出一致生成矩阵G井打印输岀 void Juanj iCode:Trans_g_to_G()for (t=0:tm;t+)for (i=0;i m*k0;i+)for (j=0;jnO;j+)if(i (t+1)*k0)Gi t*n0+j=g(m-(t+1)*k0+i j;elseGit*n0+j=0;Prints ();void Juanj iCode:Pr int_G() cout”该卷积码对应的一致生成矩阵如下(未输出部分全为0):nMendl; for (i =0:i m*k0:i卄

8、) for (j=0;jm*n0;j+) if(ji/kO*nO)coutlnfo_str;flag=Check(Info_str);if (! flag)cout-您输入的信息序列含除0、1外的其他字符,请重新输入!”endl; goto C:elsei f (total_numm*k0)cout您输入的信息元个数不足,无法进行编码,请重新输入!”endl; goto C:else if(totaI_num%k0!=0)cout您输入的信息序列存在冗余,无法进行编码,请重新输入!”endl; goto C:int Juan j i Code:Check (stri ng Info_str)i

9、rrt f lag=1;total_num=0;for (i=0;lnfo_stri! = 0,;i+)if (! (Info_str i =,0, | | Infostr i=1 *)flag=0;break;total_num+;/统计输入的0、1的数目return flag;void Juanj iCode:Encoding()Before_Encod i ng ();Code_str=NH;/前m个码组通过一致生成矩阵G编出for (i =0:i m*n0:i卄)code=0:for(j=0;jm*kO;j+) if(lnfo_strj=-r) code+=Gji;elsecode+=

10、0:if (code%2=0) Code_str+=,0,; elseCode_str+=1; /其余的码组由基本生成矩阵编出 extra_num 二total_num/kO-m;for (t=0:textra_num;t+)for (i=0:in0;i+)code=0:for (j= (t+1)*k0:j (m+t+1) *k0;j+) if (lnfo_str j = * 1) code+=gj-(t+1)*k0 i; elsecode+=0:if (code%2=0)Code_str+=0;elseCode_str+=*1; /输岀截短码组cout经编码后,得到如下序列:Mendl;fo

11、r (i =0;itotal_num/k0*n0;i+)coutCode_str i ;if(i+1)%n0=0) coutM cout Hend I;void main()JuanjiCode J_Code; char choice= 1;int flag=O;coutMnM ;whi le(choice!=,3) c:cout H* * 卷积码简易编码器 * * *nM :cout 1初始化 2编码 3退出rT;cout请输入您要操作的步骤:;cinchoice;if(choice二二1)if(!flag) /初次执行初始化操作flag=1;J_Code. I n i t i a I i

12、z i ng ();J_Code. Trans_h_to_H();J_Code. Trans_h_to_g();J_Code. Trans_g_to_G();else if(choice=,2)if (! flag)cout操作错误!请执行初始化操作后再进行本操作! ”endl;goto C: /编码J_Code. Encod ing ();else if(choice=3)ex i t (0) ;/退岀else/如果选了选项之外的就让用户重新选择cout您没有输入正确的步骤,请重新输入!endl;coutend I;运行结果/ 0【讦单厶延该卷积码对应的一致生成矩阵GI3H9如下(未输岀部分

13、全为0):111 010 001111 010111:2 息序列:1卷积码简易编码器001001经编码后,得到如下序列:300 & & 111 010 001 111 八卷积码简 易编 码器买“*“*“*!曰这次的实验是实现汉明码的编码与译码,达到纠错功能。通过信息论的课程,我基本了 解了汉明码编译的原理和方法,但在编程的过程中遇到了不小的困难。首先还是理解汉明码 概念的问题,因为还存在纠错的功能,所以汉明码的编码方式和以前学的哈夫曼编码或Fdn。编码比起来要复杂不少,开始的时候理解起来有些困难。不过通过仔细看PPT,很快就弄懂了汉明码的原理。但是最 开始编出来的程序运行的结果总是不正确,和书上的码字不一样,后来发现是在校验矩阵上 出了问题,自己对矩阵方面的知识一直把握得不是很好。经过

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论