大二上,計組原理筆記(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位了。
·
·
·
·
·
·
相關文章
- 行式填報 資料校驗 --- 小計校驗
- 大二上 資料結構與演算法筆記 20241024資料結構演算法筆記
- 王道計算機組成原理筆記計算機筆記
- 資料校驗
- MySQL手動資料校驗+雲資料庫資料校驗MySql資料庫
- CRC校驗原理
- [資料校驗/資料質量] 資料校驗框架(Java):hibernate-validation框架Java
- easypoi資料校驗
- 計算機組成原理學習 筆記一計算機筆記
- 分組校驗
- CDH5大資料實驗平臺搭建筆記H5大資料筆記
- 大資料筆記01--大資料概述大資料筆記
- 大資料實驗記錄大資料
- Binding(四):資料校驗
- ORACLE資料校驗文件Oracle
- 工作學習筆記(八)去重校驗筆記
- 大資料開發筆記大資料筆記
- 計算機組成原理與介面技術筆記(一)計算機筆記
- springMVC:校驗框架:多規則校驗,巢狀校驗,分組校驗;ssm整合技術SpringMVC框架巢狀SSM
- [Python]_[初級]_[校驗查詢sqlite3資料庫]PythonSQLite資料庫
- 【PB案例學習筆記】-03使用者名稱密碼校驗筆記密碼
- [2019大資料影片教程]小白3天速成排程框架oozie(原始碼+影片+筆記)大資料框架原始碼筆記
- struts2資料校驗
- JSR303 資料校驗JS
- Hibernate資料校驗簡介
- SpringBoot分組校驗及自定義校驗註解Spring Boot
- 前端資料校驗後,後端介面是否需要再次校驗?前端後端
- 《資料庫系統原理》課程筆記資料庫筆記
- 筆記:大話資料結構筆記資料結構
- 工業大資料筆記2020大資料筆記
- 大資料3.2 -- 實時筆記大資料筆記
- 資料庫系統原理及應用教程複習筆記(第3 版)資料庫筆記
- 資料校驗---記一次讀取json配置資料,資料去重,去空JSON
- 踩坑筆記【1】關於spring requestbody校驗使用@Valid無法校驗list等collections筆記Spring
- EntityFramework Core筆記:查詢資料(3)Framework筆記
- '林子雨大資料' 實驗3 HBase操作與介面程式設計大資料程式設計
- 校驗碼&糾錯碼
- 大資料之 Hadoop學習筆記大資料Hadoop筆記