新聞中心

CRC的譯碼與糾錯(cuò)

作者: 時(shí)間:2011-07-03 來(lái)源:網(wǎng)絡(luò) 收藏
CRC的譯碼與糾錯(cuò)

  將收到的循環(huán)校驗(yàn)碼用約定的生成多項(xiàng)式G(x)去除,如果碼字無(wú)誤則余數(shù)應(yīng)為0,如有某一位出錯(cuò),則余數(shù)不為0,且不同數(shù)位出錯(cuò)余數(shù)會(huì)不同。我們通過(guò)上例求出其出錯(cuò)模式,如表2-4所示。更換不同的待測(cè)碼字可以證明:余數(shù)與出錯(cuò)位的對(duì)應(yīng)關(guān)系是不變的,只與碼制和生成多項(xiàng)式有關(guān)。因此表2.4給出的關(guān)系可作為系統(tǒng)線性(7,4)分組碼的出錯(cuò)判別依據(jù)。對(duì)于其他碼制或選用其他生成多項(xiàng)式,出錯(cuò)模式將發(fā)生變化。

表2.4 (7,4)循環(huán)碼的出錯(cuò)模式 ( 生成多項(xiàng)式G(x)=1011 )

A1 A2 A3 A4 A5 A6 A7
余數(shù)
出錯(cuò)位
正確
錯(cuò)誤
1   1  0  0  0  0  0
1   1  0  0  1  1  0
1   1  0  1  0  1  0
1   1  1  0  0  1  0
1   0  0  0  0  1  0
0   1  0  0  0  1  0
0 1 0
1 0 0
0 1 1
1 1 0
1 1 1
1 0 1
6
5
4
3
2
1

  如果循環(huán)碼有一位出錯(cuò),用G(x)作模2除將得到一個(gè)不為0的余數(shù)。如果對(duì)余數(shù)補(bǔ)0繼續(xù)除下去,我們將發(fā)現(xiàn)一個(gè)有趣的結(jié)果:各次余數(shù)將按表2.4中的內(nèi)容順序循環(huán)。例如第七位出錯(cuò),余數(shù)將為001,補(bǔ)0后再除,第二次余數(shù)為010,以后依次為100,011,…,反復(fù)循環(huán)。這是一個(gè)有價(jià)值的特點(diǎn)。如果我們?cè)谇蟪鲇鄶?shù)不為0之后,一邊對(duì)余數(shù)補(bǔ)0繼續(xù)做模2除,同時(shí)讓被檢測(cè)的校驗(yàn)碼字循環(huán)左移。表2.4說(shuō)明,當(dāng)出現(xiàn)余數(shù)(101)時(shí),出錯(cuò)位也移到A1位置。可通過(guò)異或門將它糾正后在下一次移位時(shí)送回A7。繼續(xù)移滿一個(gè)循環(huán)(對(duì)7,4碼共移七次),就得到一個(gè)糾正后的碼字。這樣我們就不必像海明校驗(yàn)?zāi)菢佑米g碼電路對(duì)每一位提供糾正條件。當(dāng)數(shù)據(jù)位數(shù)增多時(shí),循環(huán)碼校驗(yàn)?zāi)苡行У亟档陀布鷥r(jià),這是它得以廣泛應(yīng)用的主要原因。

  關(guān)于生成多項(xiàng)式,并不是任何一個(gè)r次的多項(xiàng)式都可以作為生成多項(xiàng)式。從檢錯(cuò)及糾錯(cuò)的要求出發(fā),生成多項(xiàng)式應(yīng)能滿足下列要求:
  (1) 任何一位發(fā)生錯(cuò)誤應(yīng)當(dāng)使余數(shù)不為0;
  (2) 不同位發(fā)生錯(cuò)誤應(yīng)當(dāng)使余數(shù)不同;
  (3) 對(duì)余數(shù)繼續(xù)作模2除,應(yīng)使余數(shù)循環(huán)。

  將這些要求反映為數(shù)學(xué)關(guān)系是比較復(fù)雜的,對(duì)一個(gè)(n,k)碼來(lái)說(shuō),可將(xn -1)分解為若干質(zhì)因子式(注意是模2運(yùn)算),根據(jù)編碼所要求的碼距,選取合適的r值,選其中的一個(gè)因式或若干因式的乘積作為生成多項(xiàng)式,為r次多項(xiàng)式,且最高、最低位系數(shù)均為1。

  例: x7-1=( x+1)(x3+x+1)(x3+x2+1) (模2運(yùn)算)
  選擇 G(x)= x+1 = 11,可構(gòu)成(7,6)碼,只能判一位錯(cuò)。
  選擇 G(x)= x3+x+1=1011,或 x3+x2+1=1101,可構(gòu)成(7,4)碼,能判兩位錯(cuò)或糾一位錯(cuò)。
  選擇 G(x)=(x+1)(x3+x+1)=11101,可構(gòu)成(7,3)碼,能判兩位錯(cuò)并同時(shí)糾正一位錯(cuò)。

  對(duì)使用者來(lái)說(shuō),可從有關(guān)資料上查到對(duì)應(yīng)于不同碼制的生成多項(xiàng)式,表2.5僅給出了一部分。

表2.5 生成多項(xiàng)式

N
K
碼距d
G(x)多項(xiàng)式
G(x)二進(jìn)制碼
3+x+1)或 (x3+x2+1)G(x)=G1(x)(x+1)=(x3+x+1)(x+1)或 (x3+x2+1)(x+1)
1101
4+x+1)(x4+x+1)(x4+x3+x2+x+1)
10111
7
5
5+x2+1)(x5+x2+1)(x5+x4+x3+x2+1)
111010001
  26
  21
5
4+x+1)(x4+x+1)(x6+x4+x+1)
11101101001
51
5
16+x15+x2+1)
1010000110101


評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉