RS纠错编码原理及其实现方法.pdf
RS纠错编码原理及其实现方法。Zhengzhou Oriole Xinda Electronic Information Cc., Ltd前言随着越来越多的系统采用数字技术来实现,纠错编码技术也得到了越来越广泛的应用。RS码既可以纠正随机错误,又可以纠正突发错误,具有很强的纠错能力,在通信系统中应用广泛。近些年来,随着软件无线电技术的发展,RS编码、译码一般都在通用的硬件平台上实现。通常采用基于FPGA的ⅦHDL编码硬件实现,或者在DSP、单片机上用C和汇编编程软件实现。RS纠错编码涉及的领域很广,特别是设计到很多数学知识。这对那些对数学不太感冒的工程技术人员来书是个不小的挑战。尽管讲RS编码的书籍很多但是那些书都是采用循序渐进,逐步引人的方式从汉明码到循环码,从循环码到BCH码,BCH码再引入悶S码。对亍工程技术人员他们需要的是简明扼要的讲解,和详细的实现方法。本人写这篇文章的宗旨就是尽量最简单的语言最简短的篇幅来讲RS纠错编码原理,把重点来放在实现方法上。为了便于读者仿真,本文采样MLAB程序实现,程序尽量符合硬件C语言写法,读者经过简单修改即可应用到工程中去。本文读者对象本文是为那些初识瑙编码的学生、工程技术人员而写,并不适合做理论研究,如果你是纠错编码方面的学者、专家,那么本文并不适合你。由于作者水平有限,错误在所难免,恳请读者批评指正。不得更改陈文礼2008-01于郑州Zhengzhou Oriole Xinda Electronic Information Cc., Ltd必备的一些代数知识1、在纠错编码代数中,把以二进制数字表示的一个数据系列看成一个多项式。例如二进制数字序列1010111,可以表示成:M(x)=ax+a5x0+a5不5+a+4 TasK +ax+a,x+ank式中的x表示代码的位置,或某个二进制数位的位置,X前面的系数表示码的值。若a;是一位二进制代码,则取值是0或1。dM()称为信息代码多项式多项式次数称系数不为0的x的最高次数为多项式/(x)的次数,记为Of(x)2、域域在R编码理论中起着至关重要的作用。简单点说域GF(2)有2设2个符号[0,n,a2…22且具有以下性质域中的每个元素都可以用a",a,a2,om的和来表示。a←la为本原多项式p(x)的根。运算规则有:在纠错编码运算过程中,加减、乘和除的运算是在伽罗华域中进行。现以GF(2)域中运算为例:加法例:a+a=0010+0110101(模2加法相当于0005与011或减法运算与加法相同乘法例:a·a0=a(8+10)modl5除法例:cs/a0=a-2=a-2+5=a不理解没关系,下面的例子也许对你有帮助。例:mF=4,p(x)=x4+x+1求GF(2")的所有元素因为a为p(x)的根得到a4+a+1=0或a4=a+1(根据运算规则)Zhengzhou Oriole Xinda Electronic Information Cc., Ltd由此可以得到域的所有元素元素二进制对应十进制对应码值000000101000a+100l⊥0110a(a+1)=a+a(mod p(a))12a(a+a=a+a(mod p(a)1011a(a+l(modula))+a+1)10C(a+1=a+a(mod p(a )a(a23+a)a+I(mod p(a)1110a(a+a+D=aa+a(modp(a)tatI(mod p(a))11a(a3+a2+a+1)=a34a2+1(modp(a)1001a(a+a+1=a+l(mod p(a)a(a+1=l(mod(a))由此可以看岀本原多项式是求解域的全部元素的关键。读者也许会有这样的疑问我们如何得到p(x)呢?本原多城式p(x)的特性是2+得到的余式等于0O(X由于作者也是工程技术人员,具体怎么得到p(x),也没有深究过。Zhengzhou Oriole Xinda Electronic Information Cc., Ltd作者在设计RS编码时候都是根据 MATLAB指令rsgeηpoly来得到p(x)。其格式为 rsgenpoly(n,k)参数n为码长一般n=2"-1,k为信息码元个数。例如m4,码长n=15,信息码元长度为9GF(2)的本原多项式可以根据指令>>rsgenpoly(15, 9)得到ans= GF(2 4)array. Primitive polynomial =D 4+D+1 (19 decimal)有读者来信问:我要做一个(158的RS编码,在 MATLAB中输入命令 rsgenpoly(158,128),结果MAB报错Error using =- rsgenpolyN must equal 2m-1 for some integer m这里做一下解释我们S编码时普先要根据码长选取mλ选择原则是2若码长为6那么我们可以选择n=8, rsgenpey命令的第少个参数必须为2"-1,第二个参数司以随便选择只要小于2”-1就形了在此给出m∈(2,16)的所有本原多项式(m=2)P[m+1]={1,1,1}/米1+x+x3*/P[m+1]-{1,1,0,1}/米1+x+x4*/P[m11]={1,1,0,0,1}/米1+x2+x5*/P|m+1={1,0,1,0,0,1};Zhengzhou Oriole Xinda Electronic Information Cc., Ltd(m=6)/米1+x+x6*/P[m+1]={1,1,0,0,0,0,1}7)/来1+x3+x7*P[m+1]={1,0,0,1,0,0,0,1}(m=8)/米14x2+x31x4+x8*/P[m+1]-{1,0,1,1,1,0,0,0,1/*1+x4+x9半P[m1]={1,0,0,0,1,0,0,0,(m=10)/1+x3+x10*/P|m+1={1,0,0,1,0,0,0,0,/*1+x2+x11P[m+1]={1,0,0,0,0,0,0,1}(m=12)/*1+x+x4+x6+x12P[m+1]-{1,1,0,0,、1,0,0,(m=13)/*1+x+x^3+x4+x^13*/P[m+1]={1,1,0,1,1,0,0,00,0,1};(m=14)/*1+x+x6+x10+x14来P[m+1]={1,1,0,0,0,0,1,0,0,0,1,0,0,0,1}(m=15)/米14x+x15*/P[m+1]={1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1};(m=16)/*1+x+x3+x12+x16*/P[m+1]={1,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1};Zhengzhou Oriole Xinda Electronic Information Cc., Ltd二、线性分组码的一些基本概念1、线性分组码一般用(n,)或(n,k,d)表示n为码长,k为信息码元的数目,n-k为监督码元的数目。d表示码元距离。定义:两个码组上对应位置上数字不同的个数称为码组的距离。发送的码字C=(1,C2C3,…C接收的矢量r=(,2,信道错误图样:e=c+r例如c=(1,1,0,0,0)(1,0,001)e=(1+1,1+0,0+0,0+0,0+1)(0,1,0,0,1)从而可以看出从左端起第2位和第5位是错误的2、校验矩阵概念码长为n,信息数为k,监督数为r。这样的一组码形式为:m:m2,P,P2Pm表示第个信息码,P表示第j个校验码各个校验码可从下列线性方程组求得hm+h2m2+…+n+1B1+012+0h2m1+2m2+…+h2m+0p1p20hmn+h,2m2+…+hm+O+0+…+1p,=0式中h;是常数校验方程组可写成校验矩阵100h21h2…,h2k010h000该矩阵具有r行和n列故式(1-1)可以写成c=0或c=08Zhengzhou Oriole Xinda Electronic Information Cc., LtdH矩阵称为[n,k,r码的校验矩阵。发送矢量为C接收矢量为F若rH≠0则说明接收到的码有错误。设错误图样为e则可写成以下关系式r=c+e为了纠错必须知道那些位上存在错误。这可由校正子(又称伴随式)s来确定s=rH=cH +eh=eh译码器的主要任务就是如何从中得到最像e的错误图样e从而译出c=r-e设第讠个是错误的因此e=(00..0第个有错误s=rH=(00…0、100000)00计算出的矢量示出i是出错误的位置。3、生成矩阵概念生成矩阵G,它是一个k行,n列的矩阵若已知信息组m,通过生存矩阵可求得相应的码字。c=mxG(m是k个信息元组成的信息组)这个应该比较容易理解,在此就不做过多解释。、RS码的一些重要性质1、RS码生成多项式:码长n=2”-1,监督元数目r=n-k=2t,能纠正t个错误。Zhengzhou Oriole Xinda Electronic Information Cc., Ltd定义:在(n,k,d)的RS码中,存在唯一的n-k次多项式g(x),使得每一个码多项式c(x)都是g(x)的倍式。g(x)称为n,k,d]RS码的生成多项式一般情况下g(x)=(x-a)(x-a2)…(x-a2)2、定理:在GF(2m)中,每个非0元素(1,a,a2…a22)均满足x2=1,反之x21-1=0的根必在GF(2")中。所以x-1=(x-a)(x-a)x3、RS码的校验多项式由于生成多项式g(x)是x-1的因式g(rh(g(x)为n-k次多项式,则h(x)为k次多项式,k3x+g)hx+…+x+4)由右式可以看出x"1,x2,x的系数均等于0即gg0010h1+g1bo=0g0h+g1h11+…+8nkh2(2k)=0∴.+n-kk-10n-kk式中g0+81h1+…+8nkh1(n=k)(表示X的系数10
- 2020-12-08下载
- 积分:1
8个数据库设计典型实例
人事管理系统 工资管理系统 考勤管理系统 员工培训管理系统 仓库管理系统内部行文管理 销售管理系统 酒店管理系统由于数据库设计的重要性,人们提出了许多数据库结构设计的技术。但这些设计方法和设计者的工作经验有很大的关系。因此要从根本上解决所有数据库结构设计的问题,就需要多实践,在实饯中积累经验和教训,最终成为数据库结构设计的专家、数据库需求分析数据库结构设计的第个阶段,也是非常重要的个阶段是数据库需求分析。在这个阶段主要是收集基本数据以及数据处理的流稈,为以后进一步设计打下基础。需求分析主要解决两个问题:内容要求。调査应用系统用户所需要操作的数据,决定在数据库中存储什么数据。●●处理要求。调査应用系统用户要求对数据进行什么样的处理,理淸数据库中各种数据之间的关系。解决这两个问题的时候,程序编制人员需要冋应用系统用户详细调査,保证信息收集的完整性。否则有可能后面所有的工作都白费。在数据库需求分析后,应该得到一个数据字典文档,包括3方面内容●数据项。包括名称、含义、类型、取值范围、长度以及和其他数据项之间的逻辑关系数据结构。若十个数据项的有意义的集合,包括名称、含义以及组成数据结构的数据项●●数据沇。指薮据中数据的处理过程,包括输入、处理和输岀这个数据字典在程序的开发过程中会不断发生变化。对于一个大型的软件开发过程,般都需要一份详尽的数据字典针对本实例,通过对企业员工管理内容和过程分析,设计的数据项和数据结构如下●员工基本情况。包括的数据项有员工号、员工姓名、性别、所在部门、身份证号、生日、籍贯、国籍、民族、婚姻状況、健康状况、政治面貌、参加时间血型、参加工作时间、员工状态、状态时间、家庭住址、联系电话等工婚姻状况。包括的数据项有员工号、爱人姓名、爱人出生年月、结婚时间、爱人工作单位、爱人攻治面貌、爱人上作职务等员工学历信息。包括的数据项有员工号、学历、专业、毕业时间、毕业学校学校类型、外语1、外语1等级、外语2、外语2等级等。企业工作岗位信息。包括的数据库项有工作岗位代号、工作岗位名称、工作岗位杈力范围等。●企业部门信息。包括的数据项有部门代号、部门名称、部门经理、部门副经理等有了上面的数据结构和数据项基础,我们就能进行下面的数据库设计了。二、数据库概念结构设计这一设计阶段是在需求分析的基础上,设计出能够满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。这个阶段不用考虑所采用的数据库管系统、操作系统类型、机器类型等问题。这阶段可用的工具很多。用的最多的是ER图( Entity-Relation,实体-关系图),另外还有许多计算机辅助工具( Computer Aided Software Engineering,CASL)可以榘助进行设计本书的实例都是采用ER图的方法来进行数据库概念结构设计,在本书的第一个例子中先对ER图的方法进行简单介绍。E-R图是描述数据实体及其关系的一种直观的描述工具。这种图中有:实体。用方框表示,方框内为实体的名称。实体的各种属性。用椭圆表示,椭圆内为属性名称。使用线段将其和相应的实体连接起来。实体之间的联系。用菱形表示,菱形内为联系的名称。实体和实休之间的联系较多,比较常见的联系有1:1、1n和m:n这3种。●1:1。对于实体A构成的集合中每个实体,在实体集合B中至多只有一个实体与之相对应,反之亦然,称实体集合A和实体集合B之间是1:1的关系。1:n。对于实体A构成的集合中每个实体,在实体集合B中有n(n>0)个实体与之相对应,且对于实体集合B中的每个实体,在A中最多只有一个实体与之相对应,称实体集合A和实体集合B之间是1:n关系。m:n。对于实体A构成的集合中的每个实体,在实体集合B中有n(n>0)个实体与之相对应且对于实体集合B中的每个实体,在A中有m个实体与之相对应,称实体集合A和实体集合B之间是mn关系图2为员工实体E-R图。员工员工基本信息员工学历信息员工婚姻状况图2员工实体ER图图3为部门实体E-R实例工资管理系统工资管既是企业劳动人事管理的重要方面,同吋也是企业财务管理的重要方面,因为它是和人、资都相关的方面。工资管理需要和员工人事管理连接,同时连按工时考勤和医疗保险等等,来生成企业每个职工的基本工资、津贴、医疗保险、保险费、实际发放工资等工资管珥是一项琐碎、复杂而又十分细致的工作,一般不允许发生差错。手工进行工资发放工作,需要反复地进行抄写、计算,不仪花费财务人员大量的吋间,而且往往由于抄写不慎,出现张冠李戴,或者由于计算机的疏忽,岀现工资发放错误的现象。同时工资的发放具有较强的时间限制,必须严格按照单位规定的时间完成计算和发放工作。正是工资管理的这种重复性、规律性、时冋性,使得工資管计算札化成为可能。计算杋进行工资发放工作,不仅能够保证工资核算正确无误、快速输出,而∏还可以利用工资数据厍对有关工资的各种信息进行统计,服务于财务部门其他方面的核算和财务处理。不同的企业有着不同的人事制度、财务制度,也就决定了不同的企业具有不同的工资制度。本例按照一般企业都采用的工资计算公式,即根据员工的职务工种来确定基本工资,根据岀工情况来扣除缺勤镄,根据加班情况发放沣贴,根据医疔倸险费用给予报销费用,同时扣除社公保险费来生成一个员工的当月工资。第一节第一节系统设计系统目标设计系统开发的总体任务是实现企业员工工资管理的系统化、规范化和自动化。能够和人事管理系统、考勤管理系统相结合,真正实现企业髙效、科学、现代化的员工管理。二、开发设计思想尽量采用公司现有软硬件环境,及先进的管理系统开发方案,从而达到充分利用公司现有资源,提高系统开发水平和应用效果的目的。系统应符合公司工资管理的规定,满足公司工资管理工作需要,并达到操作过程中的直观、方便、实用、安全等要求。系统采用C/S体系结构, Client(客户端)负责提供表达逻辑、显示用户界面信息、访问数据库服务器; Server(服务器端)则用于提供数据服务。·系统采用模块化程序设计方法,既便于系统功能的各种组合和修改,又便于未参开发的技术维护补充、维护。系统应具备数据库维护功能,及时根据用户需求进行数据的添加、删除、修改、备份等操作。三、系统功能分析工资管理涉及企业箮理的多个方面,如员工职务工种变化、员工考劐情况、员工加班情况、员工医疗保险等等。根据这些信息,在每个月的某个固定时间,生成企业全体员工的月工资。对于月工资,能够实现按照员工、部门、月、年进行统计分析,产生相应报表。工资管理的特点是所关联的方面比较多,信息处理量比较大。因此对于本系统的设计,需要采取了下面的些原则在公司范围内统一各种原始单据的格式,统一联日和报表的格式。删除不必要的管理余,实现管理规范化、科学化程序代码标准化,软件统一化,确保软件的可维护性和实用性能够连接各个关联的数据库,获取数据库中的信息。保证各个数据库表格相关的项目之间具有相同的属性。在上面设计原则的基础上,完成系统功能分析。本例中的工资管理系统需要完成功能主要有:员工每个工种基本工资的设定。加班津贴的管理。根据加班的时间和类型给予不同的加班津贴根据月工资生成公式,按照员工的考勤情况和工作表现,生成员工月工资。员⊥年终奖金的生成企业工资报表的生成。支持各种不同形式的报表,如单个员工工资报表生成部门员工工资报表生成、按照月份统计工资报表等。工资管系统的使用帮助。四、系统功能模块设计在系统功能分析的基础上,考虑 Power Builder程序编制的特点,得到如图1所示的系统功能模块图。工资管理系统系统模块工资生成模块津贴管理模块医疗保险模块报表生成模块帮助模块图1系统功能模块图五、工资管理系统和企业中其它系统的关系工资管理系统是全企业信息管理系统的一个有机组成部分。它与企业中其他系统之间的关系如图2所示。⊥资生成⊥资生成财条管工资管理升迁离职考勤情况财务管理考勤管理人事管理图2和企业中其他系统之间的关系第二节数据库设计数据库需求分析在仔细调査企业工资管理过程的基础上,得到系统所要处理数据的流程如图3所小。年奖计算企业年度效益年终奖佥公式设定员工考勤加班津贴工资计算公式设定月工资生医疗保险基本工资图2和企业中其他系统之间的关系针对本实例,通过对企业工资管理的内容和数据流程分析,设计的数据项和数据结构如下●·员工考勤统计信息。包括的数据项有缺勤时间、缺勤天数、缺勤类别等。这些信息可从考勤管理系统的数据库中统计获取。员工工种等级信息。包括的数据项有工种等级、工种基本工资等员工津贴信息、。,包括的数据项有加班时问、加班类别、加班大数等。员工医疗保险信息。包括的数据项有医疗保险时间、医疗费用保险、社会保险费用等。员工基本信息。包括的数据项有员工号、员工姓名、员工工种、员工所属部门等。员工月工资信息、。包括的数据项有生成工资的时间、基木工资、缺勤扣除、加班费用、医疗保险费、月应发工资等员工年终奖金信息。包括的数据项有年份、员工的年终奖金数额等有了上面的数据结构、数据项和数据流程,就能进行下面的数据库设计了。二、数据库概念结构设计本实例根据上面的改计规划岀的实体有:考勤信息实体、津贴信息实体、医疗休险信息实体、员工基本信息实体、月工资实体和年终奖金实体。各个实体的FR图以及实体和实体之间的关系E-R图描述如下。图4为员工基本信息实体ER图。实例考勤管理系统考勤管理既是企业劳动认识管理的重要方面,同时也是企业财务管理的重要方面,因为它是和人、事都相关的方面。考勤管理系统需要和员工人事管理连接,同时需要连接工资管理系统等等,用语完成员工的升迁、工资、津贴、医疗保险、保险费、实际发放工资等第一节系统设计系统目标设计系统丌发的总体任务是实现企业员⊥考勤管理的系统化、规范化、和自动化能够和人事管理系统、工资管理系统相结合,真正实现仝业髙效、科学、现代化的员工管理二、开发实际思想尽量采用公司现冇软硬件环境,及先进的管理系统开发方案,从而达到充分利用公司现有资源,提高系统廾发水平和应用效果的目的●员工考劐管珅系统能够和考動杋相连接,从而完成自动、高效、科学的考勤信息输入●系统采用模块化程序设计方法,既便与系统功能的各种组合和修该,又便于未参与开发的技术维护人员补充、维护●系统应具备数据库维护功能,即使根据用户需求进行数据的添加、删除、修改、被分等操作。系统功能分析考勤管理涉及企业人事管理的多个方面,如员⊥职务升迁、⊥资发放、兴金发放、员⊥医疗保险发放等等。本利自重的考勤管理系统需要完成功能主要有以下几点。●●员工考勤信息处理。该莫完成员工考勤情况的输入、修改等操作。如果企业內有考勤机,可以将它的输岀处理后,形成考勤管理系统考勤模块的输入。企业缺勤类刑的设定。企业考勤统计。该模块可对某个员工进行考勤情况的统计,生成统计报表四、系统功能模块设计在系统功能分析的基础上,考虑 PowerBuilder程序编制的特点,得到如图1所小的系统功能模块图。考勤管理系统考缺报系勤表图1系统功能模块如图五、考勤管理系统和企业中其他系统的关系考勤管理袭击仝全业信息管珄系统的一个有机组成部分。他与企业中替他系统之问的关系如图2所示。工资管理L考勤情况考勤管理人事管理考勤情况图2和企业中其他系统之间的关系第二节数据库设计数据库需求分析在仔细调査企业考勤管理过程的基础上,得到系统所要处理数据的流程如图3所示。人员考勤企业手工输入考勤信息其他考勤机输入信息统计信息数据库报表管理数据维护生成系统图数据流程图针对本实例,通过对企业考勤管理的内容和数据流程分析,设计的数据项和数据结构如员工考勤信息。包括的数据项有员工号、缺勤时间、缺勤天数、缺勤类别等缺勤类别信息。包括的数据项有缺勤类别、名称、描述等。员工基本信息。包括的数据项有员工号、员工姓名、员工工种、员工所属部门等有了上面的数据结构、数据项和数据流程,就能进行下面的数据库设计数据概念结构设计木实例根据上面的设计规划出的实体有:考勤信息实体、员工基木信息实体、缺勤类型实体。各个实体的ER图以及实体和实体之间的关系ER图描述如下图4为员工基本信息实体ER图。员工基本信息员工号姓名员工部员工职务图4员工基本信息实体ER图图5为考勤信息实体E-R图考勤信息员工号姓名缺勤天数缺勤类别时间、原因图5考勤信息实体F-R图图6为缺勤类型实体F-R图缺勤类型类别名称描述图6缺勤类别实体ER图实体和实体之间的关系ER图如图7所小。员工具有1考勤信息属于1:缺勤类型图7实体之间关系ER图数据库逻缉结构设计在上面的实体以及实体之间关系的基础上,形成数据库中的表格以及各个表格之间的关系考勤管理体统数据库中各个表格的设计结果如下面的几个表格所小。没高歌表小在数据库中的一个表。表1为考勤管理表kp表考勤管理表格列名数据类型可否为空Emp-noVARCHAR2(6NOTN ULL员工号(主键—一)qq-dateVARCHAR2(6)NOTNUL L时间(主键二)qq-daynumberNUMBERQ, 1)NULL缺勤天数qq-IlbVARCIIAR2(3)NULL缺勤类别
- 2021-05-06下载
- 积分:1