文档库 最新最全的文档下载
当前位置:文档库 › (15,7)循环码的编译方法.

(15,7)循环码的编译方法.

(15,7)循环码的编译方法.
(15,7)循环码的编译方法.

*****************

实践教学

*****************

兰州理工大学

计算机与通信学院

2013年秋季学期

《计算机通信》课程设计

题目:(15,7)循环码的编译码方法

专业班级:通信工程(1)班

姓名:赵晓瑾

学号:10250131

指导教师:王惠琴

成绩:

摘要

本次课程设计首先介绍了线性分组码的编译码原理,循环码的编译码方法、步骤、流程。其次在仿真部分利用MATLAB软件完成任意(15,7)循环码的编码和译码的实现,它可以对输入的七位的信息码进行循环码编码,经过高斯信道的传输后,对于接收到的15位码字可以译出七位信息码,最后,求出了该码的最小码距以及其纠错能力并且分析该码在高斯信道下的误码性能。

关键词:循环码;编码;译码;纠错

目录

一、前言 (1)

二、基本原理 (3)

2.1 线性分组码的编译码原理 (3)

2.1.1 生成矩阵 (3)

2.2 伴随式与译码 (4)

2.2.1 码的距离及纠检错能力 (4)

2.2.2 伴随式与译码 (5)

2.3 循环码的编译码原理 (5)

2.3.1 编码原理 (6)

三、系统分析 (11)

四、系统设计及调试 (12)

4.1高斯信道下的(15,7)循环码编译码系统设计 (12)

4.2 循环码编码过程 (12)

4.3 循环码译码过程 (13)

4.4 高斯信道下循环码误码率分析 (14)

参考文献 (17)

附录 (18)

致谢 (23)

一、前言

随着计算机、卫星通信及高速数据网的飞速发展,数据的交换、处理和存储技术得到了广泛的应用,人们对数据传输和存储系统的可靠性提出了越来越高的要求,因此,如何控制差错、提高数据传输和存储的可靠性,成为现代数字通信系统设计的重要课题。

在计算机通信信息码中循环码是线性分组码的一个重要子集,是目前研究得最成熟的一类码。它有许多特殊的代数性质,它使计算机通信以一种以数据通信形式出现,实现了在计算机与计算机之间或计算机与终端设备之间进行有效的与正确地信息传递,它使得现代通信的可靠性与有效性实现了质的飞跃。它是现代计算机技术与通信技术飞速发展的产物,在日常生活通信领域、武器控制系统等领域都被广泛应用。

循环码作为线性分组码的一种,它具有线性分组码的一般特性,此外还具有循环性。循环码的编码和解码设备都不太复杂,且检(纠)错能力强。它不但可以检测随机的错误,还可以检错突发的错误。)

(k,n循环码可以检测长为k

n 或更短的任何突发错误,包括首尾相接突发错误。

循环码是一种无权码,其编排的特点是相邻两个数码之间符合卡诺图中的邻接条件,即相邻两个数码之间只有一位码元不同,码元就是组成数码的单元。符合这个特点的有多种方案,但循环码只能是表中的那种。

循环码的优点是没有瞬时错误。因为在数码变换过程中,在速度上会有快有慢,中间经过其它一些数码形式,称它们为瞬时错误。这在某些数字系统中是不允许的,为此希望相邻两个数码之间仅有一位码元不同,即满足邻接条件,这样就不会产生瞬时错误。循环码就是这样一种编码,它可以在卡诺图中依次循环得到。循环码又称格雷码(Gray Code)。

纠错码(error correcting code),在传输过程中发生错误后能在收端自行发现或纠正的码。仅用来发现错误的码一般常称为检错码。为使一种码具有检错或纠错能力,须对原码字增加多余的码元,以扩大码字之间的差别,即把原码字按某种规则变成有一定剩余度(见信源编码)的码字,并使每个码字的码之间有一定的关系。关系的建立称为编码。码字到达收端后,可以根据编码规则是否满足以判定有无错误。当不能满足时,按一定规则确定错误所在位置并予以纠正。

纠错并恢复原码字的过程称为译码。检错码与其他手段结合使用,可以纠错。

纠错编码又称信道编码,它与信源编码是信息传输的两个方面。它们之间存在对偶的关系。应用信道译码直接对一些自然信息进行处理,可以去掉剩余度,以达到压缩数据的目的。为了使一种码具有检错或纠错能力,必须对原码字增加多余的码元,以扩大码字之间的差别,使一个码字在一定数目内的码元上发生错误时,不致错成另一个码字。准确地说,即把原码字按某种规则变成有一定剩余度的码字,并使每个码字的码元间有一定的关系。关系的建立称为编码。码字到达收端后,用编码时所用的规则去检验。如果没有错误,则原规则一定满足,否则就不满足。由此可以根据编码规则是否满足以判定有无错误。当不能满足时,在可纠能力之内按一定的规则确定错误所在的位置,并予以纠正。纠错并恢复原码字的过程称为译码;码元间的关系为线性时,称为线性码;否则称为非线性码。检错码与其他手段结合使用,可以纠错。检错反馈重发系统(ARQ系统)就是一例。

二、基本原理

2.1 线性分组码的编码原理

2.1.1 生成矩阵

线性分组码(n ,k )中许用码字(组)为2k

个。定义线性分组码的加法为模二加法,乘法为二进制乘法。即1+1=0、1+0=1、0+1=1、0+0=0;1×1=1、1×0=0、0×0=0、0×1=0。且码字与码字的运算在各个相应比特位上符合上述二进制加法运算规则。

线性分组码具有如下性质(n ,k )的性质: (1).封闭性,任意两个码组的和还是许用的码组; (2).码的最小距离等于非零码的最小码重;

对于码组长度为n 、信息码元为k 位、监督码元为r =n -k 位的分组码,常记作(n ,k )码,如果满足2r -1≥n,则有可能构造出纠正一位或一位以上错误的线性码。

(15,7)线性分组码有7152-个许用码字或合法码字,另有71522-个禁用码字。发送方发送的是许用码字,若接收方收到的是禁用码字,则说明传输中发生了错误。

为了深化对线性分组码的理论分析,可将其与线性空间联系起来。由于每个码字都是一个二进制的n 重,及二进制n 维线性空间Vn 中的一个矢量,因此码字又称为码矢。线性分组码的一个重要参数是码率r=k/n,它说明在一个码字中信息位所占的比重,r 越大,说明信息位所占比重越大,码的传输信息的有效性越高。由于(n,k)线性分组,线性分组码的2k 个码字组成了n 维线性空间Vn 的一个K 维子空间。因此这2k

个码字完全可由k 个线性无关的矢量所组成。

一个系统码的生成矩阵G ,其左边k 行k 列应是一个k 阶单位方阵I k ,因此

生成矩阵G 表示为

[]P I G K = (2-1) 式中,P 是一个k ×(n-k)阶矩阵.

2.1.2 校验矩阵

生成矩阵的性质:具有[]Q I K 形式的生成矩阵称为典型生成矩阵。由典型生成矩阵得出的码组A 中,信息位的位置不变,监督位附加于其后。这种形式的码组称为系统码。 矩阵G 的各行也必须是线性无关的。如果已有k 个线性无关的码组,则可以将其用来作为生成矩阵G ,并由它生成其余码组。

监督矩阵: (2-2)

监督矩阵可用来校验和纠错。

由H 矩阵得到(n,k)线性分组码的每一码字c i,(i=1,2,…,2k ),都必须满足由H 矩阵各行所确定的线性方程组,即 c i ·H T =0.(7,3)码的生成矩阵G 中每一行及其线性组合都是(n,k )码的码字,所以有G ·H T =0。由G 和H 构成的行生成的空间互为零空间,即G 和H 彼此正交。H=[P T I r ]其右边r 行r 列组成一个单位方阵。

2.2 线性分组码的译码原理

2.2.1 码的距离及纠检错能力

1.码的距离

两个码字之间,对应位取之不同的个数,称为汉明距离,用d 表示。一个吗的最小距离min d 定义为{})k ,n (c ,c ,j i ),c ,c (d min d j i j i min ∈≠=,两个码字之间的距离表示了它们之间差别的大小。距离越大,两个码字的差别越大,则传送时从一个码字错成另一码字的可能性越小。码的最小距离愈大,其抗干扰能力愈强。

2. 线性码的纠检错能力

(1)对于任一个)(k ,n 线性分组码,若要在码字内检测出e 个错误,则要求

码的最小距离1e d +≥;

(2)纠正t 个错误,则要求码的最小距离1t 2d +≥;

(3)纠正t 个错误同时检测e(≥t)个错误,则要求1e t d ++≥;

[]r PI H =????

??????=001101101011011001110

2.2.2 伴随式与译码

假设接收端收到的码字为B,那么它和原来发送端发送的码字A之间就有可能存在着误差。即在码组A={a6 a5 a4 a3 a2 a1 a0 }中的任意一位就有可能出错。这样我们在接收端接收到一个码组是就有可能判断错发送端原来应该要表达的意思。为了描述数据在传输信道中出现错误的情况,引入了错误图样E,在错误图样中,0代表对应位没有传错,1代表传输错误。实际上错误图样E就是收序列与发送序列的差。所以在译码中用接收到的码字B模尔加错误图样E就可以得到发送端的正确码字A。因此译码的过程就是要找到错误图样E。

定义:校正子S

T H

T

+

=

S*

= (2-3)

*

A

B

)E

(

H

T H

T

*

=

+

E

A*

H

T

=

E*

H

因为A是编得的正确码字。根据前面所叙述,它和监督矩阵的转置相乘为0。显然,S仅与错误图样有关,它们之间是一一对应的关系。找到了校正子S,也就可以找到E。而与发送的码字无关。若E=0,则S=0;因此根据S是否为0可进行码字的检错。

如果接收码字B中只有一位码元发生错误,又设错误在第i位。即E i-1=1,其他的E i均为0。在后面的译码程序中,建立了一个校正子S与错误图样E对应的表。也就是收到一个B序列,就可以通过计算得到一个校正子,而每一个校正子都对应着一个错误图样E,再通过B模尔加上E,就可以得到正确的码字A。

因为在不同的错误序列B中,同一位码元错误时对应的E是一样的,所以可以利用0000000这个正确的码字让它每位依次错误,来求得它的八个校正子。而这时的矩阵B就是错误图样E。

这样就算得了8个校正子S。而这时的错误序列B,就是错误图样E,所以有: E与S都已经得到,这时就可以建立一个表来将它们一一对应起来,以便在编程过程中用SWITCH语句。

2.3 循环码的编译码原理

2.3.1 编码原理

根据给定的(n ,k )值,再根据循环码生成定理对所给定信息位k ,选定生成多项式g(x),所有码多项式c(x)都能被g(x)整除,且次数小于n- k 。

若已知

()011k n 1k n k n k n g x g x g x g x g ++++=------ (2-4)

并设信息元多项式

012211)(m x m x m x m x m k k k k ++++=---- (2-5)

要编码成系统循环码形式,即码字的最左边k 位是信息元,其余n- k 位是校验元,则要用k n x -乘以m(x),再加上校验元多项式r(x),这样得到的码字多项式

011102211)()()(r x r x r x m x m x m x r x m x x c k n k n k n n k n k k n +++++++=+=---------- (2-6)

式(2-6)中0111)(r x r x r x r k n k n +++=---- 。 c(x)一定是g(x)的倍数,即有多项式

)()()()()(x g x q x r x m x x c k n =+=- (2-7)

)(m od 0)()()(x g x r x m x x c k n ?=+=- (2-8) 注意到)x (g 为k n -次多项式,而r(x)最多为n- k-1次多项式

)x (g m od )x (m x )x (r k n ?=- (2-9)

即)x (r 必是)(x m x k n -除以)x (g 的余式。 上述过程指出了系统循环码的编码方法:

(1).将信息组)x (m 乘以k n x -变成)(x m x k n -,乘以k n x -的目的是将)x (m 提高

k n -次。

(2).然后将得到的)(x m x k n -除以)x (g ,得到商)x (q 和余式)x (g )x (r ,可知该余式 分子)x (r ,即为校验多项式,从而得到码字多项式

)()()(x r x m x x c k n +=- (2-10)

2.3.2译码原理

设发送的码字为C(x),接收到的码字为R(x),如果C(x)= R(x),则说明收到的码字正确;如果C(x)≠R(x),则说明收到的码字出现错误,则有:

)x (E )x (C )x (R += (2-11) 公式(2-11)中的E(x)称为错误图样。当E(x)=0时说明没有错误,用g(x)去除R(x),

)()(x g x R =)

()()(x g x E x C +=)()

()()(x g x E x g x C + (2-12)

因为)x (C 是由)x (g 生成的,故)x (C 必能为)x (g 除尽,显然)x (R 与)x (E 同余式)x (g mod )x (E )x (R ≡,以)x (g 除)x (E 所得余式称为伴随式)x (S 。

由式(2-12)可知,

)x (H )x (E )x (H ))x (E )x (C (H )x (R T =+= (2-13)

若0x E =)(则0)x (H )x (E =;若0)x (E ≠,则0)x (H )x (E ≠。这说明,T H )x (R 仅与错误图样有关,而与发送的码字无关,由此可以确定错误图样表。

由于)x (g 的次数为k n -次,)x (g 除)(x E 后得到余式(即伴随式)(x S )的次数为1-k -n 次,故)x (S 共有k n 2-个表达式,每个可能的表达式对应一个错误格式,可以知道(15,7)循环码的S(x)共有7152-个表达式,可以根据错误图样表来纠正(15,7)循环码的一位错误。

系统循环码的译码方法:将收到的码字)x (R 用)x (g 去除,如果除尽则无错;否则有错。如果有错可由余式)x (S 一一找出对应图样,然后将错误图样)(x E 与

)x (R 模2相加,即为所求码字)x (C ,从而实现纠错目的。

本课程设计要求完成任意(15,7)循环码的编码和译码,其中给出的生成多项式为:

1x x x x )x (g 4678++++=

则生成矩阵G 为g(x)升幂排列时的G 为

(2-13)

对式(2-13)作线性变换,整理成典型形式的系统生成矩阵

(2-14)

若信息码元与式(1.1.13)相乘,得到的就是系统循环码。在本课程设计中,由于生成多项式为:g(x)=x 8+x 7+x 6+x 4+1,校验多项式为 h(x)= x n +1/g(x),因此可由长除法求得校验多项式为h(x)=x 7+x 6+x 4+1,所以校验矩阵H 为

(2-15) 对式(2-15)作线性变换,整理成典型形式的系统生成矩阵

??

?

??????

???????????

?????

?=100010110000000010001011000000001000101100000000100010110000000010001011000000001000101100000000100010110000000010001011H ????

??????

????????????=100010111000000010001011100000001000101110000000100010111000000010001011100000001000101110000000100010111G ?????

????

??????????

???=100010111000000110011100100000011001110010000101110000001000010111000000100001011100000010000101110000001G s

(2-16)

本课程设计中采用(15,7)循环码由生成矩阵可得其最小码距d min 为5由最小

码距可得其纠检错能力可知其最多可检4位错,可纠2位错。

其伴随式如表1所示

错误图样 伴随式 纠错

e=[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]

s=[0 0 0 0 0 0 0 0] 无错

e=[0 0 0 0 0 0 0 0 0 0 0 0 0 0 1]

s=[1 0 0 0 0 0 0 0] 第一位错

e=[0 0 0 0 0 0 0 0 0 0 0 0 0 1 0]

s=[0,1,0,0,0,0,0,0]

第二位错

e=[0 0 0 0 0 0 0 0 0 0 0 0 1 0 0]

s=[0,0,1,0,0,0,0,0]

第三位错

e=[0 0 0 0 0 0 0 0 0 0 0 1 0 0 0]

s=[0,0,0,1,0,0,0,0]

第四位错

e=[0 0 0 0 0 0 0 0 0 0 1 0 0 0 0]

s=[1,0,0,0,1,0,0,0]

第五位错

??

????

???????

???????

??????=100

1

1

1

010000000110100001000000011010000100000001101000010001101110

00000100011011100000010111001100

0000011010001s H 表1 (15,7)循环码错误图样表

e=[0 0 0 0 0 0 0 0 0 1 0 0 0 0 0]

s=[0,1,0,0,0,1,0

,0]

第六位错

e=[0 0 0 0 0 0 0 0 1 0 0 0 0 0 0]

s=[1,0,1,0,0,0,1

,0]

第七位错

e=[0 0 0 0 0 0 0 1 0 0 0 0 0 0 0]

s=[1,1,0,1,0,0,0

,1]

第八位错

e=[0 0 0 0 0 0 1 0 0 0 0 0 0 0 0]

s=[0,1,1,0,1,0,0

,0]

第九位错

e=[0 0 0 0 0 1 0 0 0 0 0 0 0 0 0]

s=[0,0,1,1,0,1,0

,0]

第十位错

e=[0 0 0 0 1 0 0 0 0 0 0 0 0 0 0]

s=[0,0,0,1,1,0,1

,0]

第十一位错

e=[0 0 0 1 0 0 0 0 0 0 0 0 0 0 0]

s=[0,0,0,0,1,1,0

,1]

第十二位错

e=[0 0 1 0 0 0 0 0 0 0 0 0 0 0 0]

s=[0,0,0,0,0,1,1

,0]

第十三位错

e=[0 1 0 0 0 0 0 0 0 0 0 0 0 0 0]

s=[0,0,0,0,0,0,1

,1]

第十四位错

e=[1 0 0 0 0 0 0 0 0 0 0 0 0 0 0]

s=[0,0,0,0,0,0,0

,1]

第十五位错

上式指出了系统循环码的译码方法:将收到的码字R(x) 用g(x) 去除,如果除尽则无错;否则有错。如果有错,可由余式S(x) 一一找出对应图样,然后将错误图样E(x) 与R(x) 模2 和,即为所求码字C(x) ,从而实现纠错目的。

三、系统分析

本次课程设计主要是完成(15,7)循环码的编译码,求出该码的最小码距以及其纠错能力,并分析该码在高斯信道下的误码性能。

循环码的编译码过程如下:

(1)编码过程:第一步:将信息码字表示为)x (m ,其最高次幂为1k -;

第二步:将

)x (m x k n -与)x (g 求模得出相应的余式)x (r ; 第三步:编码结果为

)x (r )x (m x )x (c k

n +=-。 (2)译码过程:第一步:由接收码字)(x R 与监督矩阵相乘得出错误图样S ; 第二步:判断S 是否为零。若不为零,则出错。在假定至多只有一位错的情况下,可以有效地译了相应的信息码字;

第三步:在出错的情况下,将S 与标准监督矩阵对比,得出错误的比特位并进行更正得出前四位为信息码字。

循环码编码的程序框图如下图3

初始化

k n x )x (m -

确定余式r(x): )

()()(x g x x m x r k

n -= 确定c(x): )()()(x r x x m x c k n +=- 错

图 3-1 编码程序框图

存储c(x)

循环码译码的程序框图如图下图3-2 所示:

四、系统设计及调试

4.1高斯信道下的(15,7)循环码编译码系统设计

图4-1 (15,7)循环码在高斯信道下的过程图

4.2 循环码编码过程

初始化

由R(x)确定S(x):错误!未找

到引用源。

S(x)=0,无误码误

由S(x)确定错误图样E(x) 纠错)()()(X R X E x c +=

存储c(x)

图3-2 译码程序框图

信号源

(15,7)循环码编

信道

(15,7)循环码译码

信宿

图4-2 (15,7)循环码的编码程序仿真结果图

由上图可看出,本程序实现了对任意输入消息进行(15,7)循环码的编码。如上图输入a=[1 1 1 0 1 1 1],编码输出b=[ 0 0 1 1 0 0 1 1 1 1 1 0 1 1 0]

4.3 循环码译码过程

图4-3 (15,7)循环码的译码程序仿真结果图

由上图可以看出,编出的码字译码,没有错误,正确译出原码。验证了译码程序的正确性。

(2)将3.2中编出的码字改变一位作为译码程序的输入,译码程序仿真输出为中可得。

图4-4 (15,7)循环码的纠一位错程序仿真结果图

4.4 高斯信道下循环码误码率分析

图4-5 信源产生的序列及无噪输出序列

有上图可以看出编码器输入信号和输出信号的时域图。是由0,1组成的序列。 编码器输入信号为7位,编码器输出信号为15位,译码器输出信号为7位。

5

10

15

20

25

30

00.5

1

编码器输入信号

0102030405060

0.5

1

编码器输出信号

0510********

0.5

1

译码器输出信号

010********

0.5

1

频谱图

-1-0.500.5

1 1.5

2 2.5

10

-3

10

-2

10

-1

10

循环码在不同信噪比下的误码率图

信噪比

误码率

图4-6 循环码的误码率图

由图可以看出,随着信噪比越大,其误码率迅速减小。因此循环码是一种误

码率小的编码方式,它的最大优点为误码率小。

总结

本次课程设计题目是(15,7)循环码的编译码方法,首先介绍了线性分组码的编译码原理,循环码的编译码方法、步骤、流程。其次在仿真部分利用MATLAB 软件完成任意(15,7)循环码的编码和译码的实现,它可以对输入的七位的信息码进行循环码编码,经过高斯信道的传输后,对于接收到的15位码字可以译出七位信息码,最后,求出了该码的最小码距以及其纠错能力并且分析该码在高斯信道下的误码性能。

通过本次课程设计,发现很多问题的存在,经过查找资料和讨论顺利解决。首先,MATLAB软件不熟悉,经过查资料解决。其次,程序的编码,很多函数的用法没有掌握,利用MATLAB软件的帮助程序得以进行下去。

本次课程设计的收获如下:

首先,我掌握了(15,7)循环码的编译码方法,学会利用MATLAB计算该码的最小码距算法及纠检错能力,通过观察该码通过高斯信道后的仿真结果,可发现循环码纠检错能力强;

其次,通过此次课程设计不仅加深了我对课程理论的了解,并更加熟悉了MATLAB语言。

参考文献

[1] 曾凡鑫. 现代编码技术. 西安:西安电子科技大学出版社,2007

[2] 李鹏.计算机通信技术及其程序设计.西安: 西安电子科技大学出版社,1999.6

[3] 周炯槃、庞沁华等编著。《通信原理》(上)。北京:北京邮电大学出版社,2002

[4](美)普埃克等著;叶芝慧等译。《通信系统工程》(第二版)。北京:电子工业出版社,2002.7

[5] 樊昌信、曹丽娜编著。《通信原理》(第6版)。北京:国防工业出版社,2011.1

[6] 黄载禄、殷蔚华编著《通信原理》北京:科学出版社,2005

[7] 刘雪勇编著。《详解MATLAB/Simulink通信系统建模与仿真(配视频教程)》。北京:电子工业出版社,2011.11

二进制转BCD码

二进制转换成十进制 BCD码(加3移位法 底下还附带了BCD码转二进制码转化的VHDL程序 算法 "二进制数调整BCD码的方法是将二进制码左移8次,每次移位后都检查低四位LSD+3是否大于7,如是则加3,否则不加,高4位MSD作同样处理" 一、为什么左移8次 原寄存器是存二进制数的,新寄存器是存十进制数的,当然要左移8次,把数据全部移进去。 但这里要注意两件事,第一,如果只安排一个字节作十进制寄存器,原数据要小于 64H (即100)。第二,由于新寄存器是十进制的,要随时调整。 二、检查半字节+3 是否大于 7,是,则 +3 在 51 系列里有十进制调节指令(半字节大于 9,则加 6,应该不难理解),PIC 里没有,只好采取变通的方法。 检查半字节+3 是否大于 7,也就是检查半字节是否大于 4。因为,如果大于 4(比如5、6),下一步左移就要溢出了,所以加 3,等于左移后的加 6,起到十进制调节的作用。 那为什么要绕个圈子去检测半字节+3 是否大于 7 呢?这样程序编起来会简练一些。 一个例子 假如有一个八位二进制数255,我把他转255的十进制数 0 1111 1111 原数 1 0000 0001 ;左移一次 2 0000 0011 ; 左移二次 3 0000 0111 ;左移三次,检查低四位+3>7? 3.1 0000 1010 ;大于7,加3进行调整 4 0001 0101 ;左移四次, 检查低四位+3>7?

4.1 0001 1000 ;大于7,加3进行调整 5 0011 0001 ;左移五次 6 0110 0011 ;左移六次,检查高四位+3>7? 6.1 1001 0011 ;大于7,加3进行调整 7 1 0010 0111 ;左移七次,检查低四位+3>7? 7.1 1 0010 1010 ;大于7,加3进行调整 8 10 0101 0101 ;左移八次(得到BCD码255 Library ieee; --16位二进制转BCD码(0到9999) Use ieee.std_logic_unsigned.all; Use ieee.std_logic_1164.all; Entity B_BCD is Port ( clk,ena:in std_logic; a: in std_logic_vector(15 downto 0); q: out std_logic_vector(15 downto 0)); end B_BCD; architecture behav of B_BCD is begin process(clk,a) variable i: std_logic_vector(4 downto 0); variable in_a,out_a :std_logic_vector(15 downto 0); begin if ena='0'then in_a:=a; i:="00000"; out_a:="0000000000000000"; elsif clk'event and clk='1' then if i="10000" then out_a:=out_a; else out_a:=out_a(14 downto 0)&in_a(15); in_a:=in_a(14 downto 0)&'0'; i:=i+1; if i<"10000" then if out_a( 3 downto 0)>4 then out_a( 3 downto 0):=out_a( 3 downto 0)+3; end if; if out_a( 7 downto 4)>4 then out_a( 7 downto 4):=out_a( 7 downto 4)+3; end if; if out_a(11 downto 8)>4 then out_a(11 downto 8):=out_a(11 downto 8)+3;

基于MATLAB的循环码实验报告

课程名称:信息论与编码 课程设计题目:循环码的编码和译码程序设计指导教师: 系别:专业: 学号:姓名: 合作者 完成时间: 成绩:评阅人:

一、实验目的: 1、通过实验了解循环码的工作原理。 2、深刻理解RS 码构造、RS 编译码等相关概念和算法。 二、实验原理 1、RS 循环码编译码原理与特点 设C 使某 线性分组码的码字集合,如果对任C c c c C n n ∈=--),,,(021 ,它的循环 移位),,,(1032)1(---=n n n c c c c C 也属于C ,则称该 码为循环码。 该码在结构上有另外的限制,即一个码字任意循环移位的结果仍是一个有效码字。其特点是:(1)可以用反馈移位寄存器很容易实现编码和伴随式的计算;(2)由于循环码有很多固有的代数结构,从而可以找到各种简单使用的译码办法。 如果一个 线性码具有以下的属性,则称为循环码:如果n 元组 },,,{110-=n c c c c 是子空间S 的一个码字,则经过循环移位得到的},,,{201)1(--=n n c c c c 也 同样是S 中的一个码字;或者,一般来说,经过j 次循环移位后得到的 },,,,,,,{11011)(---+--=j n n j n j n j c c c c c c c 也是S 中的一个码字。 RS 码的编码系统是建立在比特组基础上的,即字节,而不是单个的0和1,因此它是非二进制BCH 码,这使得它处理突发错误的能力特别强。 码长:12-=m n 信息段:t n k 2-= (t 为纠错符号数) 监督段:k n t -=2 最小码段:12+=t d 最小距离为d 的本原RS 码的生成多项式为:g(x)=(x-α)(x -α2)(x -α3)…(x -αd -2) 信息元多项式为::m(x)=m0+m1x+m2x2+…+mk -1xk-1 循环码特点有: 1)循环码是线性分组码的一种,所以它具有线性分组的码的一般特性,且具有循环性,纠错能力强。 2)循环码是一种无权码,循环码编排的特点为相邻的两个数码之间符合卡诺中的邻接条件,即相邻数码间只有一位码元不同,因此它具有一个很好的优点是它满足邻接条件,没有瞬时错误(在数码变换过程中,在速度上会有快有慢,中间经过其他一些数码形式,即为瞬时错误)。 3)码字的循环特性,循环码中任一许用码经过牡环移位后,所得到的码组仍然是许用码组。

输煤系统调试方案

1 概述 1.1系统简介 华电新疆发电有限公司昌吉热电厂2×330MW热电联产工程1号锅炉由上海锅炉厂有限公司设计制造。型号为SG-1180/17.5-M4004,锅炉为亚临界、自然循环汽包炉,单炉膛、一次中间再热、燃烧器摆动调温、平衡通风、四角切向燃烧、紧身密闭、固态排渣、全钢架悬吊结构。设计采用0号轻柴油点火,燃用烟煤。锅炉以最大连续负荷(即BMCR工况)为设计参数。锅炉主要参数见表1。 本期工程燃煤主要由神华公司屯宝煤矿、哈密煤业硫磺沟矿及本地煤矿供给,采用公路运输进厂。 工程建设单位为华电新疆发电有限公司昌吉热电厂,由西北电力建设工程监理有限责任公司昌吉热电厂工程监理部负责监理,新疆电力设计院负责设计,华源电力安装公司负责安装,新疆电力科学研究院负责启动调试。 表1 锅炉主要参数 1.2电厂内输煤系统 带式输送机从卸煤设施到锅炉房原煤斗的运煤胶带机规格为:带宽B=1000mm,带速V=2.0m/s,额定出力Q=600t/h。 1.3储煤场、煤场设施 本期工程设一座斗轮堆取料机煤场作为汽车来煤场。设置一台堆料能

力600 t/h,取料能力600 t/h的斗轮堆取料机,用于将缝隙式汽车卸煤沟来煤或场外皮带来煤堆至煤场及将煤场贮煤取入系统。配带宽B=1000mm 的单路煤场带式输送机。 1.4 输煤设备 输煤系统采用带式输送机,带式输送机系统从C3、C1A/B皮带机开始,到主厂房煤仓间结束。共扩建6路11条输送皮带机以及一台斗轮堆取料机。输煤系统带式输送机设有以下保护信号:双向拉绳开关、堵煤检测装置、料流检测器、两级跑偏开关和速度检测装置。在输煤集控操作台上设置两个可使系统急停的硬接点旋钮,可在任何时间停止输煤设备运行。煤仓层C6A/B皮带机采用电动双侧犁式卸料器向各原煤斗配煤。煤仓层及各转运站的除尘、清扫方式采用喷雾和机械除尘及水力冲洗清扫相结合的清扫方式。 1.5运煤系统辅助设施 1.5.1除铁设施 本工程运煤系统中设有三级除铁方式。第一级设在C1A/B带头部和煤场C3带前部为带式除铁器;第二级设在进入碎煤机室的C4A/B胶带机头部为带式除铁器;第三级设在出碎煤机室后C5A/B胶带机中部,采用电磁盘式除铁器,自动交替运行工作方式;除铁器型号均与系统输送机带宽匹配。 1.5.2原煤取样设施 本工程在C5A/B带中部各设置了入炉煤取样装置,在重车衡之前设置了入厂煤样装置,对煤质进行分析化验,以确保入炉、入厂煤的煤质和燃煤的经济性。 1.5.3本工程筛煤机采用9轴滚轴筛煤机,额定出力为600 t/h。碎煤机采用HCSC4型环锤式碎煤机,额定出力为400 t/h。以及叶轮给煤机、犁式卸煤器等。 2 调试目的 通过各带式输送机试转以及其他输煤设备的调试,对施工、设计和

二进制转换成BCD码 实验报告

一、实验目的 (1)进一步熟练掌握8086汇编语言编译调试工具和环境的操作; (2)掌握完整8086汇编的程序设计编写方法; (3)掌握简单的数值码制转换方法; (4)掌握键盘输出的DOS功能调用方法。 二、实验要求: 将AX中的一个二进制数(对应的十进制数范围是0-65535),转换成压缩性BCD 码表示的十进制,并从屏幕输出转换结果。要求用减法实现,并比较与除法方法进行运行速度比较。 三、实验及报告要求: 3.1、简要说明算法,并画出正确的程序流程图; 3.2、给出完整正确的源程序代码,要求给每一句伪指令或指令加上注释; 3.3、分别在DOS和Windows下编译、连接源程序生成可执行文件并调试,比较两个环境下生成的机器码的长度、寄存器内容、计算结果的异同。 3.4、如何观察转换过程中标志寄存器中各标志位的结果?如何观察转换结果的变化?试改变被转换数值,对结果与编制为的变化加以说明和解释。 3.5、写出完整的实验报告,特别是“实验结果”与“实验总结体会”部分,是评分的主要依据。 3.6、实验总结中要求结合实验中的经验、教训或体会对汇编语言格式、调试方法和微机原理学习方法作出总结。 四、程序流程图 减法。即五位数先循环减10000,直到不够减了,做减法的次数就是万分位的结果;将不够减之前一次的余数恢复,再循环减去1000,直到不够减了,做减法的次数就是千分位的结果;以此类推,最后恢复的正余数就是个位的结果. 除法。即五位数先除以10000,得到的商存放万位数的变量上;再将余数除以1000,得到的商存放千位数的变量上;之后将余数除以100,得到的商存放百分位的变量上;以此类推,最后的余数存放在个位的变量上。

实验6 BCH循环码的编码与译码的matlab实现

实验6 BCH循环码的编码与译码 一、实验内容 用VC或Matlab软件编写循环BCH码的编码与译码程序。利用程序对教科书的例题做一个测试。 二、实验环境 1.计算机 2.Windows 2000 或以上 3.Microsoft Visual C++ 6.0 或以上 4.Matlab 6.0或以上 三、实验目的 1.通过BCH循环码的编码与译码程序的编写,彻底了解并掌握循环BCH的编码与译码原理 2.通过循环BCH码的编码与译码程序的编写,提高编程能力。 四、实验要求 1.提前预习实验,认真阅读实验原理以及相应的参考书。 2.对不同信道的进行误码率分析。特别是对称信道,画出误码性能图。即信道误码率与循环汉明码 之间的关系。 3.认真填写实验报告。 五、实验原理 1.循环BCH的编码与译码原理(略) 2.循环BCH的程序实现。 六、实验步骤 bch_en_decode.m文件 function bch_en_decode() code=bch155 code=code+randerr(5,15,1:3); code=rem(code,2); code=gf(code) %随机产生1-3位错误 decode=debch155(code) end function decode=debch155(code) code=gf(code); M=4; code = gf(code.x,M); [m , n]=size(code);decode=[]; code1=[]; for i=1:m ;code1=code(i,:); M=code1.m;T2=6;N=15; S = code1* ((gf(2,M,code1.prim_poly)).^([N-1:-1:0]'*([1:T2]))); LambdaX = gf([1 zeros(1,T2)],M,code1.prim_poly);

7,3循环码

****************** 实践教学 ******************* 兰州理工大学 计算机与通信学院 2014年秋季学期 计算机通信课程设计 题目:(7,3)循环码编译码软件设计 专业班级: 姓名: 学号: 指导教师: 成绩:

摘要 随着计算机通信的日益发展,传输数据的场合越来越多。串行数据的差错检验是保证数据传输正确的必要手段,而循环码是差错码中最常用的一种编码。 循环码是线性分组码中最重要的一种子类,它除了具有分组码的线性外,还具有循环性,其码字结构一般用符号(n,k)表示,其中,n是该码组中的码元数,k是信息码元位数,r=n-k是监督码元位数。循环码具有许多特殊的代数性质,这些性质有助于按照要求的纠错能力系统地构造这类码,能简化译码算法,并且目前发现的大部分线性码与循环码有密切关系。已有循环码编译码系统大多以标准逻辑器件(如中小规模TTL系列、CMOS系列)按传统数字系统设计方法设计而成,其主要缺点是逻辑规模小、功耗大、可靠性低。随着大规模、超大规模集成电路的发展,以及电子设计自动化水平的提高,这种制约正在被逐渐消除。 本文通过C 语言平台运行所编写的程序,观察了在输入信息码情况下输出对应的编码结果以及相反的译码功能。通过多组的对比验证了该(7,4)循环码的编译码程序的正确性。最后,在程序运行的过程中进步分析循环码的编译码原理,并通过比较仿真模型与理论计算的性能,证明了仿真模型的可行性。 关键词:循环码;编码;译码;程序仿真

目录 前言 (1) 1、目的及意义 (2) 2、设计原理 (3) 2.1循环码的介绍 (3) 2.1.1循环码的定义 (3) 2.1.2循环码的特点 (3) 2.1.3循环码的多项式表示 (4) 2.1.4(n,k)循环码的生成多项式 (4) 2.1.5循环码的生成矩阵和一致校验矩阵 (6) 2.2循环码编码原理 (8) 2.2.1多项式除法电路 (8) 2.3循环码译码原理 (9) 3、设计结果及分析 (11) 3.1程序运行结果 (11) 3.2运行结果理论分析 (14) 3.3软件可行性分析 (15) 4、总结 (16) 附录 (17) 参考文献 (22)

国家电力投资集团公司火电工程设计优化指导意见

集团公司火电工程设计优化指导意见 为在火电厂设计中引入核文化理念,进一步提高集团公司火电工程设计水平,全面提升火电厂全生命周期效益最大化,有效落实“安全可靠、成熟先进、造价合理、节能环保”的原则,集团公司结合当前国家火电产业政策及火电装备技术情况,对火电工程设计优化提出如下指导意见。 一、优化选择机组参数,确保具有竞争优势 (一)纯凝发电机组应选择66万千瓦和100万千瓦超超临界机组。当采用W火焰锅炉时,可选择超临界机组。 煤源稳定地区超超临界机组主机参数选择28MPa/600℃/620℃,其它地区选择28MPa/600℃/610℃,新疆等低煤价地区当采用66万千瓦机组,可选择25MPa/600℃/600℃。 煤源稳定的高煤价地区,经集团公司同意可采用超超临界二次再热系统,主机参数选择31MPa/600℃/620℃/620℃。 (二)热电联产机组应选择背压机组或35万千瓦超临界抽凝机组。选择背压热电联产机组,应结合单机容量优先采用高温高压及以上参数。 常住人口50万以下城市,采暖型供热机组宜选择背压机组;常住人口50万以上城市,优先选择背压机组,也可选择2×35万千瓦抽凝机组。当选择2×35万千瓦抽凝机组,

采暖期热电比应不低于80%。 二、准确提供煤质资料基础数据 (三)火电厂设计煤种和校核煤种的煤质资料须经二级单位确认后,才能作为主、辅机招标和工程设计的依据。设计煤种和校核煤种的煤质数据及常规化验分析项目应符合集团公司《火电工程设计控制标准》中的规定。 (四)设计煤种应为机组投运后主要燃用煤种,校核煤种应起到对锅炉及其辅机设备具有校核的作用,与设计煤种应有一定差异,但偏差值不应超过附表1的规定。 设计煤种和校核煤种采用多煤种时,煤样来源不宜超过3个矿区。进行混合煤样常规分析时,应对单煤样和混合煤样分别进行化验分析,然后按规定的各单煤样收到基混合比加权计算工业分析、发热量、元素分析各项成分及参数以核对混合煤样的准确性。 三、合理选择高效低耗、成熟先进设备 (五)应根据厂址所在地区水资源状况合理选择湿冷机组或空冷机组。空冷机组优先选择表面式凝汽器间接空冷机组,严寒地区防冻不能满足要求时可选择直接空冷机组。 深入开展宽负荷和深度调峰机组研究,供热电厂应进行设臵储热设施作为调峰手段的研究。 (六)锅炉BMCR(锅炉最大连续出力)工况的蒸发量应与汽轮机VWO(阀门全开)工况的主蒸汽流量一致。对66万千瓦和100万千瓦机组,汽轮机VWO工况的主蒸汽流量宜为

单片机实验4 子程序设计-- BCD码转换为二进制

实验4. 子程序设计----BCD 码转换为二进制 单字节可存放两位压缩BCD 码(0—99) 为0 —9) 单字节BCD 码转换为二进制子程序 入口:(R0)= 压缩BCD 码的地址 出口:(A)= 转换结果 DSFR::MOV A,@R0 ANL A,#0F0H ;取十位数 SWAP A ;变为标准BCD 码 MOV B,#10 MUL AB ;(A)=D1×10 MOV R7,A ;D1× 10暂存 R7 MOV A,@R0 ANL A,#0FH ;取个位 ADD A,R7 ;A=D1×10+D0 RET 1、实验内容: 子程序设计要点: 1) 子程序一般为多次返复使用的程序段,一般应说明入口条件,DSFR 子程序的 入口条件是:被转换为二进制的单字节BCD 码为间接寻址,间接寻址寄存器为R0。要调用DFSR 子程序必需先将压缩BCD 码的存放地址赋与R0。而出口条件是指最后结果在哪儿存放。本子程序转换结果在ACC 内。 2) 主程序调用子程序,在调试时一般要先调试子程序、再调试主程序。

2、实验步骤 1)打开PV32编程序。汇编正确进入调试界面。否则修改程序重新汇编直到通过。 2)打开DATD窗口给20H、21H、R6、R7赋值 3)单步调试DSFR子程序观察并记禄寄存器、内存的变化。判断程序是否正确。若发现 问题重返编辑界面,修改、存盘、汇编。返回调试界面调试通过。 4) 设断点调试主程序观察并记禄寄存器、内存的变化。判断程序是否正确。若发现问 题重返编辑界面,修改、存盘、汇编。返回调试界面调试通过。 3.实验报告 1.写出主程序流程图、子程序流程图、程序清单 2.根据记渌数据给程序加注解 3.调试心得

实验6 循环码的软件编、译码实验

实验六循环码的软件编、译码实验 一、实验目的 (1)通过实验了解循环码的工作原理。 (2)了解生成多项式g(x)与编码、译码的关系。 (3)了解码距d与纠、检错能力之间的关系。 (4)分析(7.3)循环码的纠错能力。 二、实验要求 用你熟悉的某种计算机高级语言或单片机汇编语言,编制一(7,3)循环码的编、译码程序,并改变接受序列R(x)和错误图样E(x),考查纠错能力情况。 设(7,3)循环码的生成多项式为:g(x)=x4+x3+x2+1 对应(11101)(1)按编、译码计算程序框图编写编、译码程序 (2)计算出所有的码字集合,可纠的错误图样E(x)表和对应的错误伴随式表。 (3)考查和分析该码检、纠一、二位错误的能力情况。 (4)整理好所有的程序清单,变量名尽量用程序框图所给名称,并作注释。 (5) 出示软件报告. 三、实验设计原理 循环码是一类很重要的线性分组码纠错码类,循环码的主要优点是编、译码器较简单,编码和译码能用同样的反馈移存器重构,在多余度相同的条件下检测能力较强,不检测的错误概率随多余度增加按指数下降。另外由于循环码具有特殊的代数结构,使得循环码的编、译码电路易于在微机上通过算法软件实现。 1、循环码编码原理 设有一(n,k)循环码,码字C=[C n-1…C r C r-1…C0],其中r=n-k。码字多项式为: C (x ) = C n-1x n-1+ C n-2x n-2+… +C1x+C0。 码字的生成多项式为: g(x)= g r-1x r-1+g r-2x r-2+…+g1x+g0 待编码的信息多项式为:m(x)=m K-1x K-1+…+m0 x n-k.m(x)=C n-1x n-1+…+C n-K x n-K

循环码编译码matlab程序

循环码编译码matlab程序 循环码编码程序 function [ C ] = cyclic_encoder( Si ) %C为循环编码的输出编码结果 %对x^8+1进行模2因式分解得到:x^8+1=(x^3+x^2+x+1)*(x^5+x^4+x+1) y=size(Si,2);%y表示Si的列数,即输入码元的个数 M=ceil(y/5);%将信息码元分成M帧,一帧5个信息码元 n=8;%循环编码的一帧码长 k=5;%信息位的个数 r=n-k;%监督位的个数 gx=[1,1,1,1];%(8,5)循环码的生成多项式g(x)=x^3+x^2+x+1 Ai=zeros(1,8*M);%Ai用来存放所输入的码元经过循环编码后的码字 Axi=zeros(1,8);%Axi用来表示循环编码后的一帧的编码输出码字 mi=zeros(1,5);%mi用来存放每一帧的信息码元 for i=1:M for j=1:5 mi(j)=Si(j+(i-1)*5); end Axi(4:8)=mi(1:5); Axi=circshift(Axi',-r)';%实现(x^(n-k))*m(x),其中m(x)的系数由mi决定 [qx,rx]=deconv(Axi,gx);%实现((x^(n-k))*m(x))/g(x),得到商q(x)和余数r(x) Axi=Axi+rx;%实现Axi(x)=Axi(x)+r(x),得到的Axi就是循环编码的编码输出码字 Ai(8*i-4:8*i)=Axi(1:5); Ai(8*i-7:8*i-5)=Axi(6:8); end %for循环是为了实现模2相加,使循环编码的输出码字Ai中只有0,1 for i=1:8*M if rem(abs(Ai(i)),2)==0 Ai(i)=0; else Ai(i)=1; end end C=Ai;%循环编码的输出码字C=Ai end

循环码的编码方法研究

摘要本文对循环码的编码方法进行了深入的分析和探讨,循环码具有很高的可靠性,在通信、军事等领域应用非常广泛。关键词循环码编码中图分类号:G202文献标识码:A 0 引言循环码是线性分组码最重要的子集。它除了具有线性分组码的一般性质外,还有许多特殊的性质,这些性质有助于按照要求的纠错能力系统地构造这类码,并且简化译码算法。循环码还有易于实现的特点,很容易用带反馈的移位寄存器实现其硬件。正是由于循环码具有码的代数结构清晰、检纠错能力强、编译码易于实现,具有很高的可靠性等特点,因此在通信、军事等领域应用非常广泛。 1 循环码的相关概念 1.1 循环码的特性表1给出了(7,3)循环码的所有码字,我们可以直观的看出循环码具有如下特性:(1)封闭性。(线性性):任何许用码组的线性和还是许用码组。(2)循环性:任何许用的码组循环移位后的码组还是许用码组。表1 (7,3)循环码 1.2 循环码的码多项式用码多项式来表示来表示循环码,可以方便的利用代数理论对其进行研究。若许用码字为C = (,,…,):,码多项式可表示为:C(x) = … c1x c0其中:对于二元码组,多项式的每个系数是0或者1; x仅是码元位置的标志,并不关心x的取值。利用码多项式可以方便的表示循环移位特性。若C(x) 是一个长为n的许用码字,则xi C(x) (左乘xi)在按模xn 1运算下,亦是一个许用码字,也就是:xiC(x) = Ci(x) (模xn 1),正是C(x) 代表的码组向左循环移位次的结果。 1.3 循环码的生成多项式和生成矩阵循环码的生成多项式g(x)是一个常数项为1,且能除尽xn 1的r = n - k次多项式;循环码中其它码多项式都是g(x)的倍式。由生成多项式可以表示出生成矩阵G(x)为: 1.4 循环码的监督多项式和监督矩阵利用循环码的特点来确定监督矩阵H, 由于循环码中是的因式,因此可令:h(x) == xk hk-1xk-1 … h1x 1,这里称为监督多项式。与G(x)相对应,监督矩阵表示为: 其中:h*(x)是h(x)逆多项式,h*(x) = xk h1xk-1 h2xk-2 … hk-1x 1。 2 循环码编码的具体实现方法 2.1 利用生成矩阵编码 2.1.1 求解生成多项式根据g(x)的特性,g(x)是xn 1的一个r次因式。因此,先对xn 1进行因式分解,找到它的r次因式。以(7,3)循环码为例进行分析: 第一步:对x7 1进行因式分解得:x7 1 = (x 1)(x3 x2 1)(x3 x 1) 第二步:构造生成多项式g(x),即找r = n - k = 4次因子。不难看出,这样的因子有两个,即: (x 1)·(x3 x2 1) = x4 x2 x 1 (x 1)·(x3 x 1) = x4 x3 x2 1 2.1.2 编码由g(x)得到生成矩阵为: 循环码是线性码的一种,根据线性码编码的特点,生成矩阵确定,码组也就确定了。 C = mG 其中,C是编码之后的码字,m是信息码元序列,G是生成矩阵。 2.2 利用监督矩阵编码由h*(x)得到监督矩阵为: 根据线性码编码的特点,监督矩阵确定,码组也就确定了。 HCT = 0其中,C是编码之后的码字,H是监督矩阵。 2.3 循环码的系统码编码方法设要产生(n,k)循环码,m(x)表示信息多项式,编码步骤如下: (1)用xn-k乘m(x)。根据码多项式的特点,左乘xn-k实际上是把信息位左移位(n-k),即在信息码后加上(n-k)个“0”。例如,信息码为110,它相当于m(x) = x2 x。当n-k = 7-3 = 4时, xn-k·m(x) = x6 x5,它相当于1100000。而希望的到得系统循环码多项式应当是C(x) = xn-k·m(x) r(x) (2)求r(x)。由于循环码多项式C(x)都可以被g(x)整除,也就是: == (3)求C(x),C(x) = xn-k·m(x) r(x) 例如,对于(7,3)循环码,若选用g(x) = x4 x2 x 1,信息码110时,则: = ,求得r(x) = x2 1,这时的编码输出为:1100101。 3 结论本文深入系统地分析了循环码的编码技术。随着数字技术的高速发展,循环码纠错技术已经广泛应用于各种通信系统中。其编码和译码都可以通过简单的反馈移位寄存器来完成,实现简单,纠错能力强 ,可以降低误码率,保证数据传输的可靠性,大大提高通信质量。

浅谈火力发电厂运煤系统控制及联锁

浅谈火力发电厂运煤系统控制及联锁 【摘要】本文针对2×135MW机组火力发电厂运煤系统控制及联锁提出一些见解。 【关键词】运煤系统;控制;流程;联锁。 引言 随着火力发电厂运煤系统自动化程度越来越高,运煤系统控制基本上实现了无人值守,集中或者就地控制。本文就以新疆阿勒泰地区A火力发电厂为例,浅谈火力发电厂运煤系统控制及联锁。 1.概述 A电厂项目为新建工程,本期工程装机容量为2×135MW凝汽式汽轮发电机组配2×440t/h超高压、一次中间再热燃煤锅炉。运煤设备运行班制为三班制,每班运行3.3 小时。厂内设3个地下煤斗串联为系统上煤,运煤系统设筛碎、除铁、中部采样、电子皮带秤、动态循环链码效验装置等。 2.运煤系统控制范围 带式输送机;振动给煤机;电动挡板三通管;滚轴筛;环锤式碎煤机;除铁器;电动犁式卸料器;电子皮带秤;运煤系统保护一次元件(包括双向拉绳开关、两级跑偏开关、速度检测器、料流检测器、纵向撕裂保护装置、堵煤检测器、防闭塞装置及煤仓高低料位计);排水泵;煤场抑尘自动控制系统 3.运煤系统控制及联锁要求 运煤程控系统参加联锁的设备包括带式输送机、振动给煤机、电动挡板三通管、滚轴筛、环锤式碎煤机、电动犁式卸料器等。 运煤系统集中和就地两种控制方式的设定是由设置在各设备就地控制箱或MCC上的远方/就地选择开关完成的。此外,在就地控制箱或就地MCC上还设有启、停按钮及信号灯等。只有当选择开关设置为远方时,运煤程控室才能控制该设备,当选择开关设置为就地时,只能就地控制该设备。选择开关的状态信息用干接点送至运煤程控的PLC系统中,以便操作员随时了解现场情况。 当采用自动运行方式时,上位工控机显示器上显示所有运煤工艺流程,选择运煤流程后,PLC系统自动检测该流程相关的设备,在该流程所有设备均处于可控情况下,操作人员在上位工控机上发出“启动”命令来启动该流程,否则,PLC 系统内部联锁应能防止任何设备的启动。在需要停止该流程时,操作人员在上位工控机上发出“停止”命令,PLC系统按正常清除顺序停止。

(7,4)循环码的编码和译码

(7,4)循环码的编码译码 编码的实验原理: 根据循环码的代数性质建立系统编码的过程,可以把消息矢量用如下多项式表示: 要编码成系统循环码形式,把消息比特移入码字寄存器的最右边k 位,而把监督比特加在最左边的n-k 个中,则要用k n x -乘以m(x)得到 k n x - m(x)= k n x - m(x)= q(x) g(x)+ p(x),其中p(x)可以表示为 p(x)= ,则p(x)+ k n x - m(x) = + 另U(x)= p(x)+ k n x - m(x),则U=(0p ,1p ,2p ,·,1--k n p ,0m ,1m ,·,1-k m )。 本实验根据以上原理,用matlab 实现书上例6.8系统形式的循 环码,生成多项式为g(x)= (7,4)循环码的编码的程序如下:clear; clc; a=[1 0 1 1]; %高次项系数在前的生成多项式 Gx=[1 0 1 1]; %将数组a 的高位依次放在数组Data 的低位 Data=zeros(1,7); Data(1)=a(4); Data(2)=a(3); Data(3)=a(2); Data(4)=a(1); %Data 除以Gx 得到余数Rx [Qx,Rx]=deconv(Data,Gx); 12211...)(m x m x m x m x m k k k k ++++=----k n k n n k n k x m x m x m x m -+-----++++0112211 (011) 1...p x p x p k n k n +++----0 111...p x p x p k n k n +++----k n k n n k n k x m x m x m x m -+-----++++0112211 (3) 1x x ++

电子皮带秤循环链码校验装置详细介绍

电子皮带秤循环链码校验装置详细介绍循环链码是一种新型模拟载荷试验装置。它主要由标准质量循环码块组成的码块链条、链码托辊及支架、主辅升降系统、称重传感器、位移传感器、校验累计器及控制系统组成,如图10-10所示。 循环链码是由数百个标准质量码块连接成的闭合链条(见图10-11),标准质量码块为精密铸钢件,用数控机床加工,其主要性能指标为:适应带宽范围:≤3m; 适应带速范围:≤4m/s; 适应皮带机倾角: 0°耀18°; 适应皮带机槽型角: 0°耀35° 输送量测量范围: <10000t/h; 码块链条数量: 1耀6; 码块链条长度:通常为21m; 每米质量: 10kg/m,20kg/m,30kg/m, 40kg/m,50kg/m等; 每米质量误差:优于±0.05%; 升降系统行程: 800耀1400mm; 升降系统功率: 5耀10kW根据具体参数 由设计确定; 信号传输距离:≤1000m; 校验皮带秤的总不确定度:优于0.1%; 防护等级: IP54。

图10-10 循环链码结构示意图 1、支架; 2、码块链条; 3、皮带秤的承载器; 4、称重传感器; 5、升降系统; 6、皮带; 7、地面;8、检验累计器;9、位移传感器;10、电控箱 图10-11 在皮带上方的两条标准质量循环码块 试验时,启动皮带机,操作升降系统工作使码块链条在下降状态,部分码块自动降落在安装承载器称量长度及其附近的皮带上,码块随着皮带的移动循环通过称量长度,码块的重量作用在称量长度上,皮带秤累计器得到循环链码通过承载器的累计重量。与此同时,检验累计器也累计循环链码作用在称量长度的重量,因模拟载荷检验装置本身的总不确定度优于0.1%,将检验累计器的累计值与皮

二进制码转换为BCD码实验报告

实验二二进制码转换为BCD码 一、实验目的 1、掌握数码转换基本方法,加深对数码的理解。 2、用于十进制BCD码显示。 二、实验内容 将AX的内容转换为十进制BCD码。 三、实验程序框图 四、实验步骤 脱机模式: (1)在P、态,按SCAL键,输入2CE0,按EXEC键。 (2)复位RST键,由于AX中给定数为0FFFF,查瞧BCD码结果保留在4100H~4104H单元中,故其值应为06、05、05、03、05。 联机模式: (1)在PC机与实验系统联机状态下,运行该实验程序,可用鼠标左键单击菜单栏“文件”或工具栏“打开图标”,弹出“打开文件”的对话框,然后打开8kAsm文件夹,点击S2、ASM文件,单击“确定”即可装入源文件,再单击工具栏中编译,即可完成源文件自动编译、装载目标代码功能,再单击“调试”中“连续运行”或工具图标运行,即开始运行程序。 (2)复位“系统复位”键,由于AX中给定数为0FFFF,查瞧BCD码结果保留在4100H~4104H

单元中,故其值应为06、05、05、03、05。 注:操作过程参照“实验一二进制多位加法运算”。 五、实验程序清单 X:\DICE-8086K3微机原理与接口实验箱CDROM\CODE\86kasm\S2、ASM ;将AX拆为5个BCD码,并存入Result开始的5个单元 DATA SEGMENT AT 0 ;S2、ASM,BIN-->BCD ORG 4000H RESULT DB 5 DUP(?) DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA ORG 2CE0H START PROC NEAR MOV AX, DATA MOV DS, AX MOV DX,0000H MOV AX, 65535 MOV CX, 10000 DIV CX MOV RESULT, AL ; 除以 10000, 得WAN位数 MOV AX,DX MOV DX,0000H MOV CX, 1000 DIV CX MOV RESULT+1, AL ; 除以 1000, 得QIAN位数 MOV AX,DX MOV DX,0000H MOV CX, 100 DIV CX MOV RESULT+2, AL ; 除以 100, 得BAI位数 MOV AX,DX MOV DX,0000H MOV CX, 10 DIV CX MOV RESULT+3, AL ; 除以 10, 得SHI位数 MOV RESULT+4, DL ; 得GE位数 JMP $ CODE ENDS END START

简述简易循环码编译码器设计

简述简易循环码编译码器设计 摘要通信系统可靠性要求系统可靠地传输消息,而信道编码旨在解决可靠性问题。循环码属于线性代码,具有严密的代数理论基础,具有良好的错误检测和纠正功能。循环码编译电路大多用移位寄存器和模2构成的线性时序网络来完成。基本电路简单,容易实现,但在体积和功能扩展上受到了限制而不能发挥更大的作用。本设计充分运用单片机的软件功能进行编码及译码纠错,可有效克服来自通信信道的干扰,保证数据通信的可靠及系统的稳定,使误码率大幅度的降低。只要改变软件算法,即可适用于不同微机、不同字长的需要。 关键词信道编码;循环码;单片机;编译码;可靠 前言 信息在有线或无线信道传输时,受外界干扰或信噪比恶化的影响,信息的传递容易发生错误,需要有效检测出错状况,进行纠错,保证信息传输的质量。前向纠错编码技术在发送端引入冗余可以实现检错和纠错,一种广泛应用前向纠错码循环码它是线性分组码中最重要的一种类别码,不光具备分组码的线性性质,还具有自身的循环性[1]。现阶段国内外基于循环码编译码方法的研究都取得了很大的进展,例如循环码在卫星通信与移动通信方面中起到很重要的作用。采用单片机编程的方法可以实现循环码编译码,成本小,通过软件升级可以适配多种码型。 1 循环码编译码原理 1.1 循环码特点 循环码隶属于线性代码,具有嚴密的代数理论基础,良好的错误检测和纠正功能,具有如下特点[2]:循环码具有线性码的封闭性,意味着线性码中的任何两个码组总和仍为这种码中的一个码组。两个信息码组之间的长度差一定是后一个信息码组的权重,码的最小距离等同于码的最小权重。循环码还具有循环的性质,任一码组不管是从按左到右还是从右到左方向循环移位,仍为该码中的一个码组。 1.2 编码原理 设信息元多项式表达式: 编码步骤可以归纳如下: ⑴用信息集合m(x)乘以信息集得到,这种运算操作其实就是在信息码后添加上(n-k)个“0”。

入炉煤采样、皮带秤、循环链码技术规范书(2016.6.4)

荣成市石岛热电联产项目入炉煤采制样、电子皮带秤和循环链码校验装置荣成市石岛热电联产项目 技术规范书 (入炉煤采制样、电子皮带秤、循环链码校验装置) 招标方:昊阳热电有限公司 设计方:山东省鑫峰工程设计有限公司 日期:2016年06 月

目录 附件1 技术规范书 附件2 供货范围 附件3 技术文件及交付进度附件4 交货进度 附件5 技术服务和设计联络附件6 分包和外购

附件1 技术规范 目录 1. 总则 2. 设计和运行条件 2.1 概述 2.2 工程主要原始资料 3. 技术条件 3.1 主要技术规范 3.2 性能要求 3.3 配供的辅助设备要求 3.4 结构要求/系统配置要求 3.5 仪表和控制要求 3.6 其它要求 3.7 标准 4. 性能保证 5. 设计与供货界限及接口规则 6. 设备规范及主要数据表

1.总则 1.1本技术规范用于荣成市石岛热电联产项目的入炉煤采制样、电子皮带秤及循环链码校验设备的投标,它提出了设备的功能设计、结构、性能、安装和试验等方面的技术要求。 1.2本规范书提出的是最低限度的技术要求,并未规定所有的技术要求和适用的标准,投标方应提供一套满足本合同文件和所列标准要求的高质量产品及其相应服务。对国家有关安全、环保等强制性标准,必须满足其要求。投标方如对本技术规范书有异议,应以书面形式明确提出。 1.3投标方所提供的产品,必须是技术和工艺成熟先进,且已设计、制造过多台同类产品,具有十分优良的制造、运行业绩,并经多年连续运行证明是成熟可靠的优质产品。 1.4投标方应对其供货范围内的所有产品质量负有全责,包括其分包和外购的产品。 1.5投标方供货的产品如果由于设计、制造质量问题而导致机组无法正常投产、供货设备无法长期连续、安全、经济、稳定、可靠地运行,无法满足所有技术性能要求,则投标方必须为此负全部责任。 1.6如投标方没有以书面形式对本技术规范书的内容和条文提出异议(或差异),则招标方可认为投标方已完全接受和同意本规范书的要求。如有异议(或差异),不论是多么微小,都应在投标文件中以“对规范书的意见和同规范书的差异”书面提出(必须填写在投标文件的差异表中)。 1.7投标方须执行本协议书所列的各项现行(国内、国际)标准。本协议书中未提及的内容均应满足或优于本协议书所列的国家标准、电力行业标准和有关国际标准。有矛盾时,按较高标准执行。在此期间若颁布有要求更高、更新的技术标准及规定、规范,则应以最新技术标准、规定、规范执行。 1.8在签定合同之后,招标方和设计方有权提出因规范标准和规定或工程条件发生变化而产生的一些补充要求,投标方必须满足招标方所提出的补充要求。 1.9投标方须执行本规范书所列标准。有矛盾时,按较高标准执行。投标方在设备设计和制造中所涉及的各项规程,规范和标准遵循现行最新版本的标准。 1.10合同签订1个月内,按本规范书的要求,投标方提出合同设备的设计、制造、检验/试验、装配、安装、调试、试运、验收、运行和维护等标准清单给招标方,由招标方确认。

二进制数到BCD码的转换

得分教师签名批改日期课程编号1801770001 深圳大学实验报告课程名称:微机原理及应用 实验名称:二进制数到BCD码的转换 学院:物理科学与技术学院 指导教师: 报告人:组号: 学号实验地点K302 实验时间:2014 年10 月22 日 提交时间:2014.11.12

一、实验要求: 将AX中的一个二进制数(对应的十进制数范围是0-65535),转换成压缩性BCD码表示的十进制,并从屏幕输出转换结果。要求用减法实现,并比较与除法方法进行运行速度比较。 二、实验目的: (1)进一步熟练掌握8086汇编语言编译调试工具和环境的操作; (2)掌握完整8086汇编的程序设计编写方法; (3)掌握简单的数值码制转换方法; (4)掌握键盘输出的DOS功能调用方法。 三、实验说明: 计算机中的数值有各种表达方式,这是计算机的基础。掌握各种数制、码制之间的转换是一种基本功;利用DOS功能调用实现在屏幕上显示字符或数字的方法是本课程的基本要求之一。 四、除法方法: 1、算法说明:三位数先除以100,得到的商就是百分位的结果;将之前一次的余数除以10,得到的商就是十分位的结果;剩下来的余数就是个位的结果。 2、程序流程图: 图1 除法程序流程图 3、程序: DATA SEGMENT ; 数据段 RESULT_1 DB 1

RESULT_2 DB 1 RESULT_3 DB 1 DATA ENDS STACK SEGMENT STACK ; 堆栈段 STA DB 64 DUP(0) STACK_TOP DB 0 STACK ENDS CODE SEGMENT ; 代码段 ASSUME CS:CODE , DS:DATA , ES:DATA , SS:STACK START: ; 程序开头必须要有的五条指令 MOV AX, DATA MOV DS, AX ; 设置数据段 MOV AX, STACK MOV SS, AX ; 设置堆栈段 LEA SP, STACK_TOP ; 设置栈顶指针 ;--------------------------------------- ; 程序的中间部分 MOV AX, 467 MOV CL, 100 DIV CL MOV RESULT_1, AL ; 除以 100, 得百位数 MOV AL, AH MOV AH, 0 MOV CL, 10 DIV CL MOV RESULT_2, AL ; 余数除以 10, 得十位数 MOV RESULT_3, AH ; 余数为个位数 ;------------------------------------------ ; 程序结束必须要有的两条指令 MOV AX, 4C00H ; INT 21H ; ;------------------------------------------ CODE ENDS

相关文档