纠错和检测代码

在本教程中,我们将学习一些常用的纠错和检测代码。亚博彩票下载我们将了解数字通信中的错亚博彩票下载误,错误的不同类型,一些错误纠正和检测代码,如奇偶校验,CRC,汉明码等。

Introdcution

在数字系统中,模拟信号将变为数字序列(以位的形式)。该比特序列被称为“数据流”。单位的位置的变化也导致数据输出中的灾难性(主要)错误。几乎在所有电子设备中,我们发现错误,我们使用错误检测和校正技术来获得精确或近似的输出。

什么是错误

在传输期间,数据可以损坏(从源到接收器)。它可能受到外部噪音或其他一些物理缺陷的影响。在这种情况下,输入数据与接收的输出数据不同。这种不匹配的数据被称为“错误”。

数据错误将导致重要/安全数据的丢失。即使是数据的一个变化也可能会影响整个系统的性能。通常,数字系统中的数据传输将以“比特转移”的形式。在这种情况下,数据错误可能在0和1的位置更改。

E1.

回到顶部

错误的类型

在数据序列中,如果将1变为零或0更改为1,则称为“位错误”。

在从发射机到接收器,数据传输中通常存在3种类型的错误。他们是

•单位错误

•多个位错误

•突发错误

单位数据错误

整个数据序列中一位的变化,称为“单位错误”。在串行通信系统中,出现单比特错误是非常罕见的。这种类型的错误只发生在并行通信系统中,因为数据在单行中传输位,单行有可能是有噪声的。

E2.

多个数据错误

如果发射机到接收机的数据序列中有两位或多位发生变化,称为“多位错误”。这种类型的错误发生在串行类型和并行类型的数据通信网络中。

E3.

爆发错误

数据序列中的比特集的变化称为“突发错误”。从第一位更改到最后一位更改,从第一个比特更改计算突发错误。

E4.

在这里,我们将错误表单第四位识别为第6位。第4位和第6位之间的数字也被视为错误。这些比特称为“突发错误”。这些突发位从发送器到接收器的变化,这可能导致数据序列中的主要错误。这种类型的错误发生在串行通信中,并且难以解决。

回到顶部

错误检测码

在数字通信系统中,错误从一个通信系统传送到另一个通信系统以及数据。如果未检测到和更正这些错误,则数据将丢失。为了有效沟通,数据应高精度地转移。这可以通过首先检测错误来实现,然后纠正它们。

错误检测是在通信系统中检测从发送器发送到接收器的数据中存在的错误的过程。我们使用一些冗余码来检测这些错误,通过在从源(发送器)发送到数据时添加到数据。这些代码称为“错误检测代码”。

错误检测类型

  1. 奇偶校验
  2. 循环冗余校验(CRC)
  3. 纵向冗余检查(LRC)
  4. 校验和

奇偶校验

奇偶校验位意味着在发送数据之前,没有任何添加到发射器的数据的比特。在添加奇偶校验位之前,在数据中计算1的1或零。基于此数据的计算,将额外的位添加到实际信息/数据中。向数据添加奇偶校验位将导致数据字符串大小的变化。

这意味着如果我们有8位数据,那么在向数据二进制字符串添加奇偶校验位后,它将成为9位二进制数据串。

奇偶校验也被称为“垂直冗余校验(VRC)”。

错误检测中有两种类型的奇偶校验位,它们是

  • 甚至是奇偶校验
  • 奇数
甚至是奇偶校验
  • 如果数据甚至具有1的数量,则奇偶校验位为0.例如:数据是10000001 - >奇偶校验位0
  • 奇数1的,奇偶校验位为1.前:数据是10010001 - >奇偶校验位1
奇数
  • 如果数据有奇数个1,奇偶校验位为0。例:数据为10011101 ->校验位0
  • 偶数为1,奇偶校验位为1.前:数据是10010101 - >奇偶校验位1

请注意:数据位的计数也将包括奇偶校验位。

将奇偶位加到发射机数据上的电路称为“奇偶发生器”。奇偶校验位被发送,并在接收端进行检查。如果发送端发送的奇偶校验位与接收端接收的奇偶校验位不相等,则检测到错误。在接收机上检查奇偶校验的电路称为“奇偶校验器”。

偶数奇偶校验和奇数奇偶校验的消息

5.

回到顶部

循环冗余校验(CRC)

循环代码是线性(n,k)块代码,其属性是码字的每个循环移位导致另一个代码字。这里k表示发射机处的消息的长度(信息位数)。n是添加检查位后邮件的总长度。(实际数据和检查位)。n,k是检查位的数量。
通过错误检测用于循环冗余校验的代码称为CRC码(循环冗余校验码)。循环冗余校验码是一种简化的循环码。这些类型的代码用于错误检测和编码。它们很容易使用带有反馈连接的移位寄存器实现。这就是它们被广泛用于数字通信中的错误检测的原因。CRC码将提供有效和高水平的保护。

CRC代码生成

基于所需的位检查数,我们将向实际数据添加一些零(0)。这种新的二进制数据序列由长度n + 1的新单词除以,其中n是要添加的检查比特数。作为该模数2分割的结果获得的提醒被添加到股息位序列以形成循环代码。生成的代码字由代码生成中使用的除数是完全可分割的。这通过发射器传输。

例子

前任

在接收器方面,我们将接收的代码单词除以相同的除法以获取实际代码字。对于无错误接收数据,提醒为0.如果提醒是非零,则意味着接收的代码/数据序列存在错误。错误检测的概率取决于用于构造循环码的校验位数(n)。对于单位和两个比特错误,概率为100%。

对于长度N - 1的突发误差,错误检测的概率为100%。

长度等于n + 1的突发误差,错误检测的概率降低到1 - (1/2)N-1

长度大于n - 1的突发误差,错误检测的概率为1 - (1/2)N

回到顶部

纵向冗余检查

在纵向冗余方法中,位块以表格格式排列(在行和列中),我们将分别计算每列的奇偶校验位。这些奇偶校验位的集合也与我们的原始数据位一起发送。

纵向冗余检查有点逐位奇偶校验计算,因为我们单独计算每列的奇偶校验。

该方法可以容易地检测突发错误和单个比特错误,并且无法检测到相同垂直片中发生的2位错误。

6.

回到顶部

校验和

校验和与奇偶校验位类似,除外,总和中的位数大于奇偶校验,结果始终约束为零。这意味着如果校验和为零,则会检测到错误。消息的校验和是一定长度的代码字的算术和。总和通过1的恭维表示,并作为实际代码字的代码扩展,存储或转移。在接收器处,通过从发射机接收位序列来计算新的校验和。

校验和方法包括奇偶校验位,校验位和纵向冗余校验(LRC)。例如,如果我们必须转移和检测长数据序列的错误(也称为数据字符串),那么我们将其分为较短的单词,我们可以将数据存储在相同的宽度中。对于每个传入的位,我们将它们添加到已存储的数据中。在各个例子中,新添加的单词称为“校验和”。

在接收器方面,接收的位校验和与发射器的校验和相同,没有找到错误。

我们还可以通过添加所有数据位找到校验和。例如,如果我们有4个字节的数据为25h,62h,3fh,52h。

然后,将所有字节相加,得到118H

下降圈啃,我们得到18h

找到小咬的2的补码,即E8H

这是传输的4位数据的校验和。

在接收器方面,检查是否收到数据而没有错误,只需将校验和添加到实际数据位(我们将获得200h)。通过放下携带蚕食我们得到00h。这意味着校验和被限制为零。因此数据中没有错误。

通常,有5种类型的校验和方法

  • 整数加法校验和
  • 补充的校验和
  • 弗莱彻校验和
  • 阿德勒校验和
  • ATN校验和(一个/ 466)

例子

exx.

到目前为止,我们讨论了错误检测代码。亚博彩票下载但是仅仅检测数据中出现的错误是不够的,无法得到准确、完美的数据序列而没有任何错误。但我们也需要通过消除错误(如果有的话)来纠正数据。为了做到这一点,我们使用了一些其他的代码。

回到顶部

纠正代码纠错

用于错误检测和纠错误差的代码被称为“纠错码”。纠错技术有两种类型。他们是,

  • 单位纠错
  • 突发纠错

校正单个比特错误的过程或方法称为“单位误差校正”。在数据序列中检测和校正突发误差的方法称为“突发误差校正”。

汉明码或汉明距离代码是我们在大多数通信网络和数字系统中使用的最佳错误纠正码。

回到顶部

汉明码

这种错误检测和纠错编码技术是由R.W.Hamming开发的。该代码不仅识别错误位,在整个数据序列,它还纠正它。该代码使用位于码字某些位置的若干奇偶校验位。奇偶校验位的数目取决于信息位的数目。汉明码使用冗余位和数据位之间的关系,该代码可以应用于任何数量的数据位。

什么是冗余的位?

冗余表示“实际数据序列的比特数与发送比特之间的差异”。这些冗余位用于通信系统中以检测和纠正错误(如果有)。

汉明代码是如何纠正错误的?

在汉明码中,冗余位放置在某些计算的位置以消除错误。两个冗余位之间的距离称为“汉明距离”。

为了了解汉明码的工作原理和数据纠错检测机制,让我们来看看以下几个阶段。

奇偶校验位数

如我们之前学到的,要添加到数据字符串的奇偶校验比特数取决于要发送的数据字符串的信息比特数。通过使用数据位来计算奇偶校验位数。下面给出了这一关系。

2P.= n + P +1

这里,n表示数据字符串中的比特数。

P表示奇偶校验位数。

例如,如果我们有4位数据字符串,即n = 4,则可以使用试验和错误方法找到要添加的奇偶校验比特数。让我们拿到p = 2,然后

2P.= 22= 4和n + p + 1 = 4 + 2 + 1 = 7

这与实际表达式相违背。

所以让我们尝试p = 3,然后

2P.= 23.= 8和n + p + 1 = 4 + 3 + 1 = 8

所以我们可以说,需要3位奇偶校验位才能传输4位数据,并进行单位纠错。

在哪里放置这些奇偶校验位?

在计算所需的奇偶校验位数后,我们应该知道它们在信息字符串中的适当位置,以提供单位错误纠正。

在上述示例中,我们有4个数据位和3个奇偶校验位。因此要传输的总码字是7位(4 + 3)。我们通常将数据序列从右到左表示,如下所示。

位7,位6,位5,位4,比特3,位2,位1,位0

奇偶校验位必须位于2的幂位。即在1 2 4 8 16等处。因此,包含奇偶校验位后的码字将是这样的

D7,D6,D5,P4,D3,P2,P1

这里P1,P2和P3是奇偶校验位。D1-D7是数据位。

构建一点位置表

在汉明代码中,每个奇偶校验位检查并有助于查找整个代码字中的错误。因此,我们必须找到奇偶校验位的值来为它们分配一个位值。

7.

通过计算和插入数据位的奇偶校验位,我们可以通过汉明码实现纠错。

让我们通过一个例子来清楚地理解这一点。

例:

通过使用汉明代码,在偶数均匀编码数据1101。

步骤1

计算所需的奇偶校验位数。

让p = 2,然后

2P.= 22= 4和n + p + 1 = 4 + 2 + 1 = 7。

2奇偶校验位对于4位数据是不够的。

所以让我们尝试p = 3,然后

2P.= 23.= 8和n + p + 1 = 4 + 3 + 1 = 8

因此,对于4位数据,3个奇偶校验位就足够了。

代码字中的总位为4 + 3 = 7

步骤2

构建位位置表

8.

步骤3

确定奇偶校验位。

对于P1:3,5和7位具有三个1,因此偶数均匀,P1 = 1。

对于P2:3,6和7位具有两个1,因此偶数均匀,P2 = 0。
对于p3:5,6和7位,具有两个1,因此均匀奇偶校验,p3 = 0。

通过在各自位置输入/插入奇偶校验比特,可以形成码字并发送。这是1100101。

笔记:如果码字具有所有零(例如:0000000),则汉明代码没有错误。

要以字母和数字表示二进制数据,我们使用字母数字代码。

回到顶部

alpha数字代码

字母数字代码基本上是二进制代码,用来表示字母数字数据。由于这些代码用字符来表示数据,字母数字代码也被称为“字符代码”。

这些代码可以代表所有类型的数据,包括通过计算机可接受表单中的字母表,数字,标点符号和数学符号。这些代码在I / O设备中实现,如关键板,监视器,打印机等。
在早期的日子中,打卡用于表示字母数字代码。

他们是

  • 摩尔斯电码
  • Baudot Code.
  • 霍尔瑞斯代码
  • ASCII代码
  • EBCDI代码
  • unicode.

摩尔斯电码

在计算机和数字电子电子时代的起始阶段,莫尔斯代码非常流行,最具使用的代码。亚博最新官网网址这是由Samuel F.B.Morse发明的,于1837年。这是第一个用于电信中使用的电汇。它主要用于电报频道,无线电通道和空中交通管制单元。

Boudot代码

这段代码是由法国工程师Emile BadoT发明的,于1870年。它是一个5个单元代码,意味着它使用5个元素来表示字母表。它还用于电报网络以转移罗马数字。

Hollerith Code.

此代码由Herman Hollerith成立于1896年的公司开发的。根据传输信息打印卡的12位代码称为“Hollerith代码”。

ASCII代码

ASCII指的是美国标准代码用于信息交换。它是世界上最受欢迎和广泛使用的字母数字代码。此代码是在1967年开发的,首次发布的。ASCII代码是一个7位代码,这意味着此代码使用27 = 128个字符。这包括

26小写字母(a - z),26个大写字母(a - z),33个特殊字符和符号(如!@#$等),33个控制字符(* - + /和%等)和10位数(0 - 9)。

在这个7位代码中,我们有两个部分,最左边的3位和右边的4位。最左边的3位称为“区域位”,右边的4位称为“数字位”

ASCII表

8位ASCII代码可以表示256(28)个字符。它被称为USACC - II或ASCII - 8个代码。

例子:

如果我们想打印名称Londan,ASCII代码是?

ASCII-7等同L = 100 1100

等效于O = 100 1111的ASCII-7

ASCII-7等效于n = 100 1110

相当于D = 100100的ASCII-7

ASCII-7等效A = 100 0001

ASCII-7等效于n = 100 1110

LONDAN的ASCII码输出为1 0 0 1 1 0 0 1 0 0 1 1 1 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 1 1 0 0 1。

unicode.

ASCII代码和EBCDI代码中的绘制返回是它们与所有语言不兼容,并且它们没有足够的字符来表示所有类型的数据。为了克服这些缺点,开发了这个Unicode。
Unicode是所有数字编码技术的新概念。在此,我们有一个不同的字符来表示每个数字。它是最先进和最复杂的语言,具有代表任何类型的数据。所以这被称为“通用守则”。它是一个16位代码,我们可以代表216 = 65536不同的字符。
Unicode是由Unicode Consortium和ISO(标准化国际组织)的综合努力开发的。

EBCDI代码

EBCDI代表扩展二进制编码十进制交换代码。此代码由IBM Inc公司开发。它是一个8位代码,所以我们可以使用EBCDI代码代表28 = 256个字符。这包括所有字母和符号,如26个小写字母(a - z),26个大写字母(a - z),33个特殊字符和符号(如!@#$等),33个控制字符(* - + /%等)和10位数(0 - 9)。

在EBCDI代码中,数字的8位代码由8421个BCD代码表示,前面为1111。

ebcdic代码- 24 - 1 - 4 - 638
ebdic代码

回到顶部

3反应

留下一个回复

您的电子邮件地址不会被公开。必需的地方已做标记*