纠错和检测代码

在本教程中,我们将了解一些常用的误差校正和检测代码。ob直播app欧宝官网app苹果下载我们将在数字通信中看到错欧宝官网app苹果下载误,什么是不同类型的错误,一些错误校正和检测代码,如奇偶校验,CRC,汉明码等。

介绍

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

什么是错误

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

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

e1

回到顶部

错误的类型

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

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

•单个位错误

•多个比特错误

•爆发错误

单位数据错误

整个数据序列中的一位的变化称为“单位错误”。串行通信系统中单位误差的发生非常罕见。这种类型的错误仅发生在并行通信系统中,因为数据在单线中传输位明智,有可能是单线嘈杂的。

e2

多个数据错误

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

e3

突发错误

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

e4

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

回到顶部

检测代码错误

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

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

错误检测类型

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

奇偶校验检查

奇偶校验位是指在发送数据之前添加到数据上的一个额外的位。在添加奇偶校验位之前,要计算数据中1或0的个数。基于这种数据计算,在实际信息/数据中添加一个额外的位。在数据中增加奇偶校验位会导致数据串大小的变化。

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

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

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

  • 甚至是奇偶校验
  • 奇校验
偶同位
  • 如果数据甚至具有1的数量,则奇偶校验位为0.例如:数据是10000001 - >奇偶校验位0
  • 奇数1的,奇偶校验位为1.前:数据是10010001 - >奇偶校验位1
奇数
  • 如果数据有奇数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校验和(AN / 466)

例子

exx

截至现在我们讨论了错误检测代码。欧宝官网app苹果下载但要收到完全和完善的数据序列而没有任何错误,才能通过检测数据发生的错误来完成。但是,我们还需要通过消除错误的存在来纠正数据,如果有的话。为此我们使用其他代码。

回到顶部

错误校正码

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

  • 单点误差校正
  • 破裂纠错

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

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

回到顶部

汉明码

该错误检测和校正代码技术是由R.W.HAMM开发的。此代码不仅标识了整个数据序列中的错误位,而且还纠正了它。此代码使用位于码字中的某些位置的多个奇偶校验位。奇偶校验位数取决于信息位的数量。汉明代码使用冗余比特和数据位之间的关系,并且该代码可以应用于任何数量的数据位。

什么是冗余的位?

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

汉明代码如何实际纠正错误?

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

要了解汉明代码的工作和数据纠错和检测机制,让我们看看以下阶段。

奇偶校验位数

如前所述,添ob直播app加到数据串的奇偶校验位的数量取决于要传输的数据串的信息位的数量。奇偶校验位的数量将使用数据位来计算。这个关系如下所示。

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

因此,我们可以说需要使用单比特纠错传输4位数据所需的3个奇偶校验位。

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

在计算所需的奇偶校验比特数之后,我们应该知道将它们放在信息串中的适当位置,以提供单位纠错。

在上面考虑的例子中,我们有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。

对于4位数据,2个奇偶校验位不足以。

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

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

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

代码字中的总位为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设备中实现,如关键板,监视器,打印机等。
在早期的日子中,打卡用于表示字母数字代码。

他们是

  • 摩尔斯特码
  • 博多码
  • Hollerith 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等效物

相当于N = 100 1110的ASCII-7

ASCII-7等同D = 100 0100

相当于A = 1000001的ASCII-7

相当于N = 100 1110的ASCII-7

在ASCII代码中的LONDAN输出为1 0 0 1 1 0 0 1 0 0 11 11 11 1 0 0 11 11 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 1 0 0 11 1 1 0.

unicode.

ASCII代码和EBCDI代码中的绘制返回是它们与所有语言不兼容,并且它们没有足够的字符来表示所有类型的数据。为了克服这些缺点,开发了这个Unicode。
UNICODE是所有数字编码技术的新概念。在这里,我们用不同的字符来代表每个数字。它是能够表示任何类型数据的最先进和最复杂的语言。这就是所谓的“通用代码”。它是一个16位的代码,可以表示216 = 65536个不同的字符。
UNICODE是由UNICODE联盟和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-CODE-24-1-4-638
eBDic代码

回到顶部

3回复

发表评论

您的电子邮件地址不会被公开。必填字段被标记