资源描述
1基于 51单片机的(7,4)循环码编译码的设计电子信息科学与技术专业学生 王东菊指导老师 王心水摘要: 通信系统中最重要的是通信质量问题,而衡量通信系统质量的主要性能指标就是有效性和可靠性。所谓有效性是指要求系统高效率地传输信息,在数字通信系统中信源编码旨在解决有效问题;所谓可靠性,是指要求系统可靠地传输消息,而信道编码旨在解决可靠性问题。以往循环码编译电路大多用移位寄存器和模 2 构成的线性时序网络来完成。基本电路简单,容易实现。但在体积和功能扩展上受到了限制而不能发挥更大的作用。采用 (7,4)循环码,充分运用单片机的软件功能进行编码及译码纠错,可有效的克服来自通讯信道的干扰,保证数据通讯的可靠及系统的稳定,使误码率大幅度的降低。而且,只要改变软件算法,即可适用于不同微机、不同字长的需要。总之,本设计使用软件编程方法实现编译码过程既有简化电路、可靠性高、运算速度快、体积小等优点,又可以扩展电路其他功能,而且可以根据需要任意修改,这是其它硬件电路所无法相比的,是抛开传统模式的一种新尝试。关键词: 单片机 通信 循环码 编码 译码 纠错 抗干扰The design of Encoding and Decoding of (7,4) Cyclic Code Based on the 51 SCM Student majoring in Electronic information science and technology Wang DongjuTutor Wang XinshuiAbstract: The most important problem in communication system is communication quality, and the most important measures of the quality of communication system is effectiveness and reliability. So-called effectiveness refers to the system efficiently transmit information in digital communication system .So-called reliability, refers to the system, and reliable transmission channel encoding aims at solving problems. Reliability, Previous cycle code compiler circuit with the shift register and mostly composed of two linear temporal network to accomplish. The basic circuit is simple and easy to implement. But in volume and function expansion by restrictions and cannot play a bigger role. Using (7,4) codes, make full use of the MCU software functions encoded and decoding correction, which can effectively overcome the interference from communication channel, ensure the reliability of data communication systems, the stability and the ber greatly reduced. And, just change the software algorithm, and can be used in different microcomputer, different words long need. Anyhow, this design using the software programming method (both simplified decoding process, high reliability, operation circuit faster, smaller, and may expand advantages and other functions, circuit according to need any modification, this is compared to other hardware circuit cannot abandon traditional pattern, is a new attempt.Key words: Microcontroller;Communication;Cyclic code;Encode;Decode;Correcting 2code;Anti-intreferance引 言在数据通信中,误码率是项重要指标。误码可能发生在各个环节,大量实践证明,传输媒介是产生误码的主要来源。为了提高数据传输可靠性,人们开始广泛采用编码技术,通过编码以一定的规则产生一些附加数字(称为监督数字),使原来不相关的信息序列变为相关的新序列(称为码字或者码序),然后把新的序列发送出去。通过编码的方法使信息具有纠检差错的功能。该通信模型可以简要的用图 1 来表示: 编码 信道干扰收信者译码纠错 信源图 1 通信模型图示近年来随着计算机软件的飞速发展,许多用实物实现的问题都可以在软件上得以实现。单片机具有内部资源丰富、性能全面、通用性强且可覆盖多种应用要求的优点,MCS-51 系列单片机以其功能完善且方便易学而得到了越来越多的应用。随着科研、生产中测量与控制工程量的增大,单个单片机往往已不能满足要求。一项工作可能会有主从系统组成的单片机网来完成,这就会有各机之间大量的数据传送。同一般的通信系统一样,由于信道传输特性不理想和加性干扰的影响,数字信号在传输过程中码元波形会变坏,接收数据端中可能有差错,必须对接收到的数据进行校验。差错控制编码是提高数字传输可靠性的一种有效方法。它是通过对发送端待传送的信息序列附加一些监督码元或进行某种变换,使多余码元与信息码元之间以某种确定的规则相互关联,即使原来彼此独立、没有相关性的信息码元序列变换为具有相关性的序列。接收端按照这种相关性对信息码元和监督码元进行检验,一旦传输过程中发生差错,即可检查出来并予以纠正。随着数字电路技术的飞速发展,循环码检错纠错技术已经广泛应用于各种通信系统,译码电路采用微处理器或数字信号处理器,实现简单,检错纠错能力强,可降低误码率,确保数据传输的可靠性,大大提高了通信质量。数字信号在传输过程中,由于受到干扰的影响,码元波形将变坏。接收端收到后可能发生错误判决。为了提高传输的可靠性,在信道中往往要加入差错控制技术。循环码是一种线性分组码,单片机编程是软件实现循环码的一种方式,在通信中用于提高信道的可靠性。1.设计思想1.1 选择编码形式人们已经研究出很多编码方法,如奇偶校验码、汉明码、循环码、卷积吗等。这些编码中,有的具有检错能力,有的既有检错能力又有纠错能力。在众多的编码中,汉明码比较直观简单,传输信息数字的频率(即信息率)最高,它既具有检错能力,又具有纠错能力,而且软硬件实现起来也较为简单。本设计采用循环码编码,当接收端发现接收到的信息出现了一位差错时,在译码的同时也就完成纠错。1.2 MCS-51编码方案设计3实现循环码的方法很多,可以用软件实现也可以由硬件完成,以往循环码编译电路大多用移位寄存器和模 2 构成的线性时序网络来完成,基本电路简单,容易实现。但在体积和功能扩展上受到了限制而不能发挥更大的作用。如果充分运用单片机的软件功能进行编码及译码纠错,则可以打破体积和功能扩展上的限制,而且只要改变软件算法,即可适用于不同微机、不同字长的需要。2.循环码的一切基本概念2.1 循环码的内涵数字信号在传输过程中,由于受到干扰的影响,码元波形将变坏。接收端收到后可能发生错误判决。为了提高传输的可靠性,在信道中往往要加入差错控制技术。 在差错控制技术中,有一种编码是建立在代数学基础上的,这种码称为代数码。而在代数码中常见的是线性码。在线性码中信息位和监督位是由一些线性代数方程联系着的,或者说,线性码是按照一组线性方程构成的。 循环码是一种重要的线性分组码,它是在严格的代数学理论基础上建立起来的,这种码的编码和解码设备都不太复杂,而且检纠错能力较强。接下来将详细介绍循环码的性质及编码和解码算法。2.1.1 循环码的概念及生成多项式在实际应用中,数据传输一般采用系统码的编码方式,即在发送的信息序列之后附加上特定位数的冗余位,该冗余位称为所发送信息序列的监督位。监督位一般是由所发送的信息序列经过恰当的变化而生成的。若监督位由信息位经线性组合而得到,则称得到的系统码为线性分组码。循环码是线性分组码的一个重要子类,具有严密的代数学理论。循环码“线性”是指任意两个循环码模 2 相加所得的新码仍为循环码。 (n,k )循环码表示其中信息位为 k,监督位为 n- k。若循环码的所有码字多项式都是由一个次数最低的非零首一多项式 g(x) 的倍数,则 g(x)生成该码,并称 g(x)为该码的生成元或生成多项式。 (n,k)循环码的生成多项式 g(x)一定是 +1 的因式: +1 =g(x)h(x);反之,若 g(x)为 n- nxnxk 次,且除尽 +1,则此 g(x)一定生成一个(n, k )循环码。nx2.1.2 循环码的性质循环码是线性分组码的一种,因而它具有线性码的性质。线性码的一个重要性质是封闭性,所谓封闭性,是指一种线性码中的任意两个码组之和仍为这种码中的一个码组。由于线性码具有封闭性,所以两个码组之间的距离必定是另一个码组的重量,因此线性码的最小距离就是码的最小重量(除全 0 码组外) 。 循环码除了具有线性码的一般性质外,还具有自己的性质:循环性。所谓循环性,是指一码组循环一位(即将最右端的一个码元移至左端,或反之)以后,仍为该码中的一个码组。由于循环码具有优良的代数结构,使得可用简单的反馈移位寄存器实现编码和伴随式计算,并且可以使用多种简单而有效的译码方法。循环码是研究最深入、理论最成熟、应用最广泛的一类线性分组码。接下来,详细分析一下循环码的编码及译码算法。42.1.3 循环码的编码算法根据给定的(n,k )值,再根据循环码生成定理对所给定信息位 k,选定生成多项式 g(x),所有码多项式 c(x)都能被 g(x)整除,且次数小于 n- k。若已知 ,并设信息元多项式 011gxxgxgknkn 要编码成系统循环码形式,即码字的最0121)( mmxkk左边 k 位是信息元,其余 n- k 位是校验元,则要用 乘以 m(x),再加上校knx验元多项式 r(x),这样得到的码字多项式 011021)()( rxrxxrxc knknnknkkn ,上式中 。c(x)一定是 g(x)的倍数,即有多项式011rkn或 ,注意到)()()( xgqrxmckn )(mod)(xgxrxckng(x)为 n- k 次多项式,而 r(x)最多为 n- k-1 次多项式,必有 r(x)= ,即 r(x)必是 除以 g(x)的余式。)(od)()(rkn )(kn上述过程指出了系统循环码的编码方法:⑴将信息组 m(x)乘以 变成 ,乘以 的目的是将 m(x)提高 n- knx)(xmknknk 次。⑵然后将得到的 除以 g(x),得到商 q(x)和余式 r(x)/ g(x),可)
展开阅读全文
温馨提示:
金锄头文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
相关搜索