国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
校驗(yàn)碼
 

http://blog.csdn.net/wongson/article/details/3600225

2008

海明碼是一種多重(復(fù)式)奇偶檢錯(cuò)系統(tǒng)。它將信息用邏輯形式編碼,以便能夠檢錯(cuò)和糾錯(cuò)。用在海明碼中的全部傳輸碼字是由原來的信息和附加的奇偶校驗(yàn)位組成的。每一個(gè)這種奇偶位被編在傳輸碼字的特定位置上。實(shí)現(xiàn)得合適時(shí),這個(gè)系統(tǒng)對(duì)于錯(cuò)誤的數(shù)位無論是原有信息位中的,還是附加校驗(yàn)位中的都能把它分離出來。 

推導(dǎo)并使用長度為m位的碼字的海明碼,所需步驟如下: 

1、確定最小的校驗(yàn)位數(shù)k,將它們記成D1、D2、…、Dk,每個(gè)校驗(yàn)位符合不同的奇偶測(cè)試規(guī)定。 

2、原有信息和k個(gè)校驗(yàn)位一起編成長為m+k位的新碼字。選擇k校驗(yàn)位(0或1)以滿足必要的奇偶條件。 

3、對(duì)所接收的信息作所需的k個(gè)奇偶檢查。 

4、如果所有的奇偶檢查結(jié)果均為正確的,則認(rèn)為信息無錯(cuò)誤。 

如果發(fā)現(xiàn)有一個(gè)或多個(gè)錯(cuò)了,則錯(cuò)誤的位由這些檢查的結(jié)果來唯一地確定。 

校驗(yàn)位數(shù)的位數(shù) 

推求海明碼時(shí)的一項(xiàng)基本考慮是確定所需最少的校驗(yàn)位數(shù)k??紤]長度為m位的信息,若附加了k個(gè)校驗(yàn)位,則所發(fā)送的總長度為m+k。在接收器中要進(jìn)行k個(gè)奇偶檢查,每個(gè)檢查結(jié)果或是真或是偽。這個(gè)奇偶檢查的結(jié)果可以表示成一個(gè)k位的二進(jìn)字,它可以確定最多2k種不同狀態(tài)。 這些狀態(tài)中必有一個(gè)其所有奇偶測(cè)試試都是真的,它便是判定信息正確的條件。于是剩下的(2k-1)種狀態(tài),可以用來判定誤碼的位置。于是導(dǎo)出下一關(guān)系: 

2k-1≥m+k 

碼字格式 

從理論上講,校驗(yàn)位可放在任何位置,但習(xí)慣上校驗(yàn)位被安排在1、2、4、8、…的位置上。 

圖5列出了m=4,k=3時(shí),信息位和校驗(yàn)位的分布情況。 

碼字位置B1B2B3B4B5B6B7
校驗(yàn)位xx x   
信息位  x xxx
復(fù)合碼字P1P2D1P3D2D3D4

圖5 海明碼中校驗(yàn)位和信息位的定位 

循環(huán)冗余校驗(yàn)碼(Cyclic Redundancy Check CRC)是常用的校驗(yàn)碼,在早期的通信中運(yùn)用廣泛,因?yàn)樵缙诘耐ㄐ偶夹g(shù)不夠可靠(不可靠性的來源是通信技術(shù)決定的,比如電磁波通信時(shí)受雷電等因素的影響),不可靠的通信就會(huì)帶來‘確認(rèn)信息’的困惑,書上提到紅軍和藍(lán)軍通信聯(lián)合進(jìn)攻山下的敵軍的例子,第一天紅軍發(fā)了條信息要藍(lán)軍第二天一起進(jìn)攻,藍(lán)軍收到之后,發(fā)一條確認(rèn)信息,但是藍(lán)軍擔(dān)心的是‘確認(rèn)信息’如果也不可靠而沒有成功到達(dá)紅軍那里,那自己不是很危險(xiǎn)?于是紅軍再發(fā)一條‘對(duì)確認(rèn)的確認(rèn)信息’,但同樣的問題還是不能解決,紅軍仍然不敢冒然行動(dòng)。

對(duì)通信的可靠性檢查就需要‘校驗(yàn)’,校驗(yàn)是從數(shù)據(jù)本身進(jìn)行檢查,它依靠某種數(shù)學(xué)上約定的形式進(jìn)行檢查,校驗(yàn)的結(jié)果是可靠或不可靠,如果可靠就對(duì)數(shù)據(jù)進(jìn)行處理,如果不可靠,就丟棄重發(fā)或者進(jìn)行修復(fù)。

CRC碼是由兩部分組成,前部分是信息碼,就是需要校驗(yàn)的信息,后部分是校驗(yàn)碼,如果CRC碼共長n個(gè)bit,信息碼長k個(gè)bit,就稱為(n,k)碼。 它的編碼規(guī)則是:

首先將原信息碼(kbit)左移r位(k+r=n)
運(yùn)用一個(gè)生成多項(xiàng)式g(x)(也可看成二進(jìn)制數(shù))用模2除上面的式子,得到的余數(shù)就是校驗(yàn)碼。
非常簡單,要說明的:模2除就是在除的過程中用模2加,模2加實(shí)際上就是
我們熟悉的異或運(yùn)算,就是加法不考慮進(jìn)位,公式是:

 0+0=1+1=0,1+0=0+1=1
即‘異’則真,‘非異’則假。

由此得到定理:a+b+b=a 也就是‘模2減’和‘模2加’直值表完全相同。

有了加減法就可以用來定義模2除法,于是就可以用生成多項(xiàng)式g(x)生成CRC校驗(yàn)碼。

例如: g(x)=x4+x3+x2+1,(7,3)碼,信息碼110產(chǎn)生的CRC碼就是:

          101
11101 | 110,0000

        111 01
        
        1 0100
        
        1 1101
          
        1001
余數(shù)是1001,所以CRC碼是110,1001

標(biāo)準(zhǔn)的CRC碼是,CRC-CCITT和CRC-16,它們的生成多項(xiàng)式是:

CRC-CCITT=x16+x12+x5+1
CRC-16=x16+x15+x2+1

校驗(yàn)位的確定 

下面為我增加,意在提出編碼方法以助理解(但編碼是否主要標(biāo)準(zhǔn)不可知)

每行的值等于數(shù)值為1的各位碼相異或。

如m=4,k=3.數(shù)據(jù)位前三行,校驗(yàn)位為后三行。即

A=p1⊕D1⊕D3⊕D4=0 得P1=D1⊕D3⊕D4

B=P2⊕D2⊕D3⊕D4=0 得P2=D2⊕D3⊕D4

C=P3⊕D1⊕D2⊕D3⊕D4=0 得P3=D1⊕D2⊕D3⊕D4           以下計(jì)算訪求同下

k個(gè)校驗(yàn)位是通過對(duì)m+k位復(fù)合碼字進(jìn)行奇偶校驗(yàn)而確定的。

其中:P1位負(fù)責(zé)校驗(yàn)海明碼的第1、3、5、7、…(P1、D1、D2、D4、…)位,(包括P1自己)

P2負(fù)責(zé)校驗(yàn)海明碼的第2、3、6、7、…(P2、D1、D3、D4、…)位,(包括P2自己)

P3負(fù)責(zé)校驗(yàn)海明碼的第4、5、6、7、…(P3、D2、D3、D4、…)位,(包括P3自己)

對(duì)m=4,k=3,偶校驗(yàn)的例子,只要進(jìn)行式次偶性測(cè)試。這些測(cè)試(以A、B、C表示)在圖6所示各位的位置上進(jìn)行。

奇偶條件

碼 字 位 置

1234567

A

B

C

x

  

 

 

 

x

 

 

 

x

x

   

x

  

x

x

x

x

x

圖6 奇偶校驗(yàn)位置

因此可得到三個(gè)校驗(yàn)方程及確定校驗(yàn)位的三個(gè)公式:

A=B1⊕B3⊕B5⊕B7=0 得P1=D1⊕D2⊕D4

B=B2⊕B3⊕B6⊕B7=0 得P2=D1⊕D3⊕D4

C=B4⊕B5⊕B6⊕B7=0 得P3=D2⊕D3⊕D4

若四位信息碼為1001,利用這三個(gè)公式可求得三個(gè)校驗(yàn)位P1、P2、P3值。和海明碼, 

上面是發(fā)送方的處理

在接收方,也可根據(jù)這三個(gè)校驗(yàn)方程對(duì)接收到的信息進(jìn)行同樣的奇偶測(cè)試:

A=B1⊕B3⊕B5⊕B7=0;

B=B2⊕B3⊕B6⊕B7=0;

C=B4⊕B5⊕B5⊕B7=0。

若三個(gè)校驗(yàn)方程都成立,即方程式右邊都等于0,則說明沒有錯(cuò)。若不成立即方程式右邊不等于0,說明有錯(cuò)。從三個(gè)方程式右邊的值,可以判斷那一位出錯(cuò)。例如,如果第3位數(shù)字反了,則C=0(此方程沒有B3),A=B=1(這兩個(gè)方程有B3)??蓸?gòu)成二進(jìn)數(shù)CBA,以A為最低有效位,則錯(cuò)誤位置就可簡單地用二進(jìn)數(shù)CBA=011指出。

同樣,若三個(gè)方程式右邊的值為001,說明第1位出錯(cuò)。若三個(gè)方程式右邊的值為100,說明第4位出錯(cuò)。

海明碼的碼距應(yīng)該是3,所以能糾正1位出錯(cuò)。而奇偶校驗(yàn)碼的碼距才是2,只能發(fā)現(xiàn)1位出錯(cuò),但不能糾正(不知道那一位錯(cuò))。無校驗(yàn)的碼距是1,它出任何一位出錯(cuò)后還是合法代碼,所以也就無法發(fā)現(xiàn)出錯(cuò)。 

這是關(guān)于海明碼的經(jīng)典說法,即碼距為3,可以發(fā)現(xiàn)2位,或者糾正1位錯(cuò)。應(yīng)滿足2k-1≥m+k。 

但在清華的王愛英主編的《計(jì)算機(jī)組成與結(jié)構(gòu)》(該書已成為國內(nèi)的權(quán)威)中還提出了一種碼距為4的海明碼,可以發(fā)現(xiàn)2位,并且糾正1位錯(cuò)。應(yīng)滿足2(k-1)≥m+k。 

由于王愛英書上對(duì)這兩種概念沒有很仔細(xì)解釋(特別對(duì)碼距為3的海明碼),過渡很突然。有些書簡單抄襲時(shí)沒有仔細(xì)消化,所以出現(xiàn)一些概念錯(cuò)。對(duì)于一般碼距為3的海明碼,應(yīng)該是“可以發(fā)現(xiàn)2位,或者糾正1位錯(cuò)”,而不是“可以發(fā)現(xiàn)2位,并且糾正1位錯(cuò)”。在試題中出現(xiàn)過類似的錯(cuò)誤。 

若四位信息碼為1001,利用這三個(gè)公式可求得三個(gè)校驗(yàn)位P1、P2、P3值。和海明碼,如圖7則表示了信息碼為1001時(shí)的海明碼編碼的全部情況。而圖8中則列出了全部16種信息(D1D2D3D4=0000~1111)的海明碼。

碼字位置

B1

B2

B3

B4

B5

B6

B7

碼位類型

P1

P2

D1

P3

D2

D3

D4

信息碼

-

-

1

-

0

0

1

校驗(yàn)位

0

0

-

1

-

-

-

編碼后的海明碼

0

0

1

1

0

0

1

圖7 四位信息碼的海明編碼 

P1P2D1P3D2D3D4
0000000
1101001
0101010
1000011
1001100
0100101
1100110
0001111
1110000
0011001
1011010
0110011
0111100
1010101
0010110
1111111

圖8 未編碼信息的海明碼

上面是發(fā)送方的處理

在接收方,也可根據(jù)這三個(gè)校驗(yàn)方程對(duì)接收到的信息進(jìn)行同樣的奇偶測(cè)試:

A=B1⊕B3⊕B5⊕B7=0;

B=B2⊕B3⊕B6⊕B7=0;

C=B4⊕B5⊕B5⊕B7=0。

若三個(gè)校驗(yàn)方程都成立,即方程式右邊都等于0,則說明沒有錯(cuò)。若不成立即方程式右邊不等于0,說明有錯(cuò)。從三個(gè)方程式右邊的值,可以判斷那一位出錯(cuò)。例如,如果第3位數(shù)字反了,則C=0(此方程沒有B3),A=B=1(這兩個(gè)方程有B3)。可構(gòu)成二進(jìn)數(shù)CBA,以A為最低有效位,則錯(cuò)誤位置就可簡單地用二進(jìn)數(shù)CBA=011指出。

同樣,若三個(gè)方程式右邊的值為001,說明第1位出錯(cuò)。若三個(gè)方程式右邊的值為100,說明第4位出錯(cuò)。

海明碼的碼距應(yīng)該是3,所以能糾正1位出錯(cuò)。而奇偶校驗(yàn)碼的碼距才是2,只能發(fā)現(xiàn)1位出錯(cuò),但不能糾正(不知道那一位錯(cuò))。無校驗(yàn)的碼距是1,它出任何一位出錯(cuò)后還是合法代碼,所以也就無法發(fā)現(xiàn)出錯(cuò)。 

這是關(guān)于海明碼的經(jīng)典說法,即碼距為3,可以發(fā)現(xiàn)2位,或者糾正1位錯(cuò)。應(yīng)滿足2k-1≥m+k。 

循環(huán)冗余校驗(yàn)碼(Cyclic Redundancy Check CRC)是常用的校驗(yàn)碼,在早期的通信中運(yùn)用廣泛,因?yàn)樵缙诘耐ㄐ偶夹g(shù)不夠可靠(不可靠性的來源是通信技術(shù)決定的,比如電磁波通信時(shí)受雷電等因素的影響),不可靠的通信就會(huì)帶來‘確認(rèn)信息’的困惑,書上提到紅軍和藍(lán)軍通信聯(lián)合進(jìn)攻山下的敵軍的例子,第一天紅軍發(fā)了條信息要藍(lán)軍第二天一起進(jìn)攻,藍(lán)軍收到之后,發(fā)一條確認(rèn)信息,但是藍(lán)軍擔(dān)心的是‘確認(rèn)信息’如果也不可靠而沒有成功到達(dá)紅軍那里,那自己不是很危險(xiǎn)?于是紅軍再發(fā)一條‘對(duì)確認(rèn)的確認(rèn)信息’,但同樣的問題還是不能解決,紅軍仍然不敢冒然行動(dòng)。

對(duì)通信的可靠性檢查就需要‘校驗(yàn)’,校驗(yàn)是從數(shù)據(jù)本身進(jìn)行檢查,它依靠某種數(shù)學(xué)上約定的形式進(jìn)行檢查,校驗(yàn)的結(jié)果是可靠或不可靠,如果可靠就對(duì)數(shù)據(jù)進(jìn)行處理,如果不可靠,就丟棄重發(fā)或者進(jìn)行修復(fù)。

CRC碼是由兩部分組成,前部分是信息碼,就是需要校驗(yàn)的信息,后部分是校驗(yàn)碼,如果CRC碼共長n個(gè)bit,信息碼長k個(gè)bit,就稱為(n,k)碼。 它的編碼規(guī)則是:

首先將原信息碼(kbit)左移r位(k+r=n)
運(yùn)用一個(gè)生成多項(xiàng)式g(x)(也可看成二進(jìn)制數(shù))用模2除上面的式子,得到的余數(shù)就是校驗(yàn)碼。
非常簡單,要說明的:模2除就是在除的過程中用模2加,模2加實(shí)際上就是
我們熟悉的異或運(yùn)算,就是加法不考慮進(jìn)位,公式是:

 0+0=1+1=0,1+0=0+1=1
即‘異’則真,‘非異’則假。

由此得到定理:a+b+b=a 也就是‘模2減’和‘模2加’直值表完全相同。

有了加減法就可以用來定義模2除法,于是就可以用生成多項(xiàng)式g(x)生成CRC校驗(yàn)碼。

例如: g(x)=x4+x3+x2+1,(7,3)碼,信息碼110產(chǎn)生的CRC碼就是:

          101
11101 | 110,0000

        111 01
        
        1 0100
        
        1 1101
     

奇偶校驗(yàn)碼是奇校驗(yàn)碼和偶校驗(yàn)碼的統(tǒng)稱,是一種最基本的檢錯(cuò)碼。它是由n-1位信息元和1位校驗(yàn)元組成,可以表示成為(n,n-1)。如果是奇校驗(yàn)碼,在附加上一個(gè)校驗(yàn)元以后,碼長為n的碼字中“1”的個(gè)數(shù)為奇數(shù)個(gè);如果是偶校驗(yàn)碼,在附加上一個(gè)校驗(yàn)元以后,碼長為n的碼字中“1”的個(gè)數(shù)為偶數(shù)個(gè)。設(shè):如果一個(gè)偶校驗(yàn)碼的碼字用A=[an-1,an-2,…,a1,a0]表示,則:

式中 為校驗(yàn)元,“+”為模二和(以后也這樣表示,請(qǐng)注意)。式(1)通常被稱為校驗(yàn)方程。利用式(1),由信息元即可求出校驗(yàn)元。另外,如果發(fā)生單個(gè)(或奇數(shù)個(gè))錯(cuò)誤,就會(huì)破壞這個(gè)關(guān)系式,因此通過該式能檢測(cè)碼字中是否發(fā)生了單個(gè)或奇數(shù)個(gè)錯(cuò)誤。

奇偶校驗(yàn)碼是一種有效地檢測(cè)單個(gè)錯(cuò)誤的方法,之所以將注意力集中在檢(或糾)單個(gè)錯(cuò),這主要是因?yàn)榇a字中發(fā)生單個(gè)錯(cuò)誤的概率要比發(fā)生2個(gè)或多個(gè)錯(cuò)誤的概率大得多。例如,n = 5的碼字,如果碼字中各碼元的錯(cuò)誤是互相獨(dú)立,誤碼率為10-4,則錯(cuò)1、2、3、4和5位的概率分別為:5×10-4、10-7、10-11、10-16和10-20。由此可見,要檢(或糾)錯(cuò)誤,首先要解決單個(gè)錯(cuò)誤,這樣才抓住了主要矛盾。一般情況下用上述偶校驗(yàn)碼來檢出單個(gè)錯(cuò)誤,檢錯(cuò)效果是令人滿意的,不僅如此,奇偶校驗(yàn)碼的編碼效率很高,R=(n-1)/n,隨n增大而趨近于1。下面就給出以碼長n=5為例,利用表1列出全部偶校驗(yàn)碼字.

在數(shù)字信息傳輸中,奇偶校驗(yàn)碼的編碼可以用軟件實(shí)現(xiàn),也可用硬件電路實(shí)現(xiàn)。圖8-4(a)就是碼長為5的偶校驗(yàn)碼編碼器。從圖中可以看到,4位碼元長的信息組,串行送入四級(jí)移位寄存器(輸入定時(shí)緩沖器),同時(shí)經(jīng)模二運(yùn)算得到校驗(yàn)元,存入輸出緩沖器末級(jí),編碼完成即可輸出碼字。接收端的檢錯(cuò)電路如圖1(b)所示。當(dāng)一個(gè)接收碼組B完全進(jìn)入五級(jí)移存器內(nèi)時(shí),開關(guān)S立即接通,從而得到檢錯(cuò)信號(hào)M=b4+b3+b2+b1+b0。如果接收碼組B無錯(cuò),B=A,則M=0;如果接收碼組B有單個(gè)(或奇數(shù)個(gè))錯(cuò)誤,則M=1。

      
        1001
余數(shù)是1001,所以CRC碼是110,1001

標(biāo)準(zhǔn)的CRC碼是,CRC-CCITT和CRC-16,它們的生成多項(xiàng)式是:

CRC-CCITT=x16+x12+x5+1
CRC-16=x16+x15+x2+1 

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
第2章數(shù)據(jù)在計(jì)算機(jī)中表示(3)
計(jì)算機(jī)系統(tǒng)基礎(chǔ):校驗(yàn)碼知識(shí)筆記
介紹兩種簡單實(shí)用的信道編碼——CRC校驗(yàn)和漢明碼
糾錯(cuò)碼與魔術(shù)(一)——糾錯(cuò)碼與漢明碼簡介
二、計(jì)算機(jī)數(shù)據(jù)表示&&校驗(yàn)碼(簡單了解)
第七章 信道編碼
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服