当前位置:文档之家› 课程论文模板及选题

课程论文模板及选题

青岛农业大学本科生课程论文论文题目 q元循环码编译在MATLAB中的实现学生专业班级信息与计算科学1202 学生姓名(学号) xxx(20120001) 指导教师辛永训完成时间 2015.07.182015年07月18日课程论文任务书学生姓名 xxx 指导教师辛永训论文题目 Q元循环码编码的MATLAB实现论文内容(需明确列出研究的问题):本文从定义、性质以及校验距阵和生成距阵各方面介绍了循环码,并以多项式的整除、多项式的生成距阵为基础,通过有限域上Q元循环码(包括系统码与非系统码)的性质给出了其在MATLAB中的实现过程,有效的体现了循环码的代数结构。

(论文主要内容)资料、数据、技术水平等方面的要求:掌握Q元循环码的概念和性质,充分了解Q元循环码的编码和译码原理,通过自己掌握的数学软件MATLAB实现对其的编译。

通过上网搜索一些学术期刊、论文,查阅一些相关资料,从多方面加深了解Q元循环码。

(你为了完成这篇论文都做了哪些准备)发出任务书日期2015.06.29 完成论文(设计)日期 2015.07.18 学科组或教研室意见(签字)院、系(系)主任意见(签字)目录(根据内容适当安排)中文摘要 (I)Abstract (II)1 前言 (1)2 (2)3 (3)3.1 (4)3.2 (5)4 (6)4.1 (7)4.2 (8)4.2.1 (9)4.2.1.1 (10)4.2.1.2 (12)5 总结 (13)参考文献 (14)附录A (15)Q元循环码编码的MATLAB实现信息与计算科学专业 xxx指导教师辛永训摘要:循环码是一类非常重要的线性码,是由E.Prange于1957年首先进行研究的。

循环码不仅在理论上具有很好的代数结构,而且其编码和译码都可以很容易的利用线性移位寄存器来实现。

本文从定义、性质以及校验矩阵和生成矩阵各方面介绍了循环码,并以多项式的整除、多项式的生成矩阵为基础,通过有限域上Q元循环码(包括系统码与非系统码)的性质给出了其在MATLAB中的实现过程,有效的体现了循环码的代数结构。

关键词:循环码;生成矩阵;校验矩阵Q Elements Cyclic code in MATLAB Compiler Student majoring in Information and Computing Science Zhao YucccTutor Xin YongxunAbstract:(论文的主要内容,用英文简要写出即可,不能用网上翻译)Cyclic code is a kind of very important linear code, by E. Prange, in 1957, the first study. Cyclic code is not only good in theory, algebraic structures, but also the encoding and decoding can be very easy to use linear shift register to achieve. In this article, by definition, nature and calibration matrix and the formation of the matrix introduced a recycling code, and the polynomial divisible, the formation of polynomial-based Matrix, through limited domain Q Elements cycle of code (including the system Code and non-code system) is given the nature of its MATLAB in the process of achieving effective code reflects the cycle of algebraic structure.Key Words: Cyclic code; generated matrix; check matrix1 引言循环码是一类非常重要的线性码,是由E.Prange于1957年首先进行研究的。

由于循环码在理论上具有很好的代数结构,其编码及伴随式的计算,在硬件上可以用线性移位寄存器(linear shift register)来实现,在软件上可用计算机指令中的一位、判别、模加等来完成。

目前已发现的大部分线性码譬如二元Hamming码及其对偶码等与循环码有密切的关系,其中大部分码都可归结为循环码。

由于循环码具有码的代数结构清晰、性能较好、编译码简单和易于实现的特点,因此在目前的计算机纠错系统中所使用的线性分组码几乎都是循环码。

Q 元循环码具有很高的研究价值。

本文的主要工作是用MATLAB虚拟实现其编码过程。

2 循环码的定义和性质2.1 循环码的定义设C属于V(n,q)是一个线性码,如果C的任意一个码字的循环移动还是一个码字,即若(…)属于C,则(…)、(…)、……还是属于C,则称C是一个循环码。

2.2 循环码的性质1.封闭性循环码码组的线性和还是循环码码组。

2.循环性码字集合或者说码组中任意一个码字的循环移位得到的序列仍是该码字集合中的码字。

3 循环码的生成矩阵与校验矩阵3.1 循环码的生成矩阵循环码的生成矩阵可以很容易地由生成多项式得到。

我们知道,循环码的码组多项式是生成多项式g(D)的倍式,且根据线性码的生成矩阵的特性,(n,k)码的生成矩阵实际上可以由(n,k)码中k个不相关的码组构成。

1.非系统码的生成矩阵输入信息码元为时,相应的循环码组多项式为:2.系统码的生成矩阵在系统码中,系统码的生成矩阵必须为典型形式[Ik Q]。

其中Ik为单位矩阵。

循环码码组应该具备如下的形式:其中,的次数小于等于n-k-1。

3.2 循环码的校验矩阵循环码的校验矩阵可由得到,称为生成多项式,称为校验多项式,其中所以,如果生成矩阵是则校验矩阵为:它由的系数确定。

两者满足。

4循环码的编码循环码有两中非常直接的编码方法:一种是非系统的,另外一种是系统的。

4.1 循环码的系统的编码方法对任意信源信息向量 011,,,(,)n r a a a V n r q --∈-,构造信息多项式 011()^1^2^n r a x a x n a x n a x r --=-+-+用g(x)去除()a x 得到()a x =q(x)*g(x)+r(x)(其中deg(r(x))<deg(g(x))=r ), 则信源信息向量011n r a a a --∈V(n-r, q)被编码为循环码C 中的码字: c(x)= q(x)*g(x)=()a x -r(x) (其中g(x)是C 的生成多项式)4.2 循环码的非系统的编码方法对任意信源信息向量011,,,(,)n r a a a V n r q --∈-,构造信息多项式 101()n r n r a x a a x a x ---=+++。

这个多项式对应于循环码c 中的一个码字 ()()c a x g x =。

因此,信源信息向量011,,,(,)n r a a a V n r q --∈-被编码为()()c a x g x =。

4.3 循环码编码的算法程序4.3.1系统编码的算法程序Step1 输入生成多项式g ,信源信息h ,码长n ,有限域 q ;Step2 由信源信息h 构造信息多项式h';Step3 调用整除,求余式D=g|h';Step4 编码c=h+D 。

4.3.2非系统编码的算法程序Step1 输入生成多项式 g ,信源信息h ,码长n ,有限域 q ; Step2 由g 构造生成矩阵G ;Step3 编码,矩阵相乘 *c h G =,则c 即为所要编的码字。

4.4 MATLAB 程序function [U1,U2]=bm(g,v,n,q) % 系统编码m1=length(g);m2=length(v);V1=zeros(1,m2);H2=zeros(n-m1+1,n);for i=1:m2V1(i)=v(m2+1-i);end % 系统编码A1=[g,zeros(1,n-m1)];B1=[zeros(1,n-m2),V1];[D,E]=zc( A1,B1,q);U1=mod(B1-D,q);for l=1:n-m1+1 %非系统编码H2(l,l:m1+l-1)=g;endU2=mod(v*H2,q)我们以四元域上码长为7的循环码为例给出MATLAB的实现过程>>n=7;q=4;>>[G,H]=jz(n,q)结果如下:G =1 0 0 0 0 0 0 03 1 0 0 0 0 0 03 1 2 1 0 0 0 03 2 3 1 0 0 0 01 2 3 1 1 0 0 01 1 32 1 0 0 01 1 1 1 1 1 1 0H =1 0 0 0 0 0 0 03 1 0 0 0 0 0 03 1 2 1 0 0 0 03 2 3 1 0 0 0 0G 中是X7-1的所有因式,H 中是不可约因式;可以看出多项式X7-1的除去本身共有7个因式,4个不可约因式。

即2323+++++++1,3,32,323x x x x x x x3+x+2x+x作为生成多项式,对四元信源空间上的信源信息向量进我们取23行编码。

在程序(1)中输入>>g=[3 1 2 1]; v=[2 2 2 3];n=7;q=4;>>[U1,U2]=bm(g,v,n,q)U1 =1 3 0 32 2 2U2 =2 0 0 1 1 0 3U1 输出的是系统编码,U2 输出的是非系统编码。

即对 2223 系统编码为 1303222 采用非系统编码,编码为 2001103输出3元域上码长为4特定生成多项式的所有循环码首先寻找一个生成多项式g(X),同上例,[H,G]=jz(4,3)H =1 0 0 0 01 1 0 0 02 1 0 0 01 0 1 0 0选择 (2 1 0 0 0),即()2g x x =+,由()g x 生成的循环码所有码字(共 33个码字)。

如下表:R =0 0 0 00 0 2 10 0 1 20 2 1 00 2 0 10 2 2 20 1 2 00 1 1 10 1 0 22 1 0 02 1 2 12 1 1 22 0 1 02 0 0 12 0 2 22 2 2 02 2 1 12 2 0 21 2 0 01 2 2 11 2 1 21 1 1 01 1 0 11 12 21 02 01 0 1 11 0 0 25总结循环码是线性分组码中最重要的一个重要子类,是目前研究得比较成熟的一类码。

相关主题