日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

crc可以检出奇数个错误_计算机网络最新章节_陈虹著_掌阅小说网

發(fā)布時(shí)間:2025/3/19 编程问答 67 豆豆
生活随笔 收集整理的這篇文章主要介紹了 crc可以检出奇数个错误_计算机网络最新章节_陈虹著_掌阅小说网 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

4.3 差錯(cuò)控制技術(shù)

物理層的任務(wù)是接收一個(gè)原始的比特流,并準(zhǔn)備將它傳輸?shù)侥康牡亍T趥鬏斶^程中傳輸?shù)谋忍亓鱾€(gè)數(shù)和內(nèi)容可能會(huì)發(fā)生變化,即產(chǎn)生差錯(cuò),但目前已有的物理層協(xié)議對(duì)傳輸?shù)谋忍亓鞑⒉贿M(jìn)行任何檢測(cè)和糾錯(cuò),即物理層并不保證這個(gè)比特流的正確傳輸,物理層傳輸產(chǎn)生的差錯(cuò)將由數(shù)據(jù)鏈路層負(fù)責(zé)檢測(cè)和糾錯(cuò)。

4.3.1 差錯(cuò)產(chǎn)生的原因

差錯(cuò)是指通信接收方收到的數(shù)據(jù)與發(fā)送方實(shí)際發(fā)出的數(shù)據(jù)不一致的現(xiàn)象。這種差錯(cuò)一般是由通信信道的噪聲產(chǎn)生的,通信信道的噪聲分為熱噪聲和沖擊噪聲兩種。熱噪聲是由傳輸介質(zhì)導(dǎo)體的電子熱運(yùn)動(dòng)產(chǎn)生的,它的特點(diǎn)是:時(shí)刻存在,幅度較小且強(qiáng)度與頻率無關(guān),但頻譜很寬,是一類隨機(jī)噪聲。由熱噪聲引起的差錯(cuò)稱為隨機(jī)差錯(cuò)。與熱噪聲相比,沖擊噪聲幅度較大,是引起傳輸差錯(cuò)的主要原因。沖擊噪聲的持續(xù)時(shí)間要比數(shù)據(jù)傳輸中的每個(gè)比特發(fā)送時(shí)間長(如外界磁場(chǎng)的變換、電源開關(guān)的跳變等),因而沖擊噪聲可能會(huì)引起相鄰多個(gè)數(shù)據(jù)位出錯(cuò)。沖擊噪聲引起的傳輸差錯(cuò)稱為突發(fā)差錯(cuò),它的特點(diǎn)是:差錯(cuò)呈突發(fā)狀,影響一批連續(xù)的數(shù)據(jù)位。計(jì)算機(jī)網(wǎng)絡(luò)中的差錯(cuò)主要是指突發(fā)差錯(cuò)。

4.3.2 差錯(cuò)控制方法

差錯(cuò)控制是指在數(shù)據(jù)通信過程中能發(fā)現(xiàn)或糾正差錯(cuò),將差錯(cuò)限制在盡可能小的允許范圍內(nèi)。常用的差錯(cuò)控制方法有反饋檢測(cè)、自動(dòng)重傳請(qǐng)求(Automatic Repeat reQuest,ARQ)和前向糾錯(cuò)(Forward Error Correction,FEC)。

1.反饋檢測(cè)

反饋檢測(cè)方法又稱回送校驗(yàn)法,雙方在進(jìn)行數(shù)據(jù)傳輸時(shí),接收方將接收到的數(shù)據(jù)重新發(fā)回發(fā)送方,由發(fā)送方檢查是否與原始數(shù)據(jù)完全相符。如不相符,則發(fā)送方發(fā)送一個(gè)控制信息通知接收方刪去出錯(cuò)的數(shù)據(jù),并重新發(fā)送該數(shù)據(jù);如相符,則發(fā)送下一個(gè)數(shù)據(jù)。其原理如圖4-5所示。反饋檢測(cè)的特點(diǎn)是:原理簡單,實(shí)現(xiàn)容易,可靠性強(qiáng),但開銷大,信道利用率低。

圖4-5 反饋檢測(cè)原理

a)無差錯(cuò)情況 b)出錯(cuò)情況

2.自動(dòng)重傳請(qǐng)求

自動(dòng)重傳請(qǐng)求是計(jì)算機(jī)網(wǎng)絡(luò)中較常采用的差錯(cuò)控制方法。自動(dòng)重傳請(qǐng)求的原理是:發(fā)送方將要發(fā)送的數(shù)據(jù)附加上一定的冗余檢錯(cuò)碼一并發(fā)送,接收方則根據(jù)檢錯(cuò)碼對(duì)數(shù)據(jù)進(jìn)行差錯(cuò)檢測(cè),如發(fā)現(xiàn)差錯(cuò),則接收方返回重傳請(qǐng)求的信息,發(fā)送方在收到請(qǐng)求重傳的信息后,重新傳送數(shù)據(jù);如沒有發(fā)現(xiàn)差錯(cuò),則發(fā)送下一個(gè)數(shù)據(jù)幀,如圖4-6所示。為保證通信正常進(jìn)行,還需引入計(jì)時(shí)器(防止整個(gè)數(shù)據(jù)幀或反饋信息丟失)和幀編號(hào)(以防止接收方多次收到同一幀并遞交給網(wǎng)絡(luò)層)。自動(dòng)重傳請(qǐng)求的特點(diǎn)是:使用檢錯(cuò)碼(常用的有奇偶校驗(yàn)碼和CRC碼等),必須是雙向信道,發(fā)送方需設(shè)置緩沖器。

圖4-6 自動(dòng)重傳請(qǐng)求原理

a)無差錯(cuò)情況 b)出錯(cuò)情況

3.前向糾錯(cuò)

前向糾錯(cuò)的原理是發(fā)送方將要發(fā)送的數(shù)據(jù)附加上一定的冗余糾錯(cuò)碼一并發(fā)送,接收方則根據(jù)糾錯(cuò)碼對(duì)數(shù)據(jù)進(jìn)行差錯(cuò)檢測(cè),如發(fā)現(xiàn)差錯(cuò),由接收方進(jìn)行糾正。前向糾錯(cuò)的特點(diǎn)是使用糾錯(cuò)碼(糾錯(cuò)碼編碼效率低且設(shè)備復(fù)雜),單向信道,發(fā)送方無須設(shè)置緩沖器。

4.3.3 差錯(cuò)控制編碼

差錯(cuò)控制編碼的原理是:發(fā)送方對(duì)準(zhǔn)備傳輸?shù)臄?shù)據(jù)進(jìn)行抗干擾編碼,即按某種算法附加上一定的冗余位,構(gòu)成一個(gè)碼字后再發(fā)送。接收方收到數(shù)據(jù)后進(jìn)行校驗(yàn),即檢查信息位和附加的冗余位之間的關(guān)系,以檢查傳輸過程中是否有差錯(cuò)發(fā)生。差錯(cuò)控制編碼分檢錯(cuò)碼和糾錯(cuò)碼兩種,檢錯(cuò)碼是能自動(dòng)發(fā)現(xiàn)差錯(cuò)的編碼,糾錯(cuò)碼是不僅能發(fā)現(xiàn)差錯(cuò)而且能自動(dòng)糾正差錯(cuò)的編碼。計(jì)算機(jī)網(wǎng)絡(luò)中常用的差錯(cuò)控制編碼是奇偶校驗(yàn)碼、循環(huán)冗余碼和海明碼。

1.奇偶校驗(yàn)碼

奇偶校驗(yàn)碼是一種通過增加冗余位使得碼字中“1”的個(gè)數(shù)恒為奇數(shù)或偶數(shù)的編碼方法。在實(shí)際使用時(shí)又可分為垂直奇偶校驗(yàn)、水平奇偶校驗(yàn)和水平垂直奇偶校驗(yàn)等。

1)垂直奇偶校驗(yàn)。垂直奇偶校驗(yàn)又稱為縱向奇偶校驗(yàn),它是將要發(fā)送的整個(gè)信息塊分為定長

p

位的若干段(比如說

q

段),在每段后面按“1”的個(gè)數(shù)為奇數(shù)或偶數(shù)的規(guī)律加上一位奇偶校驗(yàn)位,如圖4-7所示。在信息(

I

11

I

21

,…,

I

p

1

I

12

I

22

,…,

I

p

2

,…,

I

1

q

,…,

I

pq

)中,每

p

位構(gòu)成一段(即圖4-7中的一列),共有

q

段(即共有

q

列)。每段加上一位奇偶校驗(yàn)冗余位,即圖中的

r

i

圖4-7 垂直奇偶校驗(yàn)

r

i

的編碼規(guī)則為:

偶校驗(yàn):

r

i

=

I

1

i

+

I

2

i

+…+

I

pi

(i=1,2,3,…,q)

奇校驗(yàn):

r

i

=

I

1

i

+

I

2

i

+…+

I

pi

+1 (

i

=1,2,3,…,

q

)

說明:式中的“+”為模2加,即異或運(yùn)算,只求本位和,進(jìn)位丟棄。

圖4-7中箭頭給出了串行發(fā)送的順序,即逐位先后次序?yàn)?/p>

I

11

I

21

,…,

I

p

1

r

1

I

12

I

22

,…,

I

p

2

r

2

,…,

I

1

q

I

2

q

,…,

I

pq

r

q

。在編碼和校驗(yàn)過程中,用硬件方法或軟件方法很容易實(shí)現(xiàn)上述連續(xù)半加運(yùn)算,而且可以邊發(fā)送邊產(chǎn)生冗余位;同樣,在接收方也可以邊接收邊進(jìn)行校驗(yàn)后去掉校驗(yàn)位。

垂直奇偶校驗(yàn)方法能檢測(cè)出每列中的所有奇數(shù)位錯(cuò),但檢測(cè)不出偶數(shù)位錯(cuò)。對(duì)于突發(fā)錯(cuò)誤,奇數(shù)位錯(cuò)與偶數(shù)位錯(cuò)的發(fā)生概率接近于相等,因而對(duì)差錯(cuò)的漏檢率接近于1/2。

2)水平奇偶校驗(yàn)。為了降低對(duì)突發(fā)錯(cuò)誤的漏檢率,可以采用水平奇偶校驗(yàn)方法。水平奇偶校驗(yàn)又稱為橫向奇偶校驗(yàn),它是對(duì)各個(gè)信息段的相應(yīng)位橫向進(jìn)行編碼,產(chǎn)生一個(gè)奇偶校驗(yàn)冗余位,如圖4-8所示。

圖4-8 水平奇偶校驗(yàn)

r

i

編碼規(guī)則為:

偶校驗(yàn):

r

i

=

I

i

1

+

I

i

2

+…+

I

iq

(i=1,2,3,…,p)

奇校驗(yàn):

r

i

=

I

i

1

+

I

i

2

+…+

I

iq

+1 (

i

=1,2,3,…,

p

)

若每個(gè)信息段就是一個(gè)字符的話,這里的

q

就是發(fā)送信息塊中的字符數(shù)。

水平奇偶校驗(yàn)不但可以檢測(cè)出各段同一位上的奇數(shù)位錯(cuò),而且還能檢測(cè)出突發(fā)長度<

p

的所有突發(fā)錯(cuò)誤。按發(fā)送順序,從圖4-8可以看出“突發(fā)長度<

p

”的突發(fā)錯(cuò)誤必然分布在不同的行中,且每行一位,所以可以檢出差錯(cuò),它的漏檢率比垂直奇偶校驗(yàn)方法低。

3)水平垂直奇偶校驗(yàn)。同時(shí)進(jìn)行水平奇偶校驗(yàn)和垂直奇偶校驗(yàn)就構(gòu)成了水平垂直奇偶校驗(yàn),又稱為縱橫奇偶校驗(yàn),如圖4-9所示。

圖4-9 水平垂直奇偶校驗(yàn)

若水平垂直都采用偶校驗(yàn),則

r

i

,

j

的編碼規(guī)則如下。

r

i

,

q

+1

=

I

i

1

+

I

i

2

+…+

I

iq

(i=1,2,3,…,p)

r

p

+1,

j

=

I

1

j

+

I

2

j

+…+

I

pj

(j=1,2,3,…,q)

r

p

+1,

q

+1

=

r

p

+1,1

+

r

p

+1,2

+…+

r

p

+1,

q

=

r

1,

q

+1

+

r

2,

q

+1

+…+

r

p

,

q

+1

水平垂直奇偶校驗(yàn)?zāi)軝z測(cè)出所有3位或3位以下的錯(cuò)誤(因?yàn)榇藭r(shí)至少在某一行或某一列上有一位錯(cuò))、奇數(shù)位錯(cuò)、突發(fā)長度≤

p

+1的突發(fā)錯(cuò)誤以及很大一部分偶數(shù)位錯(cuò)。測(cè)量表明,這種方式的編碼可使誤碼率降至原誤碼率的百分之一到萬分之一。水平垂直奇偶校驗(yàn)不僅可檢錯(cuò),還可用來糾正部分差錯(cuò)。例如,數(shù)據(jù)塊中僅存在1位錯(cuò)時(shí),便能確定出錯(cuò)碼的位置就在某行和某列的交叉處,從而可以糾正它。

2.循環(huán)冗余碼

循環(huán)冗余校驗(yàn)方法是數(shù)據(jù)通信中差錯(cuò)檢測(cè)的重要方法,它對(duì)隨機(jī)錯(cuò)碼和突發(fā)錯(cuò)碼均能以較低的冗余度進(jìn)行嚴(yán)格檢查。

(1)循環(huán)冗余碼的計(jì)算方法

循環(huán)冗余校驗(yàn)碼(Cyclic Redundancy Check,CRC)也稱為多項(xiàng)式碼,簡稱CRC校驗(yàn)碼。在發(fā)送方產(chǎn)生一個(gè)循環(huán)冗余校驗(yàn)碼,附加在信息位后面一起發(fā)送到接收方,接收方將收到的信息按發(fā)送方形成循環(huán)冗余校驗(yàn)碼相同的算法進(jìn)行校驗(yàn)以檢測(cè)是否出錯(cuò)。

其計(jì)算過程如下:

1)確定信息多項(xiàng)式

M

(

x

)。將待發(fā)送的二進(jìn)制位串看成是一個(gè)多項(xiàng)式的系數(shù),該多項(xiàng)式稱為信息多項(xiàng)式

M

(

x

)。任何一個(gè)由二進(jìn)制數(shù)位串組成的代碼都可以和一個(gè)只含有0和1兩個(gè)系數(shù)的多項(xiàng)式建立一一對(duì)應(yīng)關(guān)系,一個(gè)

k

位數(shù)據(jù)幀可以看成是從

x

k

-1

x

0

k

次多項(xiàng)式的系數(shù)序列,這個(gè)多項(xiàng)式的階數(shù)為

k

-1,最高位(最左邊)是

x

k

-1

項(xiàng)的系數(shù),下一位是

x

k

-2

的系數(shù),依次類推。

例如:若信息位為1011011(7位),則

M

(

x

)=1×

x

6

+0×

x

5

+1×

x

4

+1×

x

3

+0×

x

2

+1×

x

1

+1×

x

0

=

x

6

+

x

4

+

x

3

+

x

+1;同樣,若

M

(

x

)=

x

5

+

x

4

+

x

2

+1,則對(duì)應(yīng)的二進(jìn)制位串為110101。

2)確定一個(gè)素多項(xiàng)式

G

(

x

)。

G

(

x

)稱為生成多項(xiàng)式,生成多項(xiàng)式的作用是和信息多項(xiàng)式進(jìn)行計(jì)算產(chǎn)生余數(shù)多項(xiàng)式。生成多項(xiàng)式的最高位和最低位必須是1。目前,國際標(biāo)準(zhǔn)中生成多項(xiàng)式有以下幾類。

CRC-12:

x

12

+

x

11

+

x

3

+

x

2

+

x

+1

CRC-16:

x

16

+

x

15

+

x

2

+1

CRC-CCITT-1:

x

16

+

x

12

+

x

5

+1

CRC-32:

x

32

+

x

26

+

x

23

+

x

22

+

x

16

+

x

12

+

x

11

+

x

10

+

x

8

+

x

7

+

x

5

+

x

4

+

x

2

+

x

+1

3)計(jì)算余數(shù)多項(xiàng)式

R

(

x

)。設(shè)

G

(

x

)為

r

階,發(fā)送方計(jì)算

x

r

M

(

x

)

/G

(

x

)(模2除法),得到余數(shù)多項(xiàng)式

R

(

x

),商舍掉。依據(jù)群論的相關(guān)理論,可以證明

R

(

x

)具有發(fā)現(xiàn)錯(cuò)誤的能力。

4)形成碼元多項(xiàng)式

C

(

x

)。發(fā)送方將

R

(

x

)附在

M

(

x

)之后,組成碼元多項(xiàng)式

C

(

x

),然后將其發(fā)送出去。

5)接收方檢驗(yàn)。當(dāng)接收方收到碼元多項(xiàng)式

C′

(

x

)后,計(jì)算

C′

(

x

)

/G

(

x

)(模2除法),得到新的余數(shù)多項(xiàng)式

R′

(

x

)。如果

R′

(

x

)=0,則認(rèn)為傳輸沒有錯(cuò)誤,否則,可以確定傳輸中產(chǎn)生了差錯(cuò)。

目前,CRC校驗(yàn)已由成熟的硬件完成,因此校驗(yàn)速度很快,冗余度也不大,是應(yīng)用最廣泛的一種校驗(yàn)碼。

設(shè)信息位為

m

位,生成多項(xiàng)式

G

(

x

)為

r

階,則計(jì)算CRC校驗(yàn)碼的步驟簡化如下。

1)在信息碼尾部附加

r

個(gè)0,成為

m

+

r

位二進(jìn)制位串,相應(yīng)多項(xiàng)式為

x

r

·

M

(

x

)。

2)按模2除法用

G

(

x

)對(duì)應(yīng)的位串去除

x

r

·

M

(

x

)對(duì)應(yīng)的位串,得到余數(shù)

R

(

x

)所對(duì)應(yīng)的位串。

3)按模2加法從

x

r

M

(

x

)對(duì)應(yīng)的位串中加上得到的余數(shù)

R

(

x

)所對(duì)應(yīng)的位串,其結(jié)果就是要傳送的帶CRC校驗(yàn)碼的數(shù)據(jù)。

【例4-1】設(shè)信息位

M

=101001101,生成多項(xiàng)式

G

(

x

)=

x

4

+

x

3

+

x

+1,試計(jì)算信息

M

的CRC校驗(yàn)碼

【解】

由已知

,r

=4,生成多項(xiàng)式

G(x)

對(duì)應(yīng)的位串為11011

。x

r

M(x)

對(duì)應(yīng)的位串為1010011010000。利用短除法計(jì)算如下:

余數(shù)

R

為0010

(

補(bǔ)足

r

=4位

),

因此,信息

M

=101001101的CRC校驗(yàn)碼為

1010011010000+0010=101001101

0010

【例4-2】在數(shù)據(jù)傳輸過程中,若接收方收到發(fā)送方發(fā)送的信息為10110011010,其生成多項(xiàng)式

G

(

x

)=

x

4

+

x

3

+1,問接收方收到的數(shù)據(jù)是否正確?(寫出判斷依據(jù)和推演過程

)

【解】

由題意知,在數(shù)據(jù)通信過程中采用的是循環(huán)冗余校驗(yàn)碼

(

CRC碼

)

進(jìn)行數(shù)據(jù)檢錯(cuò)。發(fā)送方在發(fā)送的數(shù)據(jù)塊中加入足夠的冗余位以滿足檢錯(cuò)需要。用數(shù)據(jù)多項(xiàng)式與生成多項(xiàng)式

G(x)

進(jìn)行運(yùn)算得到校驗(yàn)和

(

余數(shù)

),

將校驗(yàn)和附加在數(shù)據(jù)幀尾部,并使帶有校驗(yàn)和的幀所對(duì)應(yīng)的多項(xiàng)式能被

G(x)

除盡,然后將帶有校驗(yàn)和的數(shù)據(jù)幀發(fā)送出去,當(dāng)接收方接收時(shí),用

G(x)

去除它,若余數(shù)為0,則表示傳輸正確,否則表示傳輸出錯(cuò)。

本題中,如果接收信息

/G(x),

余數(shù)為0,則收到的數(shù)據(jù)正確,否則出錯(cuò)。

因?yàn)?/p>

G(x)

=

x

4

+

x

3

+1,其對(duì)應(yīng)的位串為11001,所以10110011010/11001的模2除法的推演過程如下:

10110011010/11001的模2除的余數(shù)

R

=0,因此,接收數(shù)據(jù)正確。

(2)循環(huán)冗余碼的檢錯(cuò)能力

CRC碼的檢錯(cuò)能力隨著生成多項(xiàng)式

G

(

x

)的不同而不同。在CRC碼中如果使用

r

位校驗(yàn)碼,生成多項(xiàng)式

G

(

x

)的次數(shù)應(yīng)為

r

,且生成多項(xiàng)式

G

(

x

)必須包含常數(shù)項(xiàng)“1”,否則校驗(yàn)碼的最低有效位(Least Significant Bit,LSB)將始終為0。如何選擇一個(gè)好的生成多項(xiàng)式需要一定的數(shù)學(xué)理論,這里只進(jìn)行簡要分析。

1)發(fā)送方發(fā)送的CRC碼多項(xiàng)式可以寫成

C

(

x

)=

M

(

x

G

(

x

)=

x

n-k

·

M

(

x

)+

R

(

x

)

式中,

n

為CRC碼的總位數(shù);

M

(

x

)為信息碼多項(xiàng)式;

G

(

x

)為生成多項(xiàng)式;

R

(

x

)為余數(shù)多項(xiàng)式。

2)如果發(fā)送的

C

(

x

)在傳輸過程中產(chǎn)生了差錯(cuò),使接收方收到的消息變成了

C′

(

x

),即產(chǎn)生了差錯(cuò)。則接收方收到的消息可以表示為

C′

(

x

)=

C

(

x

)+

E

(

x

)

式中,

E

(

x

)為差錯(cuò)多項(xiàng)式。

3)接收方用

C′

(

x

)除以

G

(

x

),則可得

C′

(

x

)

/G

(

x

)=[

C

(

x

)+

E

(

x

)]

/G

(

x

)

C

(

x

)=

M

(

x

G

(

x

)代入得

C′

(

x

)

/G

(

x

)=[

M

(

x

G

(

x

)]

/G

(

x

)+

E

(

x

)

/G

(

x

)

因此,當(dāng)接收到的碼字無差錯(cuò),即

E

(

x

)=0時(shí),

C′

(

x

)將被

G

(

x

)整除。當(dāng)接收到的碼字出現(xiàn)差錯(cuò),而差錯(cuò)的數(shù)目在碼的檢錯(cuò)范圍內(nèi)時(shí),將有

E

(

x

)

/G

(

x

)=

Q

e

(

x

)+

R

e

(

x

)

/G

(

x

)

式中,

Q

e

(

x

)是

E

(

x

)被

G

(

x

)所除而得的商;

R

e

(

x

)為其余數(shù)。這時(shí)

C′

(

x

)

/G

(

x

)=

Q′

(

x

)+

Q

e

(

x

)+

R

e

(

x

)

/G

(

x

)=

Q

(

x

)+

R

e

(

x

)

/G

(

x

)

式中,

Q′

(

x

)是

C′

(

x

)被

G

(

x

)所除而得的商。

因此,接收方可以根據(jù)余數(shù)

R

e

(

x

)是否為零來判斷接收碼字是否有錯(cuò)。

當(dāng)然,接收到的有差錯(cuò)碼字也有可能被

G

(

x

)整除,此時(shí)的差錯(cuò)碼字就無法檢出,這種錯(cuò)誤稱為不可檢錯(cuò)誤。不可檢錯(cuò)誤中的錯(cuò)碼數(shù)必定超過了這種編碼的檢錯(cuò)能力。

如果生成多項(xiàng)式

G

(

x

)選擇得當(dāng),CRC是一種很有效的差錯(cuò)校驗(yàn)方法。理論上可以證明

G

(

x

)選擇得當(dāng)?shù)腃RC碼的檢錯(cuò)能力具有以下特點(diǎn)。

1)能檢出全部1位錯(cuò)(單錯(cuò)),即

E

(

x

)中只有一個(gè)“1”。假設(shè)信息位序列中某一位有錯(cuò),由于

G

(

x

)的

x

0

項(xiàng)為1,因此,

E

(

x

)除以

G

(

x

)的余數(shù)

R

e

(

x

)必定不為0。

2)能檢出全部離散的2位錯(cuò)(雙錯(cuò)),即

E

(

x

)中有離散的兩個(gè)“1”。假設(shè)信息位序列中有第

i

位和第

j

位錯(cuò),且有

i

<

j

,那么,只要選取的

G

(

x

)是不能整除二項(xiàng)式(

x

j-i

+1)的多項(xiàng)式,且其階(

n-k

)>(

j-i

),就可以檢出全部的雙錯(cuò)。

3)能檢出奇數(shù)個(gè)錯(cuò),即

E

(

x

)中有1、3、5、…個(gè)“1”。因?yàn)槠鏀?shù)項(xiàng)錯(cuò)誤多項(xiàng)式必不含因子(

x

+1),所以只要選取的

G

(

x

)含有(

x

+1)因子,即可檢出全部奇數(shù)個(gè)錯(cuò)。

4)能檢出全部長度小于等于(

n-k

)的突發(fā)錯(cuò)。

5)能以相當(dāng)大的概率檢出長度大于

r

(校驗(yàn)位長度)的連續(xù)的突發(fā)錯(cuò)。

例如,采用CRC-16的CRC碼可以檢出全部1位錯(cuò)、2位錯(cuò)、奇數(shù)個(gè)錯(cuò);全部16位或16位以下突發(fā)錯(cuò);99.997%的17位突發(fā)錯(cuò)以及99.998%的18位或更長的突發(fā)錯(cuò)。

CRC除了能檢查出離散錯(cuò)外,還能檢查出位數(shù)相當(dāng)長的突發(fā)錯(cuò)。

3.海明碼

在數(shù)據(jù)通信過程中,解決差錯(cuò)問題的另一種方法就是在每個(gè)待發(fā)送的數(shù)據(jù)塊上附加足夠的冗余信息,如果出錯(cuò),使接收方能夠推導(dǎo)出發(fā)送方實(shí)際送出的應(yīng)該是什么樣的比特串。

海明碼是一種可以糾正一位差錯(cuò)的編碼。對(duì)于

m

位數(shù)據(jù)位(信息位),若增加

r

位冗余位(校驗(yàn)位),則組成總長度為

n

位(

n

=

m

+

r

)的編碼,稱為

n

位碼字。為了能糾正單比特錯(cuò),

m

r

之間應(yīng)該滿足一定的關(guān)系。對(duì)于

m

位數(shù)據(jù)位,其有效碼字有2

m

個(gè),對(duì)于每一個(gè)有效碼字,均附加一個(gè)固定的

r

位的冗余位,形成一個(gè)特定的

n

(

n

=

m

+

r

)位碼字。當(dāng)且僅當(dāng)其中一位改變時(shí),都可以形成

n

個(gè)無效但可以糾錯(cuò)的碼字(知道出錯(cuò)的位置),即有

n

+1個(gè)可識(shí)別的碼字(1個(gè)有效碼字,

n

個(gè)無效但可識(shí)別的碼字)。

對(duì)于

m

位數(shù)據(jù)位產(chǎn)生的2

m

個(gè)有效碼字,共有2

m

(

n

+1)個(gè)可識(shí)別的碼字,2

n

個(gè)可識(shí)別及不可識(shí)別(出錯(cuò)的)的碼字,因此有2

m

(

n

+1)≤2

n

,將

n

=

m

+

r

代入,得

m

+

r

+1≤2

r

為了糾正單比特錯(cuò),

m

r

應(yīng)該滿足上述關(guān)系式。

海明碼的編碼方法是將碼字內(nèi)的各位從最右邊開始按順序依次編號(hào),第1位為1,第2位為2,…,第

n

位為

n

,其中編號(hào)為2

i

的位(1,2,4,8,…)為海明碼的校驗(yàn)位,即海明碼校驗(yàn)位不是附加在數(shù)據(jù)位的頭或尾,而是分散在數(shù)據(jù)位中,分別占用2

i

位置。其余位順序填入

m

位數(shù)據(jù)。每個(gè)校驗(yàn)位的取值應(yīng)使得包括自身在內(nèi)的一些位的集合服從規(guī)定的奇偶性,因此,海明碼利用的原理仍是奇偶檢驗(yàn)原理。下面舉例說明海明碼的形成方法。

例如,設(shè)信息位

m

=7,則由

m

+

r

+1≤2

r

,得

r

=4,所以海明碼長

n

=11位,設(shè)海明碼字為x11x10x9x8x7x6x5x4x3x2x1,其中x1、x2、x4和x8為海明校驗(yàn)碼,計(jì)算海明碼的校驗(yàn)位方法可以采用如圖4-10所示的形式,海明碼校驗(yàn)位編碼(校驗(yàn)表達(dá)式)計(jì)算表達(dá)式如下。

x1=x3+x5+x7+x9+x11

x2=x3+x6+x7+x10+x11

x4=x5+x6+x7

x8=x9+x10+x11

接收方驗(yàn)證收到的信息是否正確,采用的方法是重新計(jì)算海明碼校驗(yàn)位

xi

′,但采用海明碼監(jiān)督表達(dá)式進(jìn)行計(jì)算,海明碼監(jiān)督表達(dá)式如下。

圖4-10 海明碼校驗(yàn)碼形成示意圖

x1′=x1+x3+x5+x7+x9+x11

x2′=x2+x3+x6+x7+x10+x11

x4′=x4+x5+x6+x7

x8′=x8+x9+x10+x11

xi′

=0(

i

=1,2,4,8,…),則表示該信息傳輸正確,

xi

′中任何一位不為0,則表示該信息傳輸出錯(cuò),出錯(cuò)位為

xi′

值,如

xi′

=110,則表示出錯(cuò)位是x6。如果信息位出錯(cuò)則需糾正,校驗(yàn)位出錯(cuò)則不需糾正。

海明碼編碼方法不唯一,編號(hào)1既可從左也可從右開始,但解碼與編碼需一一對(duì)應(yīng)。

【例4-3】假定傳送信息位

M

為1010110,求它的海明碼

【解】

已知信息位

M

的位數(shù)

m

=7,設(shè)冗余位為

r

位,根據(jù)公式

m

+

r

+1≤2

r

計(jì)算得

:r

=4

海明碼:

計(jì)算海明碼校驗(yàn)位:

x1=x3+x5+x7+x9+x11=0+1+0+1+1=1

x2=x3+x6+x7+x10+x11=0+1+0+0+1=0

x4=x5+x6+x7=1+1+0=0

x8=x9+x10+x11=1+0+1=0

所以,計(jì)算得到海明碼為:101

00110001?

【例4-4】假定傳送信息位

M

為8位,接收方收到的信息為101110100110,試判斷該傳輸是否出錯(cuò)?如果出錯(cuò)是否需要糾正?并求出發(fā)送方發(fā)送的原始信息

【解】

已知信息位

M

的位數(shù)

m

=8,設(shè)冗余位為

r

位,根據(jù)公式

m

+

r

+1≤2

r

計(jì)算得

:r

=4

接收方收到的信息為1 0 1 1 1 0 1 0 0 1 1 0

x12 x11 x10 x9 x8 x7 x6 x5 x4 x3 x2 x1

判斷接收方收到的信息是否正確,需要根據(jù)海明碼監(jiān)督表達(dá)式計(jì)算

xi

′,若

xi′

=0

(i

=1,2,4,8

,…),

則表示該信息傳輸正確,否則出錯(cuò)。

海明碼監(jiān)督表達(dá)式計(jì)算如下:

x1′=x1+x3+x5+x7+x9+x11=0+1+0+0+1+0=0

x2′=x2+x3+x6+x7+x10+x11=1+1+1+0+1+0=0

x4′=x4+x5+x6+x7+x12=0+0+1+0+1=1

x8′=x8+x9+x10+x11+x12=1+1+1+0+1=0

因?yàn)榈玫降挠?jì)算結(jié)果x8′ x4′ x2′ x1′為:0100,不為0,因此,該傳輸存在錯(cuò)誤。監(jiān)督碼值為0100,即為4,則出錯(cuò)位為x4,而x4是校驗(yàn)位,因此,不需糾錯(cuò)。

因此,發(fā)送方發(fā)送的原始信息是10111010

1

110。

海明碼屬于分組碼,分組碼是一組固定長度的碼組,一般用符號(hào)(

n

k

)表示,其中

n

是碼組的總位數(shù),又稱為碼組的長度(碼長),

k

是碼組中信息碼元的數(shù)目,

r

=

n-k

為碼組中的監(jiān)督碼元數(shù)目。通常用于前向糾錯(cuò)。

在采用糾錯(cuò)碼或檢錯(cuò)碼的編碼方案中,基本的數(shù)據(jù)處理單元通常稱為碼字,由數(shù)據(jù)比特和冗余比特構(gòu)成。兩個(gè)碼字之間對(duì)應(yīng)比特取值不同的比特個(gè)數(shù)稱為這兩個(gè)碼字的海明距離。例如,10101和00110從第一位開始依次有第1位、第4位、第5位不同,則海明距離為3。海明距離表明:假設(shè)兩個(gè)碼字的海明距離為

d

,則需要

d

個(gè)比特差錯(cuò)才能將其中一個(gè)碼字轉(zhuǎn)換成另一個(gè)碼字。

在一個(gè)有效編碼集中,任意兩個(gè)碼字的海明距離的最小值(

d

min

)稱為該編碼集的海明距離。一種編碼的檢錯(cuò)能力和糾錯(cuò)能力取決于它的海明距離。為了檢測(cè)

d

個(gè)比特錯(cuò),需要使用海明距離為

d

+1的編碼方案,因?yàn)樵谶@種編碼方案中,

d

個(gè)單比特錯(cuò)不可能將一個(gè)有效碼字改編成另一個(gè)有效碼字。當(dāng)接收方接收到一個(gè)無效碼字時(shí),就知道已經(jīng)發(fā)生了傳輸錯(cuò)誤。同樣,為了糾正

d

個(gè)比特錯(cuò),需要使用海明距離為2

d

+1的編碼方案,因?yàn)樵谶@種編碼方案中,合法碼字之間的距離足夠遠(yuǎn),即使發(fā)生了

d

個(gè)比特錯(cuò),仍然更接近于原始碼字而不是其他碼字,從而可以唯一確定原來的碼字以達(dá)到糾錯(cuò)的目的。

d

min

與分組碼的糾、檢錯(cuò)能力存在以下關(guān)系。

● 當(dāng)

d

min

e

+1時(shí),可檢出

e

個(gè)錯(cuò)誤。

● 當(dāng)

d

min

≥2

t

+1時(shí),具有糾正

t

個(gè)錯(cuò)誤的能力。

● 當(dāng)

d

min

t

+

e

+1

(e

>

t)

時(shí),具有同時(shí)檢出

e

個(gè)錯(cuò)誤、糾正

t

個(gè)錯(cuò)誤的能力。

63Oq6IAujjHZoZ65HNTBWPuMsQzkYnMUW9x6jkOv5M6keRxLt5xvskwAGRBkXYpj

總結(jié)

以上是生活随笔為你收集整理的crc可以检出奇数个错误_计算机网络最新章节_陈虹著_掌阅小说网的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。