大二上,計組原理筆記(3)2.6資料校驗碼
前言:
我的個人聽課記錄,畢竟是初學,錯誤在所難免,我知道了錯誤會改正更新,歡迎指導也歡迎一起討論學習。
2.6 資料校驗碼
{n,r}即{k+r,r}
2.6.1 奇偶校驗碼(k+1,k)
1.簡單奇偶校驗
只能檢錯,不能糾錯。且只能檢錯奇位錯誤,不能確定出錯的位置。
2.交叉奇偶校驗
可檢錯也可糾錯了。
例:偶校驗
0101 ——> 0
1111 ——> 1
|||| |
1011 ——> 1
可以判斷第二行第四列出錯,所以資訊應該是:01011110,於是計算機可以進行糾錯。
2.6.2海明碼(漢明碼)
有兩種形式:(6,3)(7,4)
可設密碼
M=D
×
\times
× G中,D是資訊碼,G是生成矩陣。(生成矩陣可以自己設定,由此決定這可以來設密碼)
G={ Ik,P }
H={ PT, Im}, H 是校驗矩陣,
校驗子:S=B
×
\times
× HT
例題:(6,3)
|1 1 0 1 0 1|
生成矩陣為:G= |0 1 0 0 1 1|
|0 0 1 1 0 1|
(1)將101進行編碼,
(101)* G=111000 (異或運算)
3位的資訊碼一共有八種,各自 * G得到對應的海明碼編碼。
(2)已知生成的編碼為 A= 110101,求它的資訊碼 m 。
設 m =(m2,m1,m0)
則 m * G = ( m2,m^m1,m0,m2^m0,m1,m2^m1^m0 )(^為異或)
若 m 用 a5a4a3a2a1a0 表示,
則m2=a5=1,m1=a2=0,m0=a3=0,所以 m=100
(3)得到的編碼 B= 100101,對其檢糾錯並譯碼。
第一步:保證G中Ik為“單位矩陣”,即只有主對角線是1.所以需要將G進行r1^r2(異或)運算得到
|1 0 0 1 1 0|
G= |0 1 0 0 1 1|
|0 0 1 1 0 1|
第二步:求H的轉置行列式 HT
|110|
|011|
HT(H的轉置)= |101|
|100|
|010|
|011|
第三步:求校驗子
S=B*HT=011
第四步:找出正確編碼。
由糾錯表可知011代表a3出錯,(記住111代表不止一位出錯,無法糾錯。)
於是我們知道正確的編碼是 A= 101101
(由(2)得)則m2=a5=1,m1=a2=0,m0=a3=1,所以 m=101
ps:(2)中編碼為A,(3)中編碼為B,是有區別的。
一般用A表示代表沒有錯,不用檢糾錯;B表示不確定,就需要檢糾錯。
(6,3)檢糾錯能力:檢錯兩位,糾錯1位。
2.6.3迴圈冗餘校驗碼(CRC)
不能設密碼了。
例題:(7,4)
(1)選擇生成多項式為1011,把4位有效資訊1100編成CRC碼。
準備一:
表示生成多項式:1011=X3+X1+X0=X3+X+1
準備二:
表示資訊碼:1100=X3+X2
準備三:
確定2n-k : X7-4 = X3
計算:
求校驗碼:
r(x)=(X3+X2) X3mod (X3+X+1)=x,
x代表10,要三位,則補0,即010
出結果:1100 010
(2)若收到 B=1101010,是否出錯?
準備一:
表示生成多項式:1011=X3+X+1
準備二:
表示B= X6+X5+X3+X
計算:
( X6+X5+X3+X )mod ( X3+X+1 )
= x+1
x+1代表11,空位補0,即011
結果:011不是0,出錯了。
例:求“A”,用CRC(7,4)表示。
A的ASCII碼是41,即
01000001,分成四位有兩份。
0100用CRC表示有7位,
0001用CRC表示有7位,
但計算機中儲存兩個位元組,16位,於是補0.
0 ( 0100CRC)7位 | 0 (0001CRC)7位
一共就有16位了。
·
·
·
·
·
·
相關文章
- Symfony2學習筆記之資料校驗筆記
- 行式填報 資料校驗 --- 小計校驗
- 王道計算機組成原理筆記計算機筆記
- 資料校驗
- MySQL手動資料校驗+雲資料庫資料校驗MySql資料庫
- 分組校驗
- CRC校驗原理
- 計算機組成原理學習 筆記一計算機筆記
- easypoi資料校驗
- CRC的校驗原理
- CDH5大資料實驗平臺搭建筆記H5大資料筆記
- 大資料筆記01--大資料概述大資料筆記
- [資料校驗/資料質量] 資料校驗框架(Java):hibernate-validation框架Java
- ORACLE資料校驗文件Oracle
- 大資料實驗記錄大資料
- springMVC:校驗框架:多規則校驗,巢狀校驗,分組校驗;ssm整合技術SpringMVC框架巢狀SSM
- 工作學習筆記(八)去重校驗筆記
- Struts資料驗證筆記 (轉)筆記
- 計算機組成原理與介面技術筆記(一)計算機筆記
- 大資料開發筆記大資料筆記
- 大資料個人筆記(一)大資料筆記
- 資料庫原理學習筆記——引言資料庫筆記
- 大二上 資料結構與演算法筆記 20241024資料結構演算法筆記
- Binding(四):資料校驗
- struts2資料校驗
- 使用 voluptuous 校驗資料
- DW中的資料校驗
- 前端資料校驗後,後端介面是否需要再次校驗?前端後端
- 【PB案例學習筆記】-03使用者名稱密碼校驗筆記密碼
- SpringBoot分組校驗及自定義校驗註解Spring Boot
- 筆記:大話資料結構筆記資料結構
- 大資料學習筆記(四)大資料筆記
- 大資料學習筆記(五)大資料筆記
- 大資料學習筆記(六)大資料筆記
- 大資料3.2 -- 實時筆記大資料筆記
- [Python]_[初級]_[校驗查詢sqlite3資料庫]PythonSQLite資料庫
- WINZIP的密碼校對原理 (3千字)密碼
- 《資料庫系統原理》課程筆記資料庫筆記