导航:首页 > 源码编译 > 基本比特差错的检测算法

基本比特差错的检测算法

发布时间:2022-07-28 14:57:15

㈠ 数据链路层中的链路的三个基本问题(帧定界、透明传输和差错检测)为什么都必须加以解决

封装成帧就是在一段数据的前后分别添加首部和尾部,这样就构成了一个帧。接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从比特流中识别帧的开始和结束。

当传送的帧是用文本文件组成的帧时,其数据部分显然不会出现像SOH或EOT这样的帧定界控制字符。可见不管从键盘上输入什么字符都可以放在这样的帧中传输过去,因此这样的传输就是透明传输。

数据链路层并不需要给网络层提供“可靠传输”的服务,必须让数据链路层向上提供可靠传输。因此在CRC的基础上,增加了帧编号、确认和重传机制。



(1)基本比特差错的检测算法扩展阅读:

数据链路层的最基本的功能是向该层用户提供透明的和可靠的数据传送基本服务。透明性是指该层上传输的数据的内容、格式及编码没有限制,也没有必要解释信息结构的意义;可靠的传输使用户免去对丢失信息、干扰信息及顺序不正确等的担心。

在物理层中这些情况都可能发生,在数据链路层中必须用纠错码来检错与纠错。数据链路层是对物理层传输原始比特流的功能的加强,将物理层提供的可能出错的物理连接改造成为逻辑上无差错的数据链路,使之对网络层表现为一无差错的线路。

㈡ 数据链路层的三个基本问题是什么

1. 封装成帧
封装成帧(framing):就是在一段数据的前后分别添加首部和尾部,这样就构成了一个帧。
2. 透明传输
由于帧的开始和结束的标记是使用专门指明的控制字符,因此,所传输的数据中的任何8比特的组合一定不允许和用作帧定界的控制字符的比特编码一样,否则就会出现帧定界的错误。
3. 差错检测
传输差错:可分为两大类,一类就是最基本的比特差错,另一类就是收到的帧并没有出现比特错误,但却出现了帧丢失、帧重复或帧失序。

㈢ 计算机通信中通常使用的差错检验方法

在LDPC(Low-Density Parity-Check,低密度奇偶校验)码用于纠错码时,能够抑制吞吐量下降并且高精度地进行差错检测的无线通信装置。在该无线通信装置中,CRC(Cyclic Rendancy Check,循环冗余校验)编码单元(101)基于LDPC码的校验矩阵的列权重,只对发送比特串的一部分比特进行CRC编码而生成CRC编码数据,LDPC编码单元(102)使用与CRC编码单元(101)进行CRC编码时使用的校验矩阵相同的校验矩阵,对CRC编码数据进行LDPC编码而生成LDPC编码数据

㈣ 8bit数据怎么差错校验,就是一共8BIT,其中7BIT为有效数据,1BIT为校验位,有没有比较好一点的校验算法程序

我当时做串口通信时用的是CRC-CCITT循环冗余校验算法。和你的这种算法有点不一样,但是差不多,你可以试下,如果要代码的话,我也有。给你个网络的链接,你看下嘛,呵呵。忘说了,我校验算法是用的比特型算法。你稍微对CRC算法改良下就满足你的需要了,希望帮到你了,呵呵。http://ke..com/view/1664507.htm

㈤ 常用的差错控制编码方法有哪些

常用的差错控制编码方法有:奇偶校验、恒比码、矩阵码、循环冗余校验码、卷积码、Turbo码。

1、奇偶校验

奇偶校验是一种校验代码传输正确性的方法。根据被传输的一组二进制代码的数位中“1”的个数是奇数或偶数来进行校验。采用奇数的称为奇校验,反之,称为偶校验。

采用何种校验是事先规定好的。通常专门设置一个奇偶校验位,用它使这组代码中“1”的个数为奇数或偶数。若用奇校验,则当接收端收到这组代码时,校验“1”的个数是否为奇数,从而确定传输代码的正确性。

2、恒比码

恒比码一般指定比码 。

定比码是指一组码中1和0的码元个数成一定比例的一种编码。换言之,它是选用比特序列中1和0码元之比例为定值,所以又称为恒比码。定比码是一种常用的检错码。

3、矩阵码

矩阵码属二维条码的一种,是将图文和数据编码后,转换成一个二维排列的多格黑白小方块图形。

矩阵式二维条形码是以矩阵的形式组成,在矩阵相应元素位置上,用点(Dot)的出现表示二进制的 “1”,不出现表示二进制的 “0”,点的排列组合确定了矩阵码所代表的意义。其中点可以是方点、圆点或其它形状的点。矩阵码是建立在电脑图像处理技术、组合编码原理等基础上的图形符号自动辨识的码制,已较不适合用“条形码”称之。

4、循环冗余校验码

循环冗余校验码(CRC),简称循环码,是一种常用的、具有检错、纠错能力的校验码,在早期的通信中运用广泛。循环冗余校验码常用于外存储器和计算机同步通信的数据校验。奇偶校验码和海明校验码都是采用奇偶检测为手段检错和纠错的(奇偶校验码不具有纠错能力),而循环冗余校验则是通过某种数学运算来建立数据位和校验位的约定关系的。

5、卷积码

卷积码将k个信息比特编成n个比特,但k和n通常很小,特别适合以串行形式进行传输,时延小。卷积码的纠错性能随m的增加而增大,而差错率随N的增加而指数下降。在编码器复杂性相同的情况下,卷积码的性能优于分组码。

6、Turbo码

Turbo码是Claude.Berrou等人在1993年首次提出的一种级联码。Turbo码有一重要特点是其译码较为复杂,比常规的卷积码要复杂的多,这种复杂不仅在于其译码要采用迭代的过程,而且采用的算法本身也比较复杂。这些算法的关键是不但要能够对每比特进行译码,而且还要伴随着译码给出每比特译出的可靠性信息,有了这些信息,迭代才能进行下去。

(5)基本比特差错的检测算法扩展阅读:

差错控制编码是指在实际信道上传输数字信号时,由于信道传输特性不理想及加性噪声的影响,所收到的数字信号不可避免地会发生错误。

为了在已知信噪比的情况下达到一定的误比特率指标,首先应合理设计基带信号,选择调制、解调方式,采用频域均衡和时域均衡,使误比特率尽可能降低,但若误比特率仍不能满足要求,则必须采用信道编码,即差错控制编码。

差错控制编码的基本做法是:在发送端被传输的信息序列上附加一些监督码元,这些多余的码元与信息码元之间以某种确定的规则相互关联(约束)。接收端按照既定的规则检验信息码元与监督码元之间的关系,一旦传输过程中发生差错,则信息码元与监督码元之间的关系将受到破坏,从而可以发现错误,乃至纠正错误。研究各种编码和译码方法正式差错控制编码所要解决的问题。

㈥ 关于计算机网络的crc计算

我们知道,一台主机向另外一台主机发送报文的时候,需要一层层经过自己的协议栈进行数据封装,到达最后一层(四层协议的网络接口层)时需要在帧尾部添加FCS校验码(通过CRC算法得出)。当对端主机收到时,在接收端同样通过CRC算法进行验证,确认传输过程中是否出现错误。它只能确认一个帧是否存在比特差错,但没有提供解决措施。


循环冗余校验的原理

㈦ 什么是差错校验要具体点的

差错校验是在数据通信过程中能发现或纠正差错,把差错限制在尽可能小的允许范围内的技术和方法。

1. 信号在物理信道中传输时,线路本身电器特性造成的随机噪声、信号幅度的衰减、频率和相位的畸变、电器信号在线路上产生反射造成的回音效应、相邻线路间的串扰以及各种外界因素(如大气中的闪电、开关的跳火、外界强电流磁场的变化、电源的波动等)都会造成信号的失真。在数据通信中,将会使接受端收到的二进制数位和发送端实际发送的二进制数位不一致,从而造成由“0”变成“1”或由“1”变成“0”的差错
常用的校验方法有如下:
奇偶校验码

奇偶校验码是一种通过增加冗余位使得码字中“1”的个数为奇数或偶数的编码方法,它是一种检错码。

1.垂直奇偶校验的特点及编码规则

特点:垂直奇偶校验又称纵向奇偶校验,它能检测出每列中所有奇数个错,但检测不出偶数个的错。因而对差错的漏检率接近1/2。

位\数字 0 1 2 3 4 5 6 7 8 9
C1 0 1 0 1 0 1 0 1 0 1
C2 0 0 1 1 0 0 1 1 0 0
C3 0 0 0 0 1 1 1 1 0 0
C4 0 0 0 0 0 0 0 0 1 1
C5 1 1 1 1 1 1 1 1 1 1
C6 1 1 1 1 1 1 1 1 1 1
C7 0 0 0 0 0 0 0 0 0 0
偶 C0 0 1 1 0 1 0 0 1 1 0
奇 1 0 0 1 0 1 1 0 0 1

2.水平奇偶校验的特点及编码规则
特点:水平奇偶校验又称横向奇偶校验,它不但能检测出各段同一位上的奇数个错,而且还能检测出突发长度<=p的所有突发错误。其漏检率要比垂直奇偶校验方法低,但实现水平奇偶校验时,一定要使用数据缓冲器。

位\数字 0 1 2 3 4 5 6 7 8 9 偶校验
C1 0 1 0 1 0 1 0 1 0 1 1
C2 0 0 1 1 0 0 1 1 0 0 0
C3 0 0 0 0 1 1 1 1 0 0 0
C4 0 0 0 0 0 0 0 0 1 1 0
C5 1 1 1 1 1 1 1 1 1 1 1
C6 1 1 1 1 1 1 1 1 1 1 1
C7 0 0 0 0 0 0 0 0 0 0 0

3.水平垂直奇偶校验的特点及编码规则
特点:水平垂直奇偶校验又称纵横奇偶校验。它能检测出所有3位或3位以下的错误、奇数个错、大部分偶数个错以及突发长度<=p+1的突发错。可使误码率降至原误码率的百分之一到万分之一。还可以用来纠正部分差错。有部分偶数个错不能测出。适用于中、低速传输系统和反馈重传系统。

位\数字 0 1 2 3 4 5 6 7 8 9 校验码字

C1 0 1 0 1 0 1 0 1 0 1 1
C2 0 0 1 1 0 0 1 1 0 0 0
C3 0 0 0 0 1 1 1 1 0 0 0
C4 0 0 0 0 0 0 0 0 1 1 0
C5 1 1 1 1 1 1 1 1 1 1 1
C6 1 1 1 1 1 1 1 1 1 1 1
C7 0 0 0 0 0 0 0 0 0 0 0
C8 0 1 1 0 1 0 0 1 1 0 1

2.5.3 循环冗余码(CRC)
1.CRC的工作方法
在发送端产生一个循环冗余码,附加在信息位后面一起发送到接收端,接收端收到的信息按发送端形成循环冗余码同样的算法进行校验,若有错,需重发。
2.循环冗余码的产生与码字正确性检验例子。
例1.已知:信息码:110011 信息多项式:K(X)=X5+X4+X+1
生成码:11001 生成多项式:G(X)=X4+X3+1(r=4)
求:循环冗余码和码字。
解:1)(X5+X4+X+1)*X4的积是 X9+X8+X5+X4 对应的码是1100110000。
2)积/G(X)(按模二算法)。
由计算结果知冗余码是1001,码字就是1100111001。

1 0 0 0 0 1←Q(X)
G(x)→1 1 0 0 1 )1 1 0 0 1 1 0 0 0 0←F(X)*Xr
1 1 0 0 1 ,
1 0 0 0 0
1 1 0 0 1
1 0 0 1←R(X)(冗余码)

例2.已知:接收码字:1100111001 多项式:T(X)=X9+X8+X5+X4+X3+1
生成码 : 11001 生成多项式:G(X)=X4+X3+1(r=4)
求:码字的正确性。若正确,则指出冗余码和信息码。
解:1)用字码除以生成码,余数为0,所以码字正确。

1 0 0 0 0 1←Q(X)
G(x)→1 1 0 0 1 )1 1 0 0 1 1 1 0 0 1←F(X)*Xr+R(x)
1 1 0 0 1 ,
1 1 0 0 1
1 1 0 0 1
0←S(X)(余数)

2)因r=4,所以冗余码是:11001,信息码是:110011

3.循环冗余码的工作原理
循环冗余码CRC在发送端编码和接收端校验时,都可以利用事先约定的生成多项式G(X)来得到,K位要发送的信息位可对应于一个(k-1)次多项式K(X),r位冗余位则对应于一个(r-1)次多项式R(X),由r位冗余位组成的n=k+r位码字则对应于一个(n-1)次多项式T(X)=Xr*K(X)+R(X)。

4.循环冗余校验码的特点
1)可检测出所有奇数位错;
2)可检测出所有双比特的错;
3)可检测出所有小于、等于校验位长度的突发错。

2.5.4 海明码

1.海明码的概念

海明码是一种可以纠正一位差错的编码。它是利用在信息位为k位,增加r位冗余位,构成一个n=k+r位的码字,然后用r个监督关系式产生的r个校正因子来区分无错和在码字中的n个不同位置的一位错。它必需满足以下关系式:
2r>=n+1 或 2r>=k+r+1
海明码的编码效率为:
R=k/(k+r)
式中 k为信息位位数
r为增加冗余位位数

2.海明码的生成与接收

方法一:

1)海明码的生成。

例1.已知:信息码为:"0010"。海明码的监督关系式为:
S2=a2+a4+a5+a6
S1=a1+a3+a5+a6
S0=a0+a3+a4+a6

求:海明码码字。

解:1)由监督关系式知冗余码为a2a1a0。
2)冗余码与信息码合成的海明码是:"0010a2a1a0"。
设S2=S1=S0=0,由监督关系式得:
a2=a4+a5+a6=1
a1=a3+a5+a6=0
a0=a3+a4+a6=1
因此,海明码码字为:"0010101"

2)海明码的接收。

例2.已知:海明码的监督关系式为:
S2=a2+a4+a5+a6
S1=a1+a3+a5+a6
S0=a0+a3+a4+a6
接收码字为:"0011101"(n=7)

求:发送端的信息码。

解:1)由海明码的监督关系式计算得S2S1S0=011。
2)由监督关系式可构造出下面错码位置关系表:

S2S1S0 000 001 010 100 011 101 110 111
错码位置 无错 a0 a1 a2 a3 a4 a5 a6

3)由S2S1S0=011查表得知错码位置是a3。
4)纠错--对码字的a3位取反得正确码字:"0 0 1 0 1 0 1"
5)把冗余码a2a1a0删除得发送端的信息码:"0010"

方法二:(不用查表,方便编程)---推荐!!!

1)海明码的生成(顺序生成法)。

例3.已知:信息码为:" 1 1 0 0 1 1 0 0 " (k=8)
求:海明码码字。
解:1)把冗余码A、B、C、…,顺序插入信息码中,得海明码
码字:" A B 1 C 1 0 0 D 1 1 0 0 "
码位: 1 2 3 4 5 6 7 8 9 10 11 12
其中A,B,C,D分别插于2k位(k=0,1,2,3)。码位分别为1,2,4,8。
2)冗余码A,B,C,D的线性码位是:(相当于监督关系式)
A->1,3,5,7,9,11;
B->2,3,6,7,10,11;
C->4,5,6,7,12;(注 5=4+1;6=4+2;7=4+2+1;12=8+4)
D->8,9,10,11,12。
3)把线性码位的值的偶校验作为冗余码的值(设冗余码初值为0):
A=∑(0,1,1,0,1,0)=1
B=∑(0,1,0,0,1,0)=0
C=∑(0,1,0,0,0) =1
D=∑(0,1,1,0,0) =0
4)海明码为:"1 0 1 1 1 0 0 0 1 1 0 0"

2)海明码的接收。

例4.已知:接收的码字为:"1 0 0 1 1 0 0 0 1 1 0 0"(k=8)
求:发送端的信息码。
解:1)设错误累加器(err)初值=0
2)求出冗余码的偶校验和,并按码位累加到err中:
A=∑(1,0,1,0,1,0)=1 err=err+20=1
B=∑(0,0,0,0,1,0)=1 err=err+21=3
C=∑(1,1,0,0,0) =0 err=err+0 =3
D=∑(0,1,1,0,0) =0 err=err+0 =3
由err≠0可知接收码字有错,
3)码字的错误位置就是错误累加器(err)的值3。
4)纠错--对码字的第3位值取反得正确码字:
"1 0 1 1 1 0 0 0 1 1 0 0"
5)把位于2k位的冗余码删除得信息码:"1 1 0 0 1 1 0 0"

阅读全文

与基本比特差错的检测算法相关的资料

热点内容
帮邦友车app在哪里下载 浏览:213
安卓应用受限制怎么办 浏览:670
照片加密格式变成rad 浏览:514
linux安装xinetd 浏览:273
java和unity 浏览:789
最小单片机系统接电源怎么接 浏览:218
怎么进vac服务器 浏览:360
做个程序员的感受 浏览:313
亚洲支持加密货币的国家 浏览:96
linux串口锁 浏览:944
加密狗被拔掉的时间 浏览:807
数组成环算法 浏览:864
购买了服务器后如何弄域名 浏览:554
pdf图片排版 浏览:387
17岁可以去当程序员 浏览:267
python安装包怎么下载 浏览:848
栈程序编程 浏览:21
为什么京东苹果安卓进不去 浏览:358
程序员教程第三版读书心得 浏览:631
解压之前目录 浏览:827