档案袋封面.doc

tx051数字通信系统数据纠检错方法研究

收藏

压缩包内文档预览:
预览图
编号:516473    类型:共享资源    大小:663.54KB    格式:RAR    上传时间:2015-11-12 上传人:QQ28****1120 IP属地:辽宁
6
积分
关 键 词:
机械毕业设计
资源描述:
tx051数字通信系统数据纠检错方法研究,机械毕业设计
内容简介:
数字通信系统数据纠检错方法研究 专业: 通信工程 学号: 1002569 姓名: 李鑫 指导教师: 林东 中文摘要 在噪声信道上传输数字化数据时 ,收到的数据将不可避免的含有差错 .通常用户提出一个差错率 ,当超出此差错率时 ,接受数据不予使用 .当接受数据不满足所要求的差错率时 ,常常可以采用纠检错编码将差错率减小到 所容许的限度内 ,近年来 ,采用纠错编码解决此类问题日益广泛 .香农曾在他的一篇论文中 ,对编码的效能加以阐明 ,在 1948 年 ,他证明 :如果数据源的速率低于被称为信道容量之值时 ,可采用适当的编码和译码 ,以任意小的差错概率进行通信 . 以后将会看到 ,真正对通信速率加以限制的并不是信道容量 ,而是实现编码方案所花的费用 ,费用的限制使通信速率远低于通信容量 ,近年来在寻求用于各类噪声信道上高效与实用的编码方案方面进行了大量的研究 ,并取得了很大的成就 . 本文讨论的主题是 CRC(循环冗余校验 ),汉明码 ,BCH 码 . CRC(循环冗余校 验 )码又称多项式码 ,它是一种在计算机网络和数字通信中用的最广泛的一种检错码 ,漏检率比奇偶校验码低的多 ,同时实现也较简单 .本文给出了利用单片机编程实现校验过程 . 汉明码是一种线性分组码 ,它是一种能纠一个错误的码 ,BCH 码是一种能够纠正多个随机错误的循环码 ,是目前发现的一类很好的线性纠错码类 ,它的纠错能 力 很 强 ,本 人 就 两 种 码 进 行 MATLAB 仿真 ,对 两 种 码 的 性 能 作 了 比较 . 关键词: CRC,汉明码 ,BCH 码 , ntsERROR CORRECTING AND CHECKING IN DIGITAL COMMUNICATION SYSTEM Abstract When numeral data are transmitted in yawp channel, the data which are received will have error in evitablely, generally consumers call for an error rate, when over-stepping the rate, the date will be rejected, when the data received can not meet con-sumers demand, error-correcting code technology can minish the error rate in faculta-tive limit, in recent years, error-correcting code technology is used widely in the communication system,shannal clarified the efficiency of encoding in one of his dis-course, in 1948,he testified that if the speed of data source is under the capability of channel, you can adopt proper encoding and decoding, so that the error rate will be controlled at random in communiation system. In future, you will see that it is not the channel capability which restrains the speed of communication but the cost of realizing the encoding scheme, the speed of communication is more lower than the channel capability, in recent years a lot of research in seeking the efficient and ptacticable encoding scheme have been done which are used in every kind of yawp channel.in which prodigious success has been taken. The discussional subjects are CRC, hamming code, BCH. The CRC code is also called multinomial code, it is a code which is used most broad in computer network and numeral communication, the leak checking ratio is more lower than odd or even code, the realization is also simpe, the text gives the MCS-51 program which realizes the checkout process. Hamming code is a kind of linearity grouping code, it is a code which can check a false code, BCH code is a cyc code which can check some error code, it is a very good linearity code, it has strong error correcting capability, I compared the capability of two kinds of code using MATLAB software. Key words: CRC, Hamming Code, BCH Code nts数字通信系统数据纠检错方法研究 1 第一章 绪论 1.1 课题背景 本课题主要根据电力线载波通信系统这一工程背景对信道纠检错编码进行 性能分析,电力线载波通信技术出现于本世纪二十年代初期。它以电力线路为传 输通道,具有通道可靠性高、投资少见效快、与电网建设同步等电力部门得天独厚的优点。在我国,四十年代已有日本生产的载波机在东北运行,做为长距离调度的通信手段。经过几十年的发展,目前已具相当的规模和水平。但是也出现了一定的问题 ,其中比较束手的问题就是数据传输的可靠性问题。电 力线通信是继电信、电话、无线通讯、卫星通讯之后的又一通信网 .电力线载波通讯就 是以电力网作为信道 ,实现数据传递和信息交换 .因为电源线路是每个家庭最为普通也是覆盖最为宽广的一种物理媒介 ,所以利用电力线实现数据通信有着很大的经济效益和应用前景 .由于低压范围内电力线网络的非规则性、传输距离的随意性、以及电力线上负载变化的多样性 ,使得干扰问题成为制约低压电力线载波通信发展和普及的主要障碍 2.因此对于电力线载波通信信道中纠检错编码的研究显得由为重要 . 正如文献 1中所说, 近年来,由于各种通信方式在白动抄表系统中的成功应用,特别是电力载波方式 (无须另设通信电缆,尤其适合于现有居民电表的改造 ),使自动抄表系统得到迅速发展。随着我国“三金工程”的发展,“个人银行帐户制”将开始实行,银行对电、水、煤气等费用的全面托收,一旦自动抄表系统进入银行计算机网络,则直接可以通过银行完成收费,大大地提高了经济效率和社会效率。 电力系统对电力数据传输的主要要求是 :(1)可靠性要高,如对电力远动设备,通常要求其误码率在以 10-5下。 (2)实时性要强,调度所要求电力系统的实时信息,特别是电力系统故障时,要求迅速地获取故障信息,以便及时处理故障。利用电力线进行数据传输,是电力系统特有的数据传输方式之一。由于电力线上存 在较强的电磁干扰,对电力线数据传输设备的要求就比较高。通常以牺牲传码率换取数据传输可靠性的提高。为了提高电力数据传输速率和传输可靠性,在一定信噪比的情况下,达到一定的误码率指标要求,除了应合理设计基带信号,选择合适的调制解调方式,采用频域均衡或时域均衡等措施外,还可以通过采用信道编码,即差错控制编码将误码率进一步降低,以提高信号传输的可靠性 2。 1.2 数字通信系统的信道模型 纠错编码最初源于通信系统,在此首先引入通信系统的基本知识。 采用某种方法,利用某种媒质将信息从甲地传到乙地的过程叫做通信,甲地发 送信息者叫信源,乙地接收信息者叫信宿。若传送的是连续的电信号,则是模拟通信,如由电话、广播传送的声音信息,由电视、传真传送的文字、图象信息等,如传送的是数字信号,则nts福州大学本科生毕业论文 2 叫数字通信,如电报、数据通信等。完成数字通信的有关部件构成数字通信系统,如图 1-1所示。 信源发出的消息 Q如语言、文字、图象等,经信源编码之后变为离散数字序列,然后经信道编码器变为一定的信道编码序列,经调制以后就变为容易传送或存储的形式送往传送信息的通道 -信道,经过信道以后就变为噪声干扰以后的信息序列,此时可能已经产生误码,因此信道解码器试图 将错误的信息校正,最后经信源译码器之后,还原为信息。 由以上分析可知,在数字通信过程中涉及两类不同的编码,信源编码和信道编码,信源编码是指信源按照一定的规律变为数字序列的过程,其目的是模拟信号的数字化和提高数字序列的有效性,信道编码是为提高数字信息传输的可靠性而进行的编码,它是一种抗干扰编码,也称为纠错编码。 图 1-1中的信源可以是计算机及其外围设备,信源和信源编码器统称数字信源,调制器、信道和解调器统称为数字信道,而数字信宿指的是信宿译码器和信宿,本文所讨论的编码信道为离散信道 3。 1.3 信 道编码定理 香农在 1948年发表的通信的数学理论和 1957年发表的适用于有扰信道的编码理论 某些成果中,提出了有扰信道的信息传输理论 香农第二定理。该定理指出,设信道具有确定的容量 C bit/s,并已知传输消息的速率为 R bit/s,那么只要 Rt). 3.2 线性分组码的编码 ( n, k)线性分组码的实质就是要在 n维向 量空间中找出满足一定规则的,由 qk 个向nts数字通信系统数据纠检错方法研究 7 量组成的 k维向量子空间。或者说在满足给定条件下(如码的最小距离和码率)从已知的k个信息元求出 r=n-k 个校验元,然后将校验元附于信息元之后就得到一个码字。 3.2.1 一致校验矩阵 对任一( n, k)线性分组码,可得如下的线性方程: 其中码字向量 CT是 C的转置, H是一个 r行 n列矩阵 在 Hij 中, i代表行号, j代表列号。 H称为线性分组码的一致校验矩阵,其意义为: ( 1) H矩阵的每一行代表一个线性方程的系数,表示求一个校验元的线性方程。 ( 2) H矩阵必须有 r 行,且 各行必须线性无关。 ( 3) 若 C中各元素是满足由 H所确定的 r个线性方程的解,则 C是一个码字,反之,若C中的各元素组成一个码字,则则一定满足由 H所确定的 r个线性方程。故 C是( 3-2)或( 3-3)的集合,显然 H一定,便可由信息元求出校验元,编码问题迎刃而解。 3.2.2 生成矩阵 由于( n, k)线性分组码的 2k 个码字组成组成了 n维向量空间的一个 k维子空间,因此这 2k个码字完全可以由 k个独立的向量所组成的基底组成,设此 k 个向量为 将它们写成矩阵形式: nts福州大学本科生毕业论文 8 ( n, k)码中的任何码字均可由这组基底的线性组合生成,即: 式中 m=( mn-1mn-2mn-3m n-k) 是 k个信息元组成的信息组。 这就是说每给定一个信息组,通过式( 3-6)便可求得其相应的码字。故称 k 个基底所构成的 k n阶矩阵 G为( n, k)码的生成矩阵,并称这 k个( n, k)码字为生成码。 G的含义为: ( 1)一般( n, k)码的生成矩阵为 k行 n 列矩阵。 ( 2)一个( n, k)码生成矩阵的 k 行就是 k 个线性无关的码字,它们的线性组合生成( n, k)码全部 qk个码字 。因此找到了 G,就解决了编码问题。 ( 3)作为码的生成矩阵可以不止一种形式,但都生成同一个码字。 ( 4) H和 G彼此正交。 3.3 线性分组码的译码 只要找到了 H矩阵或 G矩阵,便解决了编码问题。经编码后发送的码字,由于信道干扰可能出错,收方要发现或纠正错误,这就是译码问题。 设发送的码字为 C=( cn-1cn-2cn-3c 0) ,信道产生的错误模式为 E=( en-1en-2en-3e 0) ,而接收码字为 R=( rn-1rn-2r 0) ,那么 R=C+E,译码的任务就是从 R 中求出 E,从而得到C=R-E。 由 于( n, k)码的任何一个码字均满足式( 3-2)或式( 3-3),将接收码字用二式之一进行检验,如 RHT=( C+E) HT=EHT, S=RHT=EHT为接收向量的伴随式或校正子。 显然若 E等于零,则 S等于零,那么 R就是 C,若 E 0,则 S 0, 如能从 S得到 E,则 C=R-E,即可恢复发送的码字,可见 S仅与 E有关。而与发送的是什么码字无关。 可以将( n, k)码的一致校验矩阵写成列向量的形式。 nts数字通信系统数据纠检错方法研究 9 ( 3-7) 若码字传送发生 t 个错误,且是码字的第 i1,i2,i3 it 位有错,则错误模式可表示 成 E=( 0 ei1 0 ei2 0 eit 0 0),那么伴随式 ( 3-8) 这说明: S是 H矩阵中 E不等于零的那几列 hn-i 的线性组合,因 hn-i是 r重列向量,故S也是一个 r重列向量,当传输没有错误时即 E 的各位均为 0时, S是一个 r重全零向量 6。 值得注意的是若 E本身是一个码字,则 S必然等于零,此时的错误不能被发现,也不能纠正,称之为不可检错误模式。 由上述讨论可以得出,译码的步骤为: ( 1) 计算接收向量的伴随式; ( 2) 找出错误模式 E; ( 3) 通过 R-E=C实现纠错。 3.4 循环码的基本概念 循环码 是线性分组码的重要子类,其结构可以用代数方法分析。 一 个 n 重的 k 维子空间 总 有 ,则称 Vnk 为循环子空间。若把每一个向量的分量看成是 GF( q)中多项式的系数,则循环码的每一个码字可与一个次数小于等于 n-1的多项式对应, 与码字对应的多项式称为码多项式,一个( n, k)循环码的每一个码字都可以用一个次数小于等于 n-1的多项式表示,其必处在以 xn-1 为模的某一剩余类中 6。 若一个码的所有码多项式都是一个次数最低的码多项式的倍式,则该码多项式为生成多项式,且该生成多项式为唯一的,且一定为 xn-1 的因式,即 xn-1=g(x)h(x)。 综上所述不难得出如下结论: ( 1)( n, k)循环码的生成多项式是一个次数最低的多项式,且其次数正好是校验元的位数。 ( 2) g(x)是 xn-1 的因式,要构造一个( n, k)循环码,就要找到一个 r=n-k次的多项nts福州大学本科生毕业论文 10 式。 ( 3)循环码的每一码多项式必是 g(x)的倍式,若用 C(x)表示码多项式,则C(x)=m(x)g(x)。反之成立。 3.5 循环码的编码 对于一般的( n, k)循环码需要找一个生成多项式 g(x),对于系统码,即前 k 位是信息元,后 r位是校验元,将信息左移 r位,右边放置校验元,且编成的 码字对应的多项式为 g(x)的倍式,即完成了编码。因此: (3-9) 其中 m(x)为信息多项式,与 k位信息元对应, m(x)乘以 xr即相当于将信息元左移 r位,而校验元对应的多项式为 (3-10) 故必有 可见,循环码编码的关键是找到生成多项式 g(x),设生成多项式 g(x)=xr+gr-1+ +g1x+g0,gi属于 GF(q),它的全部根必在 GF(q)的扩展域 GF(qm)上,即: ( 3-11) 设码多项式为 ,因为循环码的码字必为生成多项式的倍式,所以 g(x)的根也必为 C(x)的根,即有: ( 3-12) 写成矩阵形式为: ( 3-13) 故循环码的一致校验矩阵为: ( 3-14) 这说明:若 C(x)有根,则必在 H 矩阵的零空间中。求 g(x)关键是找出每个根的最小多项式,而且可以整除 xn-1, 而 g(x)为最小多项式里面的次数最低的那个。最简单的方法是查表 7。 nts数字通信系统数据纠检错方法研究 11 3.6 循环码的译码 由于循环码是线性分组码的重要子类,循环码 的译码方法也是分为三步: ( 1) 根据接收向量 R(x)计算伴随式 S(x); ( 2) 根据 S(x)找出对应的错误模式 E(x); ( 3) 将 E(x)与 R(x)相加或相减则为接收的正确的码字。 nts福州大学本科生毕业论文 12 第四章 常用的纠检错码 4.1 引言 随着数据采集系统的功能日益强大,以及微型计算机的普及,在现代工业中,利用微机进行数据通讯的工业控制应用得也越来越广泛。特别是在要求低误码率数据传输系统中,由于传输距离、现场状况等诸多可能出现的因素的影响,计算机与受控设备之间通讯数据常会 发生无法预测的错误 9。为了防止错误所带来的影响,在数据的接收端必须进行差错校验。虽然差错校验也可以完全由硬件来承担,但由于单片机和 PC都具有很强的软件编程能力,这就为实施软件的差错校验提供了前提条件而软件的差错校验有经济实用并且不增加硬件开销的优点。本章介绍了一种软件差错校验方案 -循环冗余差错校验法 10。 汉明码是 1950年由汉明首先构造,用以纠正单个错误的线性分组码。由于它的编译码在工程上实现起来比较容易,而且它的码率很高,所以得到了很广泛的应用。 BCH码是一种二元循环码,它于 1959年和 1960年由霍昆格母、博丝和查德乎里三人分别提出,并以这三个人的名字命名,它具有纠正多个随机错误的能力,是迄今为止研究的最为透彻、取得成果最多的一类码。 BCH码具有严密的数学结构,在代数编码理论中起着重要的作用,该码的生成多项式 g(x)与最小距离 d=2t+1有着密切的联系,因此可以根据纠错能力来确定编码 6。 4.2 汉明码的编码原理 汉明码 (HammingCode)是由 RichardHamming于 1950年提出的,它属于线性分组编码方式。设原代码的码长为 k比特,附加纠错编码部分为 r比特,当码字长度 n=2r一 1,r=n-k,r=1,2时就称这种线性分组码为汉明码 7。其基本原理是,将信息码元与监督码元通过线性方程式联系起来,每一个监督位被编在传输码字的特定比特位置上。系统对于错误的数位无论是原有信息位中的,还是附加监督位中的都能把它分离出来。 信息传输中信道中的噪声干扰不仅使原代码的每一位 (k比特 )可能出错,而且附加纠错位 (r比特 )也可能出错,故“一个差错”的情况共有 k+r种,加上“正常”态共有 k十 r十1种状态,而 r比特的附加纠错位要能分辨这 k+r+1种状态 6。 推导并使用长度为 k位码字的汉明 码,所需步骤如下: ( 1)确定最小的监督位数 r,将它们记成 D1、 D2、 D3D r,每个监督位符合不同的测试规定; ( 2)原有信息和 r个监督位一起编成长为 r+k位的新码字,选择 r监督位( 0或 1)以满足必要的奇偶条件; ( 3)对所接收的信息作所需的 r个奇偶检查; nts数字通信系统数据纠检错方法研究 13 ( 4)如果所有的奇偶检查结果均为正确的,则认为信息无错误;如果发现有一个或多个错了,则错误的位由这些检查的结果唯一的确定。 这里需要解决三个关键问题: ( 1)确定奇偶监督的位数 推求汉明码时一项基本的考虑是确定所需最少的监督位数 r,以达到最 高的编码效率。考虑长度为 k位的信息,若附加了 r个监督位,则所发送的总长度为 r+k。在接收器中要进行 k个奇偶检查,每个检查结果或是真或是伪 7。奇偶检查的结果可以表示成一个 r 位的二进制数,它最多可以确定 2r种不同的状态。这些状态中必有一个所有奇偶测试都为真的,便是判定信息正确的条件,其余的 ( 2r-1) 种状态,可以用来判定误码的位置。于是导出2r-1k+r,监督位确定见表 4-1如下: 表 4-1 “检错 -纠错”汉明码的最大字长 ( 2)确定码字格式 在常用的汉明码字格式中,监督位被安排在 1、 2、 4、 8的位置上,这些位置分别标上 D1, D2D r。虽然监督位的安排有任意性,但这种惯用的定位方式在用单个奇偶测试来唯一的确定每个监督位时是方便的。为了说明码字格式,现考虑一个要求传输 11位信息的系统,首先确定监督位数必须是 4,这就形成 15位码字格式,监督位和信息位的格式见表 4-2: 表 4-2 汉明码中监督和信息位的定位 ( 3)确定奇偶监督位 r个监督位是通过对 r+k位复合码字进行奇偶监督而确定的,由上例 r+k=15,只要进行四次偶性测试,这些 测试在所示各位的位置上进行,可见在码字位置 1-3-5-7-9-11-13-15偶监督的测试唯一的确定监督位 D1,同样奇偶测试 B、 C、 D,分别确定 D2、 D3、 D4 ,见表 4-3: nts福州大学本科生毕业论文 14 表 4-3 对接收到的信息进行同样的奇偶测试 ,如果所有的测试都为真 ,则认为信息是正确的 ,如果一个或多个测试有问题 ,则单个误码的位置就找到了 .例如 :如果第 10位数字反了 ,则 A和 C的测试将为真 ,而 B和 D的测试为伪 ,指定 0为真 ,1为伪 ,并构成二进制数 DCBA,以 A为最低有效位 ,则错误位置就可用 1010表示了 . 为了进一步说明汉 明码的编码和测试 ,讨论一下四位信息 1001的编码要求 ,首先把未编码的信息寄存到适当的码位上 ,然后监督位可以 D1,D2,D3可以通过 1-3-5-7, 2-3-6-7, 4-5-6-7码位上进行偶性测试而分别 确 定出来 ,这个要求的监督位为 D1=0,D2=0,D3=1,这就可以写全编码后的码字 ,即 0011001.现在讨论接收到的七位码字中某一码元发生错误后所造成的响 ,设接收到的码字是 0001001,则第三位为错 ,表现出来为 CBA=011. 4.2.1 汉明码的优缺点 线性码的编码和译码容易实现 ,至今仍是应用最广泛 的一类码。汉明码的抗干扰能力较强,但付出的代价也很大,比如 8比特汉明码有效信息只有总编码长度的一半,可以纠正 1个差错发现 2个差错。在实际应用中常常存在各种突发干扰,使连续多位数据发生差错8。为了纠正 3个以上的差错,就要加大码距,使代码冗余度大大增加,通信效率 下降 . 4.3 BCH码的编 译 码算法 4.3.1 BCH码的编码 由第三章的论述可知 ,BCH码编码算法的核心是找到其生成多项式 g(x),而求 g(x)的关键是找出每个根的最小多项式 ,其编码步骤如下 : (1)根据用户输入的 m值 ,生成本原多项式 p(x); (2)构造有限域 GF(2m); (3)根据纠错能力 t值 ,计算最小距离 d=2t+1; (4)找出每个根的最小 m(x); (5)计算生成多项式 g(x); (6)根据 (3-7)(3-8)编码 . 4.3.2 BCH码的译码 nts数字通信系统数据纠检错方法研究 15 和一般的循环码一样 ,译码的第一步是计算接收向量 R(x)的伴随式 ,对于一个纠 t个错误的 BCH码 ,其伴随式是 2t重 向量 ,一般步骤为 : (1)由 R(x)计算出伴随式 S; (2)从 S中求出错误位置多项式 ; (3)求错位号 ,并纠正与错位号对应的 R(x). 4.4 CRC的原理 传统的差错检验法有 :奇偶校验法,校验和法,行列冗余校验法等。这些方法都是 在数据后面加一定数量的冗余位同时发送出去,例如在单片机的通讯方式 2和 3中, TB8就可以作为奇偶校验位同数据一起发送出去,在数据的接收端通过对数据信息进行比较、判别或简单的求和运算,然后将所得和接收到的冗余位进行比较,若相等就认为数据接收正确,否则就认为数据传送过程中出现错误。但是冗余位只能反映数据行或列的奇偶情况,所以这类检验方法对数据行或列的偶数个错误不敏感,漏判的概率很高。因此,此种方法的可靠性就差 10。 循环冗余校验英文名为 Cyclical Redundancy Check,简称 CRC,它是利用除法及余数的原理来作错误侦测的,实际应用时,发送装置计算出 CRC并随数据一同发送给接收装置,接收装置对收到的数据重新计算 CRC并与收到的 CRC相比较,若两个 CRC值不同,则说明数据通讯出现错误 12。由于这种方法取得校验码的方式具有很强的信息夜盖能力,所以它是一种效率极高的错误校验法。错误的概率几乎为零。在很多的仪器设备中都采用这种冗余校验的通讯规约。 根据应用环境与习惯的不同, CRC又可分为以下几种标准: CRC-12码; CRC-16码 ; CRC-CCITT码; CRC-32码; CRC-12码通常用来传送 6-bit字符串。 CRC-16及 CRC一 CCITT码则是用来传送 8一 bit字符,其中 CRC-16为美国采用,而 CRC-CCITT为欧洲国家所采用。 CRC一 32码大都被采用在一种称为 Point-to-Point的同步传输中 13。 4.5 实验记录 应用软件: MATLAB 用语句 parmat,genmat=hammgen(3)可以生成一个( n,k) =( 7, 4)汉明码的生成矩阵和校验矩阵,而且生成矩阵有标准形式 p,Ik. parmat,genmat=hammgen(3) 校验矩阵: parmat = 1 0 0 1 0 1 1 0 1 0 1 1 1 0 0 0 1 0 1 1 1 nts福州大学本科生毕业论文 16 生成矩阵 : genmat = 1 1 0 1 0 0 0 0 1 1 0 1 0 0 1 1 1 0 0 1 0 1 0 1 0 0 0 1 函数 bchpoly可以能产生 BCH码的生成多项式,系数以升幂的顺序作为一个行向量列出。 如: p=bchpoly(15) p = n k t 15 11 1 15 7 2 15 5 3 下面的例子是对随机信息进行 BCH编码,再加入随机噪声,最后进行译码。 M文件源程序如下: m=4; n=2m-1;%设定码字长 度 params=bchpoly(n); k=params(3,2);%取第三行中的 k位 t=params(3,3);%取第三行中的纠错能力 t位 msg=randint(5,k);%设置 5组 code=bchenco(msg,n,k);%编码 noisycode=rem(code+randerr(5,n,1:t),2);%加入随机噪声 newmsg,err,ccode=bchdeco(noisycode,k,t);%译码 if ccode=code disp(all errors were corrected) end if newmsg=msg disp(the message was recovered) end 实验结果为 noisycode = Columns 1 through 10 1 0 1 1 0 0 0 1 1 1 0 1 1 1 1 1 1 0 0 0 0 0 1 0 0 1 1 0 1 0 nts数字通信系统数据纠检错方法研究 17 1 0 1 0 1 1 0 1 0 1 1 1 1 1 1 0 0 1 1 0 Columns 11 through 15 0 1 1 0 0 1 0 0 1 1 1 1 1 1 1 0 0 0 1 0 0 1 1 0 1 Code= code = Columns 1 through 10 1 0 1 0 0 0 0 1 1 1 0 1 0 1 1 1 1 0 0 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 0 0 1 0 Columns 11 through 15 0 1 1 0 0 1 0 0 1 1 1 1 1 1 0 0 0 1 1 0 0 1 1 0 1 all errors were corrected. nts福州大学本科生毕业论文 18 第五章 CRC校验的 单片机实现 5.1 CRC校验码的生成过程 传送一 k位信息的数据: M=( mk-1,mk-2,m 1,m0) ,若将其视为一多项式的系数,它对应的多项式为 M(x)=mk-1xk-1+mk-2xk-2+m 1x+m0,将信息码后面添加 r个 0,可构成多项式xrM(x)=mk-1xr+k-1+mk-2xr+k-2+m1x r+1+m0xr.将其作为被除式,选择一个 r次的 CRC校验式G(x)来除,得到一个商式 Q(x)和一个余式 R(x),xrM(x)=Q(x)G(x)+R(x),之所以要填 r个 0,是因为 G(x)为 r次多项式,余式 R(x)最多为 r-1次多项式,追加在 xrM(x)的后面不会影响数据信息的系数。 CRC码的计算过程为模 2除法取余式的过程,由于采用模除,没有采用进位和借位,故加减相当于异或运算,因此 xrM(x)+R(x)=Q(x)G(x)12。 求得余式 R(x),使等式左端的式子恰为校验式的整数倍,则将其与待发送的数据多项式 xrM(x)相加得到的 r+k次多项式的各个系数作为编码一起发送。其中高 k位是信息 位,低 r位为校验位,在数据接收端,再对接收到的信息进行校验,如能被同一个 G(x)整除,则表明通信正确,若余数不为 0,则表明传输有错,从而达到检错的目的 9。 例如要传送 8位数据 91H(10010001),可把它看成是 7次多项式 M(x)=x7+x4+1的系数, CRC校验码为 G(x)=x4+x2+1,系数为 10101, x4M(x)为 100100010000,详细计算过程为: 图 5 1 模 2除法取例 算得的余式为 1011,将其附加于数据信息后面,发送的数据编码为 100100011011,其中前 8位是信 号信息,后 4位是计算得来的附加校验信息。接收端用 G(x)检验正确后,合弃后 4位,得到有用的用户数据信息。从图 5-1的计算过程可以看出,虽然每次运算都有 5位参与,但最左面的高位总是为 1,且运算结果为 0。 CRC校验虽然不能 100%检测出错误,但它的漏检率相当低。漏检概率和所选取的校验标准相关,国际上已有多种 CRC校验式标准。其中 8位的 CRC码标准有 CDT约定,校验式为 G(x)=x8+x2+x+1;CCITT标准为 G(x)=x16+x12+x5+1 CRC-16标准为 G(x)=x16+x12+x2+1;校验错误效 率最高的是 32位的标准,其 中 G(x)=x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x+1 ( 5-1) nts数字通信系统数据纠检错方法研究 19 我们以最常用的 CRC-16码进行说明。 冗余循环码包括两个字节,即 16位二进制数,先预置 16位寄存器全部为 1,再逐步把每 8位的数据信息进行处理,在进行 CRC计算时只用 8位数据位,起始位和停止位,如有奇偶校验位的话也包括奇偶校验位,都不参与 CRC运算 13。 在计算 CRC码时, 8位数据与寄存器的数据相异或,得到的数据向低位移一位,用 0填补最高位 ,再检查最低位。如果最低位为 1,把寄存器的内容与预置数相异或 ;若最低位为0,则不进行异或计算。这个过程一直重复 8次,第 8次移位后,下一个 8位数据再与现在寄存器中的内容相异或,这个过程和以上一样重复 8次。当所有的信息处理完后,最后寄存器中的内容即为 CRC码。这个 CRC码将由发送设备跟在数据的最后一起发送。 计算 CRC的步骤为 : (1) 预置 16位寄存器位十六进制数 FFFF(即全为 1),称此寄存器位 CRC寄存器。 (2) 把第一个 8位数据与 16位寄存器的低位相异或,将结果放于 CRC寄存器中 ; (3) 把寄存器的 内容右移一位 (朝低位 ),用 0填补最高位,检查最低位 ; (4) 如果最低位为 0,重复第三步 (再次移位 );如果最低位为 1,CRC寄存器与多项式码进行异或 ; (5) 重复步骤 3和 4,直到右移 8次 ,这样整个 8位数据全部进行了处理 ; (6) 重复步骤 2到 5,进行下一个 8位数据的处理 ; (7 )最后得到的 CRC寄存器即为 CRC码。 5.2 CRC码的汇编语言实现 在发送端,其过程较为简单: 从信号源接收数据 经过 CRC校验处理 发送出去。而在接收端,其流程图如下: 图 5-2单片机接收 CRC校验 流程图 nts福州大学本科生毕业论文 20 CRC校验子程序如下: ORG 0000H MOV 31H,#91H MOV R0,#31H MOV R3,#0FFH MOV R4,#0FFH CRCC1:MOV R7,#08H MOV A,R4 XRL A,R0 MOV R4,A CRCC2: CLR C MOV A,R3 RRC A MOV R3,A MOV A,R4 RRC A MOV R4,A DJNZ R7,CRCC3 CRCC3: MOV R4,A CLR C RRC A JNC CRCC4 MOV A,R4 XRL A,#15H MOV R4,A MOV A,R3 XRL A,#00H MOV R3,A CRCC4: SJMP CRCC2 nts数字通信系统数据纠检错方法研究 21 第六章 MATLAB仿真结果分析 6.1 数字通信系统模型 本人所建立的数字通信系统的模型为二进制贝努利 信号产生器,信道为高斯白噪声信道,使 图 6-1 数字通信系统模型 用的调制方式为 BPSK调制 ,信道为高斯白噪声信道 . 设 bitrate=800bit/s,则在没有信道编码的情况下,其误码率和信噪比的关系曲线为: nts福州大学本科生毕业论文 22 图 6-2 信噪比和误码率关系曲线 为此编写的 m文件如下: x=-10:10; SimulationTime=1000s; for i=1:length(x) SNR=x(i); sim(project_2); y(i)=mean( biterrorrate) ; end semilogy(x,y,k-v); grid on; xlabel(SNR); ylabel(bit error rate); hold on; 若采用信道编码,则信道模型如下: nts数字通信系统数据纠检错方法研究 23 图 6-3 采用信道编码的数字通信系统模型 本模型采用的是汉明编译码,与非编码情况下的比特率是相同的,那么下面我们比较一下对于编码和非编码情况下的信噪比和误码率之间的区别,如图: 图 6-4 通信系统中编码和非编码情况 下信噪比和误码率的比较 ( 7, 4) nts福州大学本科生毕业论文 24 6.2 仿真结果分析 根据单位比特的能量与单边噪声能谱密度的比值 Er/No,我们可以知道在 AWGN信道上QPSK或 BPSK的误比特率理论表达式。这种方法同样适用于那些应用编码的系统,不过首先必须解决可比性的问题。编码引入了额外的比特,所以我们要么必须增加发送每条给定信息的时间,要么必须增加带宽(通过更快的传输来实现)。二者都会增加信息所承载的总噪声;前者是因为传输时间加长而使噪声增加,后者是因为更多的噪声落在频带内。 解决这一问题的答案就是根据 单位比特信息的能量与噪声能谱密 度的比值 Eb/No来估算链路的误码情况。在引入编码之后。信息比特的比特数小于总的传输比特数,所以和Er/No相比, Eb/No的值有所增加。举例来说,如果要传送 100比特的信息,而使用 1/2的码率,则必须传送 200比特信息。假设保持传输的比特率和功率不变,那么消息中的能量会加倍,而信息量则保持不变。因此单位比特信息的能量会加倍,即增加 3db。如果码要提供真正的增益,它就必须克服这增加的 3db能量。码的性能曲线可以在下述三个阶段中建立。 第一阶段,根据所使用的调制方法,对照 Eb/No(此时,与 Er/No相同 )绘 制误比特率曲线。 Eb/No的值通常以 db为单位,误比特率按照对数比例绘制,通常覆盖几个 10倍程,例如从 10-1 到 10-6。第二阶段要加入编码,不必考虑误比特率的变化。当传输比特的数目固定时,信息比特的数目便会减少,这样,相对于 Er/No, Eb/No的值会增加,增加的因子为1/R,或增加 10lg(1/R0)db,第三阶段要考虑编码对误比特率的影响,可以通过仿真操作或计算完成, 对于非编码性能曲线上的每个点来说,在编码性能曲线右侧固定距离的位置上,都存在一个与之对应的点,该点会显示出另一个(在很多情况下是较低的 )误比特率。 nts数字通信系统数据纠检错方法研究 25 图 6-5 BCH( 15, 7, 2) 和非编码码 状态下的性能曲线 比较 图 6-4的示例所示为数字通信系统在 BPSK调制下的用汉明编码和非编码状态下的信噪比和误码率之间的曲线性能,标三角的为非编码的性能曲线,可以看出,若要达到前面所提到的电力线载波通信的误比特率的 10-5的要求 ,经过编码以后的要求信噪比为 6.3db左右,而非编码的要求 9.2db左右,可以说在 比特率为 10-5时,编码增益为 2.9db。 我们所说的编码增益必须和所需的误比特率结合起来考虑,而误比特率则取决于实际的应用 。注意,好的编码 增益只有在所需的误比特率相对较低的情况下才可获得,在误比特率相对较高的情况下,编码增益可能为负这一点在图 6-4上得到了充分的体现,在信噪比小于 0db的情况下,编码和非编码没有太大的区别,有时反而更低,。还要注意,我们所说 的误比特率是指来自解码器的误比特率,而不是来自解调器的误比特率。 只有在增加功率可以改善性能的情况下,编码增益才是一个有用的概念。有时,用渐近编码增益来说明一种码的优值,它仅与码率和最小距离有关,其公式为: Ga=10logR( t+1) , R为码率, t为纠错个数 14。 虽然我们通过使用 Eb/No解决了可比性的一个问题,但是还存在一个通常被忽略的问题,如果看看非编码信道和具有相同 biterrortate的编码信道,就会发现它们的特性完全不同。在 AWGN信道上,差错发生的时间间隔是随机的。而在编码信道上,当解码器发生错误时,会有一些范围较大的无差错间隔零散分布在相对密集的突发错误间, 这样我们对较大传输单元、帧、分组或消息上的误码率感兴趣,可以看到,具有相同 误比特率 的编码信nts福州大学本科生毕业论文 26 道将会呈现较少的错误,但是在传输遭到破坏的部分会有更多的比特错误 15。在相同误比特率的情况下,比较编码信道和非编码信道,对编 码信道可能是不公平的。例如,在 100个发送的消息中,非编码信道可能造成 10条消息错误,每条消息错 1个比特,编码信道可能造成 1条消息错误,但是这个消息中有 10个比特错误,误比特率是相同的,但是在编码信道上,消息的误码率会好一些。 6.3 仿真中存在的问题 及解决方法 ( 1)关于各个模块参数的设置的问题,模块参数的设置与编写 m文件不同,模块组成整个的系统,因此如果哪一个模块的设置不好的话就会影响到正个系统,首先是关于汉明码编码和译码的问题,其中的参数为数据长度和校验位数,因此必须熟悉汉明码的信息位和码字的关系 ,即 2m-1=n; n-k=m。还有 BCH码的码字长度问题,有信息位数和生成多项式的最高次数相同,给定 m,则码长度为 2m-1=n。 ( 2)有关信号源,在编码中设置为帧格式来传送。 ( 3)关于 m文件的编写, 在这里误比特率必须取平均,因为在固定的信噪比的情况下,在模块运行时间内,不仅传送了一帧,但这里的时间设置必须使帧发送的正好为整数。 ( 4)关于绘制曲线的问题,在 m文件中写的信噪比的范围在曲线图中并未表现出来那么多,究其原因是有两个,一是帧长度太短;二是信噪比太大。还有如果设置的帧长度太长时,而使用 BCH编码则运行时间非常的长。在比较码的性能的时候必须在相同的条件下才有可比性。 6.4 编码方案的选择 前面着重介绍了各种纠检错码的性能及其仿真,那么通过这些的分析,使我了解了各种码的优劣,那么如何选择编码方案呢?其实影响编码方案的因素有数据、信道及具体的用户限制。实际上,这几乎包括了方方面面的因素。数据可以通过它的结构、信息的特性、对误码率的要求、数据速率以及各种实时处理要求来影响决策 17。信道通过功率和带宽的限制以及噪声机制的特性对解决方案产生影响 。 将编码引入任意的系统设计,其主要目的在于降低其 他组件的成本。可靠的通信通常可以通过简单而昂贵的方法来实现,例如增加功率。设计良好的编码方案应当降低总的系统成本,并使整个系统 的性能和原来的一样,甚至更好。不过,如果这个目标得到实现,设计者需要仔细选择方法并综合考虑整个现有的技术范围。我想应该从以下几个方面来考虑: ( 1) 数据结构。如果信息被分成组,那么它很自然的适合使用分组编码的方案。如果可以将其视为连续的数据流,那么使用卷积码是最适合的选择。举例来说,对于计算机存储器内容的保护,一般采用分组编码的方法,因为系统需要能够访问有限的数据段,并对每个段进行 独立解码。在这样的应用中, 只需在很短的分组内考虑数据的顺序 18。另一方面,nts数字通信系统数据纠检错方法研究 27 用于传送数字语音或电视图象的信道可能会选择卷积方案。这里的信息可以看做是具有明确时序的连续的数据流。 ( 2)信息类型。传统上根据误比特率来评价编码方案的性能。这对于很多类型的信息来说并不合适,最合适的度量方法通常会影响到对编码方案的选择。确实,很难去设想某种应用的误比特率会具有直接的重要性 18。如果传送的是离散信息,其中,不同的比特组合各自代表一种完全不同的信息,那么消息的误码率是至关重要的, 每个错误消息中比特错误的个数则完全 不重要。在许多情况下,比特之间也有重要和不重要之分,只有在所有位置上的比特错误都同等重要时,误比特率才能作为主观评价的一个标准。但是可以接受的误码率不仅依赖于数据类型,而且取决于数据是在线处理还是离线处理,如果数据被立即处理,那么就可以检测到错误并启用重传。离线处理意味着误码不会被检测出来,误码率通常要求较低。 ( 3)数据速率。 使用不同码可达到的数据速率很难用数字表达出来。其中一部分原因是随着技术的进步,现在给出的所有数字很快就会过期;还有一部分原因是因为通过采用更加复杂、当然也是更加昂贵的解决方法,更快的 速度也是可以达到的,尽管如此,对于确定的复杂度,有一些码可以比其他码的处理速度更快。当然,数据速率的要求也会影响到对技术的选择,在硬件中能够达到的速率越高,解码速度就越快,但这会增加硬件的复杂度,从而使成本过高。 ( 4) 实时数据处理。 如果需要实时数据处理,解码器必须能够与相关的数据速率相适应。这可以用延时 为代价来实现,例如,当对一个序列解码时,下一个序列在缓冲。延迟通常有一个底限,这个值是不能超过的,对解码后的信息进行缓冲,直到最大的延迟过期,这种方法可以产生平缓的信息;流到达终端 16。但是延迟与码长度 和数据速率有关,最大的可以接受的延迟可能对所使用的码长度有所限制。 ( 5)功率和带宽的限制。功率和带宽的增加都会增加
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
提示  人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:tx051数字通信系统数据纠检错方法研究
链接地址:https://www.renrendoc.com/p-516473.html

官方联系方式

2:不支持迅雷下载,请使用浏览器下载   
3:不支持QQ浏览器下载,请用其他浏览器   
4:下载后的文档和图纸-无水印   
5:文档经过压缩,下载后原文更清晰   
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

网站客服QQ:2881952447     

copyright@ 2020-2025  renrendoc.com 人人文库版权所有   联系电话:400-852-1180

备案号:蜀ICP备2022000484号-2       经营许可证: 川B2-20220663       公网安备川公网安备: 51019002004831号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知人人文库网,我们立即给予删除!