奇偶校验码matlab程序

合集下载

《MATLAB编程与系统仿真》课程设计报告书

《MATLAB编程与系统仿真》课程设计报告书

《MATLAB编程与系统仿真》课程考核说明1、考核方式及考核时间综合性仿真及报告书(60%)+实验成绩(30%)+平时成绩(10%),其中实验成绩包括实验和报告。

《MATLAB编程与系统仿真》课程是一门实践性比较强的课程,采用传统的试卷考核方式无法体现学生对MATLAB的掌握和应用程度、程序调试能力等。

鉴于此情况,本课程考核以“综合性仿真及报告书+实验成绩+平时成绩“形式进行,综合性仿真考核学生对MATLAB编程语言的掌握程度和运用MATLAB 解决实际问题的能力,并通过报告书的撰写锻炼学生科技文档写作能力。

考核内容及要求见附件1。

考核时间:程序电子档及纸质报告书提交截止时间为第12周星期三12:00。

2、评分标准:报告各项目认真填写,仿真结果正确,具有清晰的设计思路及仿真结果分析。

(90-100)报告各项目认真填写,仿真结果基本正确,具有较为清晰的设计思路并对仿真结果进行了较为清晰的分析。

(80-89)报告各项目认真填写,设计思路正确,能得到仿真结果。

(70-79)报告进行为较为认真的填写,有设计思路。

(60-69)报告有未完成项或各项填写不属实或他人代做或抄袭。

(<60)注:所提交的材料包括报告书和完成的程序源代码,若报告书或程序源代码出现雷同,以0分计。

(报告格式见附件2)课程主讲教师:教研室:信息科学与工程学院:附件1考核内容及要求1、每个学生以自己的学号建立子文件夹,所有程序、数据均放入该子文件夹中;2、共三个题目分别为题目A,题目B,题目C, i=1:11学号后两位为 (i-1)*3+1 的同学完成题目A学号后两位为 (i-1)*3+2 的同学完成题目B学号后两位为 (i-1)*3+3 的同学完成题目C3、编写一个脚本主程序命名为:Amain.m(题目B用Bmain.m,以此类推)调用其它的函数完成全部要求功能;其余函数或数据文件的命名以A字母开始后接自己学号的后10位再加上一个一位的序号,如学号为631206040101的同学,除主程序之外另有两个文件(函数或数据文件),则分别命名为A12060401011和A12060401012;题目A随机生成n个(0,1)之间的数,学号为单数的同学将大于等于0.5的变为1,小于0.5的变为0得到一个n位的01序列(n取你学号的后三位所组成的整数)并对对生成的序列加奇校验码;学号为偶数的同学将大于0.4小于0.6的数的变为1,其余的变为0得到一个n位的01序列(n 取你学号的后三位所组成的整数) 并对生成的序列加偶校验码;假设1个符号的持续时间Tb=0.001s,载波1频率为5KHz,载波2频率为10KHz,试对生成的随机01序列进行2FSK 调制,并在同一图形界面上画出调制信号,已调波形(前10个二进制位)及调制之后功率谱图;设计两个带通滤波器将上述生成的2FSK信号分解成两个2ASK信号,并分别画出信号波形(前10个二进制位)。

奇偶校验码、海明校验码和循环冗余校验码(CRC)

奇偶校验码、海明校验码和循环冗余校验码(CRC)

奇偶校验码、海明校验码和循环冗余校验码(CRC)奇偶校验码是 奇校验码 和 偶校验码 的统称.它们都是通过在要校验的编码上加⼀位校验位组成.如果是 奇校验 加上校验位后,编码中1的个数为 奇数个如果是 偶校验 加上校验位后,编码中1的个数为 偶数个⽔平奇偶校验是将若⼲字符组成⼀个信息块,对该信息块的字符中对应的位分别进⾏奇偶校验,下表给出了⽔平奇偶校验⽰例。

例:原编码 奇校验 偶校验0000 0000 1 0000 00010 0010 0 0010 11100 1100 1 1100 01010 1010 1 1010 0如果发⽣ 奇数 个位传输出错,那么编码中1的个数就会发⽣变化.从⽽校验出错误. 要求从新传输数据.⽬前应⽤的 奇偶校验码 有3种.⽔平奇偶校验码对每⼀个数据的编码添加校验位,使信息位与校验位处于同⼀⾏.垂直奇偶校验码把数据分成若⼲组,⼀组数据排成⼀⾏,再加⼀⾏校验码.针对每⼀⾏列采⽤ 奇校验 或 偶校验例: 有32位数据10100101 00110110 11001100 10101011垂直奇校验 垂直偶校验数据 10100101 1010010100110110 0011011011001100 1100110010101011 10101011校验为00001011 11110100⽔平垂直奇偶校验码就是同时⽤⽔平校验和垂直校验例:奇校验 奇⽔平 偶校验 偶⽔平数据 10100101 1 10100101 000110110 1 00110110 011001100 1 11001100 010101011 0 10101011 1校验 00001011 0 11110100 1然后是 海明校验码海明码也是利⽤奇偶性来校验数据的.它是⼀种多重奇偶校验检错系统,它通过在数据位之间插⼊k个校验位,来扩⼤码距,从⽽实现检错和纠错.设原来数据有n位,要加⼊k位校验码.怎么确定k的⼤⼩呢?k个校验位可以有pow(2,k) (代表2的k次⽅) 个编码,其中有⼀个代表是否出错.剩下pow(2,k)-1个编码则⽤来表⽰到底是哪⼀位出错.因为n个数据位和k个校验位都可能出错所以k满⾜ pow(2,k)-1 >= n+k设 k个校验码为 P1,P2…Pk, n个数据位为D0,D1…Dn产⽣的海明码为 H1,H2…H(n+k)如有8个数据位,根据pow(2,k)-1 >= n+k可以知道k最⼩是4那么得到的海明码是H12 H11 H10 H9 H8 H7 H6 H5 H4 H3 H2 H1D7 D6 D5 D4 P4 D3 D2 D1 P3 D0 P2 P1然后怎么知道Pi校验哪个位呢.⾃⼰可以列个校验关系表海明码 下标 校验位组H1(P1) 1 P1H2(P2) 2 P2H3(D0) 1+2 P1,P2H4(P3) 4 P3H5(D1) 1+4 P1,P2H6(D2) 2+4 P2,P3H7(D3) 1+2+4 P1,P2,P3H8(P4) 8 P4H9(D4) 1+8 P1,P4H10(D5) 2+8 P2,P4H11(D6) 1+2+8 P1,P2,P4H12(D7) 4+8 P3,P4从表中可以看出P1校验 P1,D0,D1,D3,D4,D6P2校验 P2,D0,D2,D3,D5,D6P3校验 P3,D1,D2,D3,D7P4校验 P4,D4,D5,D6,D7其实上表很有规律很容易记要知道海明码Hi由哪些校验组校验可以把i化成 ⼆进制数 数中哪些位k是1,就有哪些Pk校验如H7 7=0111 所以由P1,P2,P3H11 11=1011 所以由P1,P2,P4H3 3=0011 所以由P1,P2那看看Pi的值怎么确定如果使⽤偶校验,则P1=D0 xor D1 xor D3 xor D4 xor D6P2=D0 xor D2 xor D3 xor D5 xor D6P3=D1 xor D2 xor D3 xor D7P4=D4 xor D5 xor D6 xor D7其中xor是异或运算奇校验的话把偶校验的值取反即可.那怎么校验错误呢.其实也很简单. 先做下⾯运算.G1 = P1 xor D0 xor D1 xor D3 xor D4 xor D6G2 = P2 xor D0 xor D2 xor D3 xor D5 xor D6G3 = P3 xor D1 xor D2 xor D3 xor D7G4 = P4 xor D4 xor D5 xor D6 xor D7如果⽤偶校验那么 G4G3G2G1 全为0是表⽰⽆错误(奇校验全为1)当不全为0表⽰有错 G4G3G2G1 的⼗进制值代表出错的位.如 G4G3G2G1 =1010 表⽰H10(D5)出错了.把它求反就可以纠正错误了.下⾯举⼀个⽐较完全的例⼦:设数据为01101001,试⽤4个校验位求其偶校验⽅式的海明码.传输后数据为011101001101,是否有错?P1=D0 xor D1 xor D3 xor D4 xor D6=1 xor 0 xor 1 xor 0 xor 1=1P2=D0 xor D2 xor D3 xor D5 xor D6=1 xor 0 xor 1 xor 1 xor 1=0P3=D1 xor D2 xor D3 xor D7=0 xor 0 xor 1 xor 0=1P4=D4 xor D5 xor D6 xor D7=0 xor 1 xor 1 xor 0=0所以得到的海明码为0 1 1 0 0 1 0 0 1 1 0 1传输后为011101001101G1 = P1 xor D0 xor D1 xor D3 xor D4 xor D6=1G2 = P2 xor D0 xor D2 xor D3 xor D5 xor D6=0G3 = P3 xor D1 xor D2 xor D3 xor D7=0G4 = P4 xor D4 xor D5 xor D6 xor D7=1所以1001代表9即H9出错了,对它求反011001001101 和我们算的⼀样.由此可见 海明码 不但有检错还有纠错能⼒下⾯说下最后⼀种 CRC即 循环冗余校验码CRC码利⽤⽣成多项式为k个数据位产⽣r个校验位进⾏编码,其编码长度为n=k+r所以⼜称 (n,k)码. CRC码⼴泛应⽤于数据通信领域和磁介质存储系统中.CRC理论⾮常复杂,⼀般书就给个例题,讲讲⽅法.现在简单介绍下它的原理:在k位信息码后接r位校验码,对于⼀个给定的(n,k)码可以证明(数学⾼⼿⾃⼰琢磨证明过程)存在⼀个最⾼次幂为 n-k=r 的多项式g(x)根据g(x)可以⽣成k位信息的校验码,g(x)被称为 ⽣成多项式⽤C(x)=C(k-1)C(k-2)…C0表⽰k个信息位把C(x)左移r位,就是相当于 C(x)*pow(2,r)给校验位空出r个位来了.给定⼀个 ⽣成多项式g(x),可以求出⼀个校验位表达式r(x)C(x)*pow(2,r) / g(x) = q(x) + r(x)/g(x)⽤C(x)*pow(2,r)去除⽣成多项式g(x)商为q(x)余数是r(x)所以有C(x)*pow(2,r) = q(x)*g(x) + r(x)C(x)*pow(2,r) + r(x)就是所求的n位CRC码,由上式可以看出它是⽣成多项式g(x)的倍式.所以如果⽤得到的n位CRC码去除g(x)如果余数是0,就证明数据正确.否则可以根据余数知道 出错位 .在CRC运算过程中,四则运算采⽤ mod 2运算(后⾯介绍),即不考虑进位和借位.所以上式等价于C(x)*pow(2,r) + r(x) = q(x)*g(x)继续前先说下基本概念吧.1.多项式和⼆进制编码x的最⾼次幂位对应⼆进制数的最⾼位.以下各位对应多项式的各幂次.有此幂次项为1,⽆为0. x的最⾼幂次为r时, 对应的⼆进制数有r+1位例如g(x)=pow(x,4) + pow(x,3) + x + 1对应⼆进制编码是 110112.⽣成多项式是发送⽅和接受⽅的⼀个约定,也是⼀个⼆进制数,在整个传输过程中,这个数不会变.在发送⽅,利⽤ ⽣成多项式 对信息多项式做 模2运算 ⽣成校验码.在接受⽅利⽤ ⽣成多项式 对收到的 编码多项式 做 模2运算 校验和纠错.⽣成多项式应满⾜:a.⽣成多项式的最⾼位和最低位必须为1b.当信息任何⼀位发⽣错误时,被⽣成多项式模2运算后应该使余数不为0c.不同位发⽣错误时,应该使余数不同.d.对余数继续做模2除,应使余数循环.⽣成多项式很复杂不过不⽤我们⽣成下⾯给出⼀些常⽤的⽣成多项式表N K 码距d G(x)多项式 G(x)7 4 3 x3+x+1 10117 4 3 x3+x2+1 11017 3 4 x4+x3+x2+1 111017 3 4 x4+x2+x+1 1011115 11 3 x4+x+1 1001115 7 5 x8+x7+x6+x4+1 11101000131 26 3 x5+x2+1 10010131 21 5 x10+x9+x8+x6+x5+x3+1 1110110100163 57 3 x6+x+1 100001163 51 5 x12+x10+x5+x4+x2+1 10100001101011041 1024 x16+x15+x2+1 110000000000001013.模2运算a.加减法法则0 +/- 0 = 00 +/- 1 = 11 +/- 0 = 11 +/- 1 = 0注意:没有进位和借位b.乘法法则利⽤模2加求部分积之和,没有进位c.除法法则利⽤模2减求部分余数没有借位每商1位则部分余数减1位余数最⾼位是1就商1,不是就商0当部分余数的位数⼩于余数时,该余数就是最后余数.例 11101011)1100000101111101011101010110010(每商1位则部分余数减1位,所以前两个0写出)0000010(当部分余数的位数⼩于余数时,该余数就是最后余数)最后商是1110余数是010好了说了那么多没⽤的理论.下⾯讲下CRC的实际应⽤例: 给定的⽣成多项式g(x)=1011, ⽤(7,4)CRC码对C(x)=1010进⾏编码.由题⽬可以知道下列的信息:C(x)=1010,n=7,k=4,r=3,g(x)=1011C(x)*pow(2,3)=1010000C(x)*pow(2,3) / g(x) = 1001 + 011/1011所以r(x)=011所以要求的编码为1010011例2: 上题中,数据传输后变为1000011,试⽤纠错机制纠错.1000011 / g(x) = 1011 + 110/1011不能整除,所以出错了. 因为余数是110查1011出错位表可以知道是第5位出错.对其求反即可.循环冗余校验码CRC(Cyclic Redundancy Code)采⽤⼀种多项式的编码⽅法。

纠错编码基本实验matlab实现包含源代码

纠错编码基本实验matlab实现包含源代码

实验四 纠错编码基本实验一、实验目的1、通过实验理解线性分组码的基本原理;2、练习根据理论分析自行设计实验方法的能力。

二、实验内容1、已知一(10,4)线性分组码的生成矩阵为1001110111111000111001101101011101111001G ⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎣⎦试用Matlab 求出该码的全部码字和最小汉明距离。

2、用Matlab 求x 15+1的所有因子,构造(15,4)循环码的所有可能的生成多项式;选择其中一个作为(15,4)循环码的生成多项式,求出所有的许用码字,并计算最小汉明距离。

三、实验原理1、线性生成码的原理线性分组码的构成方式是把信息序列分成每k 个码元一段,并由这k 个码元按一定规则产生r 个校验位,组成长度为n = k + r 的码字,用(n, k) 表示信息码元与校验位之间为线性关系。

一个[n ,k ]线性分组码,是把从信源输出的以k 个码元为一组的信息组m ,通过信道编码器后,变成长度为n ≥k 的码组(码字)c 作为[n ,k ]线性分组码的一个码字。

设GF(q )是一个含有q 个元素的有限数域,若每位码元的取值有q 种(取自GF(q )),则信息组m 共有kq 种不同的状态,因此,需要kq 个码字c 。

而长为n 的数组共有nq 个,二进制时(q =2)共有n2个。

显然,nq 个n 维向量组成有限域GF(q )上的一个n 维线性空间V ,编码就是要在这个n 维线性空间中选出k q 个向量作为合法码字,其余的n q -kq 个向量为禁用码字。

如果选出的kq 个作为合法码字的向量的集合构成了V 的一个k 维线性子空间,则称它是一个q 进制[n ,k ]线性分组码。

如果值取自GF(q )上的[n ,k ]分组码的kq 个码字的集合C ,便构成了有限域GF(q )上的n 维线性空间V 的一个k 维线性子空间,则称C 是一个q 进制[n ,k ]线性分组码。

奇偶校验码,海明码,循环冗余CRC(精)

奇偶校验码,海明码,循环冗余CRC(精)

1、奇偶校验码二进制数据经过传送、存取等环节,会发生误码(1变成0或0变成1),这就有如何发现及纠正误码的问题。

所有解决此类问题的方法就是在原始数据(数码位)基础上增加几位校验(冗余)位。

一、码距一个编码系统中任意两个合法编码(码字)之间不同的二进数位(bit)数叫这两个码字的码距,而整个编码系统中任意两个码字的的最小距离就是该编码系统的码距。

如图1所示的一个编码系统,用三个bit来表示八个不同信息中。

在这个系统中,两个码字之间不同的bit数从1到3不等,但最小值为1,故这个系统的码距为1。

如果任何码字中一位或多位被颠倒了,结果这个码字就不能与其它有效信息区分开。

例如,如果传送信息001,而被误收为011,因011仍是表中的合法码字,接收机仍将认为011是正确的信息。

然而,如果用四个二进数字来编8个码字,那么在码字间的最小距离可以增加到2,如图图 1图 2注意,图8-2的8个码字相互间最少有两bit因此,如果任何信息的一个数位被颠倒,码字,接收机能检查出来。

例如信息是1001,误收为1011接收机知道发生了一个差错,因为1011不是一个码字(表中没有)。

然而,差错不能被纠正。

的,正确码字可以是1001,1111,0011或1010能确定原来到底是这4个码字中的那一个。

也可看到,这个系统中,偶数个(2或4)差错也无法发现。

为了使一个系统能检查和纠正一个差错,必须至少是“3”。

最小距离为3时,或能纠正一个错,或能检二个错,但不能同时纠一个错和检二个错。

错和检错能力的进一步提高需要进一步增加码字间的最小距离。

图8-3的表概括了最小距离为1至7的码的纠错和检错能力。

图3 码距越大,纠错能力越强,但数据冗余也越大,即编码效率低了。

所以,选择码距要取决于特定系统的参数。

数字系统的设计者必须考虑信息发生差错的概率和该系统能容许的最小差错率等因素。

要有专门的研究来解决这些问题。

二、奇偶校验奇偶校验码是一种增加二进制传输系统最小距离的简单和广泛采用的方法。

基于MATLAB的校验和检错性能的仿真

基于MATLAB的校验和检错性能的仿真

基于MATLAB的校验和检错性能的仿真作者XX:杨波专业名称:通信工程指导老师:陆利刚助教摘要MATLAB的名称源自Matrix Laboratory,是一种高效的工程计算语言,它是一种科学计算软件,专门以矩阵的形式处理数据。

MATLAB将高性能的数值计算和可视化集成在一起,并提供了大量的内置函数,从而被广泛地应用于科学计算、控制系统、信息处理等领域的分析、仿真和设计工作,而且利用MATLAB产品的开放式结构,可以非常容易地对MATLAB的功能进行扩充,从而在不断深化对问题认识的同时,不断完善MATLAB产品以提高产品自身的竞争能力。

在MATLAB环境中描述问题及编制求解问题的程序时,用户可以按照符合人们科学思维的方式和数学表达习惯的余艳形容来书写程序。

MATLAB是MATLAB产品家族的基础,它提供了基本的数学算法,例如矩阵运算、数值分析算法,MATLAB集成了2D和3D图形功能,以完成相应数值可视化的工作,并且提供了一种交互式的高级编程语言——M语言,利用M语言可以通过编写脚本或者函数文件实现用户自己的算法。

Simulink是基于MATLAB的框图设计环境,可以用来对各种动态系统进行建模、分析和仿真,它的建模X围广泛,可以针对任何能够用数学来描述的系统进行建模,例如航空航天动力学系统、卫星控制制导系统、通讯系统、船舶及汽车动力学系统等等,其中包括连续、离散,条件执行,事件驱动,单速率、多速率和混杂系统等等。

Simulink提供了利用鼠标拖放的方法建立系统框图模型的图形界面,而且Simulink还提供了丰富的功能块以及不同的专业模块集合,利用Simulink几乎可以做到不书写一行代码完成整个动态系统的建模工作。

本课题简述信道编码理论,分子码的编译原理及检错纠错能力,用MATLAB仿真对校验和检错性能的影响。

关键词:MATLAB SIMULINK仿真信道编码校验和检错性能。

AbstractThe name of the MATLAB from Matrix Laboratory, is a kind of high efficient engineering calculation language, it is a kind of scientific calculation software, specifically in the form of a matrix of data processing.MATLAB high performance numerical putation and visualization are integrated together, and provides a large number of built-in functions, thus being widely applied in scientific calculation, control system, information processing and other areas of analysis, simulation and design work, and the use of MATLAB products open structure, can very easily to the MATLAB function expansion thus, in deepening the understanding of the problem at the same time, and constantly improve the products of MATLAB products in order to improve their petitive ability. In the MATLAB environment problems and methods of solving the problems described in the program, the user can according to people with scientific thinking methods and mathematical expressions of Yu Yan described writing program. MATLAB is the MATLAB product family foundation, which provides the basic mathematical algorithm, for example, matrix putation, numerical analysis algorithm, MATLAB and 2D integrated3D graphics functions, to plete the corresponding numerical visualization of thework, and provides an interactive programming language -- M language, the use of M language can write the script or function file to achieve the user's own algorithm. Simulink is based on MATLAB diagram design environment, can be used for a variety of dynamic systems modeling, analysis and simulation, the modeling of a broad range, can be directed to any to use mathematics to describe the system modeling, such as aerospace dynamics system, satellite control guidance system, munication system, ship and vehicle dynamics system and so on, which includes continuous, discrete, conditional execution, event driven, single rate, multi-rate and hybrid system. Simulink provides use mouse drag and drop method to build system model graphical interface, but Simulink also provides a wealth of features and different professional module set, using Simulink can almost do not write a line of code to plete the whole dynamic system modeling. This topic describes channel coding theory, molecular code piler theory and error correcting capability, using MATLAB simulation on checking and error detection performance influence.Key word:MATLAB SIMULINK simulation of channel coding checking and error detection performance1绪论1.1 课题目的及意义在数字通信系统噪声信道上传输数字化数据时,收到的数据将不可避免的含有差错.通常用户提出一个差错率,当超出此差错率时,接受数据不予使用。

奇偶校验_校验和实验

奇偶校验_校验和实验

实验5-1纠错与检错1.实验内容读程序,在所有红色的“#”后面添加解释,说明程序的作用2.实验题目(1)奇偶校验码在原始模式上增加一个附加比特位,即奇偶校验位,使最后整个模式中1的个数为奇数(奇校验)或偶数(偶校验)。

本程序用到列表、字符串合并、取模等概念。

code=input("Please input a 7-bit-binary code:")a=0# for 循环作用是什么for i in range(0,6,1):if code[i]=='1':a=a+1print("After odd parity checking the code is:")if a%2==0:print(code+'1') # 这句做了什么else:print(code) # 这句做了什么print("After even parity checking the code is:")# 下面 if .. else …作用是什么if a%2==0:print(code)else:print(code+'1')(2)垂直水平奇偶校验如下图所示,14个字符纵向排列形成一个数据块,每个字符占据一列,低位比特在上,高位比特在下,用b8(第8位)作为垂直奇偶校验位,各字符的同一比特位形成一行,每一行的最右边一位作为水平奇偶校验位,这里在垂直和水平方向均采用偶校验。

#下面的函数做了什么 def oddeven(l): a=0for i in range(0,len(l),1): if l[i]=='1': a=a+1 if a%2==0: return '0' else:return '1'block=[['0']*15,['0']*15,['0']*15,['0']*15,['0']*15,['0']*15,['0']*15,['0']*15]for i in range(0,14,1):vcode=input("Please input a 7-bit-binary code:") for j in range(0,7,1): block[j][i]=vcode[j]block[7][i]=oddeven(vcode)# 这句做了什么 hcode=['0']*14for j in range(0,8,1):for i in range(0,14,1): hcode[i]=block[j][i]block[j][14]=oddeven(hcode)# 这句做了什么 print(block)(3)循环冗余校验任何一个二进制位串都可以用一个多项式来表示,多项式的系数只有0和1,n 位长度的码C 可以用下述n -1次多项式表示:()n 1n 210C x C x C x C x C --=++++ n-1n-21例如位串1010001可以表示为x 6+x 4+1。

matlab函数手册

matlab函数手册信源函数randerr产生比特误差样本randint产生均匀分布的随机整数矩阵randrc根据给定的数字表产生随机矩阵wgn产生高斯白噪声信号分析函数biterr计算比特误差数和比特误差率eyediagram绘制眼图catterplot绘制分布图ymerr计算符号误差数和符号误差率信源编码dpcmdecoDPCM(差分脉冲编码调制)解码dpcmencoDPCM编码dpcmopt优化DPCM参数lloydLloyd法则优化量化器参数quantiz给出量化后的级和输出值误差控制编码bchpoly给出二进制BCH码的性能参数和产生多项式convenc产生卷积码cyclgen产生循环码的奇偶校验阵和生成矩阵cyclpoly产生循环码的生成多项式decode分组码解码器encode分组码编码器gen2par将奇偶校验阵和生成矩阵互相转换gfweight计算线性分组码的最小距离hammgen产生汉明码的奇偶校验阵和生成矩阵rdecof对Reed-Solomon编码的ASCII文件解码rencof用Reed-Solomon码对ASCII文件编码rpoly给出Reed-Solomon码的生成多项式yndtable产生伴随解码表vitdec用Viterbi法则解卷积码(误差控制编码的低级函数)bchdecoBCH解码器bchencoBCH编码器rdecoReed-Solomon解码器rdecode用指数形式进行Reed-Solomon解码rencoReed-Solomon编码器rencode用指数形式进行Reed-Solomon编码调制与解调ademod模拟通带解调器ademodce模拟基带解调器amod模拟通带调制器amodce模拟基带调制器apkcont绘制圆形的复合ASK-PSK星座图ddemod数字通带解调器ddemodce数字基带解调器demodmap解调后的模拟信号星座图反映射到数字信号dmod数字通带调制器dmodce数字基带调制器modmap把数字信号映射到模拟信号星座图(以供调制)qakdeco从方形的QASK星座图反映射到数字信号qakenco把数字信号映射到方形的QASK星座图专用滤波器hank2y把一个Hankel矩阵转换成一个线性系统模型hilbiir设计一个希尔伯特变换IIR滤波器rcoflt升余弦滤波器rcoine设计一个升余弦滤波器(专用滤波器的低级函数)rcofir设计一个升余弦FIR滤波器rcoiir设计一个升余弦IIR滤波器信道函数awgn添加高斯白噪声伽罗域计算gfadd伽罗域上的多项式加法gfconv伽罗域上的多项式乘法gfcoet 生成伽罗域的分圆陪集gfdeconv伽罗域上的多项式除法gfdiv伽罗域上的元素除法gffilter在质伽罗域上用多项式过滤数据gflineq在至伽罗域上求A 某=b的一个特解gfminpol求伽罗域上元素的最小多项式gfmul伽罗域上的元素乘法gfpluGF(2^m)上的元素加法gfpretty以通常方式显示多项式gfprimck检测多项式是否是基本多项式gfprimdf给出伽罗域的MATLAB默认的基本多项式gfprimfd给出伽罗域的基本多项式gfrank伽罗域上矩阵求秩gfrepcovGF(2)上多项式的表达方式转换gfroot质伽罗域上的多项式求根gfub伽罗域上的多项式减法gftrunc使多项式的表达最简化gftuple简化或转换伽罗域上元素的形式工具函数bi2de把二进制向量转换成十进制数de2bi把十进制数转换成二进制向量erf误差函数erfc余误差函数itrelli检测输入是否MATLAB的trelli结构(tructure)marcumq通用MarcumQ函数oct2dec八进制数转十进制数poly2trelli把卷积码多项式转换成MATLAB的trelli描述vec2mat把向量转换成矩阵———————————————————————————————————————————————Aaab绝对值、模、字符的ASCII码值aco反余弦acoh反双曲余弦acot反余切acoth反双曲余切acc反余割acch反双曲余割align启动图形对象几何位置排列工具all所有元素非零为真angle 相角an表达式计算结果的缺省变量名any所有元素非全零为真area面域图argname函数M文件宗量名aec反正割aech反双曲正割ain反正弦ainh反双曲正弦aignin向变量赋值atan反正切atan2四象限反正切atanh反双曲正切autumn红黄调秋色图阵a某e创建轴对象的低层指令a某i控制轴刻度和风格的高层指令Bbbar二维直方图bar3三维直方图bar3h三维水平直方图barh二维水平直方图bae2dec某进制转换为十进制bin2dec二进制转换为十进制blank创建空格串bone蓝色调黑白色图阵bo某框状坐标轴breakwhile或for环中断指令brighten亮度控制Cccapture(3版以前)捕获当前图形cart2pol直角坐标变为极或柱坐标cart2ph直角坐标变为球坐标cat串接成高维数组ca某i色标尺刻度cd指定当前目录cdedit启动用户菜单、控件回调函数设计工具cdf2rdf复数特征值对角阵转为实数块对角阵ceil向正无穷取整(使用方法:点这里)cell创建元胞数组cell2truct元胞数组转换为构架数组celldip显示元胞数组内容cellplot元胞数组内部结构图示char把数值、符号、内联类转换为字符对象chi2cdf分布累计概率函数chi2inv分布逆累计概率函数chi2pdf分布概率密度函数chi2rnd分布随机数发生器cholCholeky分解2clabel等位线标识cla清除当前轴cla获知对象类别或创建对象clc清除指令窗clear清除内存变量和函数clf清除图对象clock时钟colorcube三浓淡多彩交叉色图矩阵colordef设置色彩缺省值colormap色图colpace列空间的基cloe关闭指定窗口condeig计算特征值、特征向量同时给出条件数condet范-1条件数估计conj复数共轭contour等位线contourf填色等位线contour3三维等位线contourlice四维切片等位线图conv多项式乘、卷积cool青紫调冷色图copper古铜调色图co余弦coh双曲余弦cot余切coth双曲余切cpl某pair复数共轭成对排列cc余割cch双曲余割cumum元素累计和cumtrapz累计梯形积分cylinder创建圆柱Dddblquad二重数值积分deal分配宗量deblank删去串尾部的空格符dec2bae十进制转换为某进制dec2bin十进制转换为二进制dec2he某十进制转换为十六进制deconv多项式除、解卷delaunayDelaunay三角剖分del2离散Laplacian 差分demoMatlab演示det行列式diag矩阵对角元素提取、创建对角阵diaryMatlab指令窗文本内容记录diff数值差分、符号微分digit符号计算中设置符号数值的精度dir目录列表dip显示数组diplay显示对象内容的重载函数dlinmod离散系统的线性化模型dmperm矩阵Dulmage-Mendelohn分解do执行DOS指令并返回结果double把其他类型对象转换为双精度数值drawnow更新事件队列强迫Matlab刷新屏幕dolve符号计算解微分方程EeechoM文件被执行指令的显示edit启动M文件编辑器eig求特征值和特征向量eig求指定的几个特征值end控制流FOR等结构体的结尾元素下标ep浮点相对精度error显示出错信息并中断执行errortrap错误发生后程序是否继续执行的控制erf误差函数erfc误差补函数erfc某刻度误差补函数erfinv逆误差函数errorbar带误差限的曲线图etreeplot画消去树eval串演算指令(使用方法:点这里)evalin跨空间串演算指令e某it检查变量或函数是否已定义e某it退出Matlab环境e某p 指数函数e某pand符号计算中的展开操作e某pint指数积分函数3e某pm常用矩阵指数函数e某pm1Pade法求矩阵指数e某pm2Taylor 法求矩阵指数e某pm3特征值分解法求矩阵指数eye单位阵ezcontour画等位线的简捷指令fminunc拟牛顿法求多变量函数极小值点fminearch单纯形法求多变量函数极小值点fnder对样条函数求导fnint利用样条函数求积分fnval计算样条函数区间内任意一点的值ezcontourf画填色等位线的简捷指令ezgraph3画表面图的通用简捷指令ezmeh画网线图的简捷指令ezmehc画带等位线的网线图的简捷指令ezplot画二维曲线的简捷指令ezplot3画三维曲线的简捷指令ezpolar画极坐标图的简捷指令ezurf 画表面图的简捷指令ezurfc画带等位线的表面图的简捷指令Fffactor符号计算的因式分解feather羽毛图feedback反馈连接f执行由串指定的函数fft离散Fourier变换fft2二维离散Fourier变换fftn高维离散Fourier变换ffthift直流分量对中的谱fieldname构架域名figure创建图形窗fill3三维多边形填色图find寻找非零元素下标findobj寻找具有指定属性的对象图柄findtr寻找短串的起始字符下标findym机器确定内存中的符号变量finvere符号计算中求反函数fi 某向零取整例如(使用方法:点这里)flag红白蓝黑交错色图阵fliplr 矩阵的左右翻转flipud矩阵的上下翻转flipdim矩阵沿指定维翻转floor向负无穷取整(使用方法:点这里)flop浮点运算次数flowMatlab提供的演示数据fmin求单变量非线性函数极小值点(旧版)fminbnd求单变量非线性函数极小值点fmin单纯形法求多变量函数极小值点(旧版)fnplt绘制样条函数图形fopen打开外部文件for构成for环用format设置输出格式fourierFourier变换fplot返函绘图指令fprintf 设置显示格式fread从文件读二进制数据folve求多元函数的零点full把稀疏矩阵转换为非稀疏阵funm计算一般矩阵函数funtool函数计算器图形用户界面fzero求单变量非线性函数的零点Gggamma函数gammainc不完全函数gammaln函数的对数gca获得当前轴句柄gcbo获得正执行\回调\的对象句柄gcf获得当前图对象句柄gco获得当前对象句柄geomean几何平均值get获知对象属性getfield获知构架数组的域getframe获取影片的帧画面ginput从图形窗获取数据global定义全局变量gplot依图论法则画图gradient近似梯度gray黑白灰度grid画分格线griddata规则化数据和曲面拟合gte某t由鼠标放置注释文字guide启动图形用户界面交互设计工具Hhharmmean调和平均值help在线帮助helpwin交互式在线帮助4helpdek打开超文本形式用户指南he某2dec十六进制转换为十进制he某2num十六进制转换为浮点数hidden透视和消隐开关hilbHilbert 矩阵hit频数计算或频数直方图hitc端点定位频数直方图hitfit带正态拟合的频数直方图hold当前图上重画的切换开关horner分解成嵌套形式hot黑红黄白色图hv饱和色图Iiif-ele-eleif条件分支结构ifft离散Fourier反变换ifft2二维离散Fourier反变换ifftn高维离散Fourier反变换iffthift直流分量对中的谱的反操作ifourierFourier反变换i,j 缺省的\虚单元\变量ilaplaceLaplace反变换imag复数虚部image显示图象imagec显示亮度图象imfinfo获取图形文件信息imread从文件读取图象imwrite把imwrite把图象写成文件ind2ub单下标转变为多下标inf无穷大infoMathWork公司网点地址inline构造内联函数对象inmem列出内存中的函数名input提示用户输入inputname输入宗量名int符号积分int2tr把整数数组转换为串数组interp1一维插值interp2二维插值interp3三维插值interpnN维插值interpft利用FFT插值introMatlab自带的入门引导inv求矩阵逆invhilbHilbert矩阵的准确逆ipermute广义反转置ia检测是否给定类的对象ichar若是字符串则为真iequal若两数组相同则为真iempty若是空阵则为真ifinite若全部元素都有限则为真ifield若是构架域则为真iglobal 若是全局变量则为真ihandle若是图形句柄则为真ihold若当前图形处于保留状态则为真iieee若计算机执行IEEE规则则为真iinf若是无穷数据则为真iletter若是英文字母则为真ilogical若是逻辑数组则为真imember检查是否属于指定集inan若是非数则为真inumeric若是数值数组则为真iobject若是对象则为真iprime若是质数则为真ireal若是实数则为真ipace若是空格则为真ipare若是稀疏矩阵则为真itruct若是构架则为真itudent若是Matlab学生版则为真iztran符号计算Z反变换Jj,Kk jacobian符号计算中求Jacobian矩阵jet蓝头红尾饱和色jordan符号计算中获得Jordan标准型keyboard键盘获得控制权kronKronecker乘法规则产生的数组LllaplaceLaplace变换laterr显示最新出错信息latwarn显示最新警告信息leatq解非线性最小二乘问题(旧版)legend图形图例lighting照明模式line创建线对象line采用plot画线色linmod获连续系统的线性化模型linmod2获连续系统的线性化精良模型5。

奇偶校验


列真值表:
ABC O1 E1
000 1 0 001 0 1 010 0 1 011 1 0 100 0 1 101 1 0 110 1 0 111 0 1
卡诺图: AB
C 00 01 11 10 010 10 10 10 1
写出表达式:
O1 ABC ABC ABC ABC
a2
a1
a0
当Ai Bi时,Y 0 当Ai Bi时,Y 1
三位等值比较器: Y
B2 B1
C B
Y MUX
E
B0 A
D7 D6 D5 D4 D3 D2 D1 D0
Y7 Y6 C
Y5 Y4 Y3 Y2 Y1 Y0 E2B
B A E2A E1
A2 A1 A0 0 1
EN
•四位并行比较器
当Ai Bi用Gi 表示;当Ai Bi用Si 表示;当Ai Bi用Ei 表示。
1 1 EVEN
1
O
1 1 ODD E
74LS280等效逻辑图
I
当A~I中有奇数个1时,多变量异或门输出为1,即偶校验位∑E=1; 当A~I中有偶数个1时,多变量异或门输出为1,即偶校验位∑O=1。
使用异或门还可以给出以下电路:
D7 1 D6
D5 1 D4
D3 1 D2
S G3 E3G2 E3 E2G1 E3 E2 E1G0 E3 E2 E1E0 E E3 E2 E1E0
有迭代输入端的四位比较器:
真值表:
变量
A, B A B A B A B A B A B A B
输入 迭代输入端
IG IE IS 100 0 10 001 1 101 000

奇偶校验和海明码校验


Ba 1 Bb
Bc
1
Pi
1 Si
Si Ba Bb Bc Pi
S3 S2
B4 B4
B3 B3
B2 B1
P3 P2
S1 B4 B2 B1 P1
S3S2S1 111 110 101 100 011 010 001 000 出错位 B4 B3 B2 P3 B1 P2 P1 无
a1a0 b1 b0 00 01 11 10
00 0 0 0 0 01 1 0 0 0 11 1 1 0 1 10 1 1 0 0
a1a0 b1 b0 00 01 11 10
00 1 0 0 0 01 0 1 0 0 11 0 0 1 0 10 0 0 0 1
G a1 • b1 a0 • b1 • b0 a1 • a0 • b0
3.4 奇偶校验器
为了系统的可靠性,对于位数较少,电路较简单的应用,可以采 用奇偶校验的方法。
奇校验是通过增加一位校验位的逻辑取值,在源端将原数据代码 中为1的位数形成奇数,然后在宿端使用该代码时,连同校验位一起检 查为1的位数是否是奇数,做出进一步操作的决定。
奇偶校验只能检查一位错误,且没有纠错的能力。
O1 O2 O3 O E
0 0 0 01 0 0 1 10 0 1 0 10 0 1 1 01 1 0 0 10 1 0 1 01 1 1 0 01 1 1 1 10
D7


D6
奇 偶

D5
验 器
D4
三 位

D3
偶 校
D2
验 器

D1


D0


0
O/ E
验 器

奇偶编码校验

西南科技大学奇偶校验编码仿真设计报告课程名称:通信原理课程设计设计名称:奇偶校验编码仿真姓名:任XX学号: 20105523班级:通信1002班指导教师:秦明伟起止日期: 2013.6.27~2013.7.5西南科技大学信息工程学院制课程设计任务书学生班级:通信1002班学生姓名:任XX 学号:20105523 设计名称:奇偶校验编码仿真起止日期:2013.6.27~2013.7.5指导教师:秦明伟课程设计学生日志奇偶校验编码仿真一、摘要(150-250字)本文介绍了奇偶校验的编码规则及应用前景,使用matlab仿真工具对奇偶校验中的单向奇偶校验与双向奇偶校验进行编程仿真,详细的阐述了奇偶校验的原理和编码过程。

分析了实验结果,以及对于奇偶校验有了更新的认识,奇偶校验是几种校验方法中实现最为简单,得到了广泛的应用。

二、设计目的和意义通过本次课程设计,对于matlab仿真工具更加熟悉,同时也深入了解了奇偶校验编码的原理与方法。

三、设计原理奇偶校验是一种检测代码传输正确性的方法。

根据被传输的一组二进制代码的数位中“1”的个数是奇数或偶数来进行校验。

采用奇数的称为奇校验,反之,称为偶校验。

采用何种校验是事先规定好的。

通常专门设置一个奇偶校验位,用它使这组代码中“1”的个数为奇数或偶数。

若用奇校验,则当接收端收到这组代码时,校验“1”的个数是否为奇数,从而确定传输代码的正确性。

1.单向校验概述:单向奇偶校验(Row Parity)由于一次只采用单个校验位,因此又称为单个位奇偶校验(Single Bit Parity)。

发送器在数据祯每个字符的信号位后添一个奇偶校验位,接收器对该奇偶校验位进行检查。

典型的例子是面向ASCII码的数据信号祯的传输,由于ASCII码是七位码,因此用第八个位码作为奇偶校验位。

单向奇偶校验又分为奇校验(Odd Parity)和偶校验(Even Parity),发送器通过校验位对所传输信号值的校验方法如下:奇校验保证所传输每个字符的8个位中1的总数为奇数;偶校验则保证每个字符的8个位中1的总数为偶数。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档