3.3存储器校验

存储器校验

存储过程中可能出现差错,所以要进行存储校验。

编码最小距离

\(L-1=D+C\hspace{0.5cm}D\geq C\)

可通过Hamming code纠错

Hamming code

检测位数的确定

设欲检测的二进制代码为 n 位,为了使其具有纠错能力,需要增加 k 位检测位,组成 n+k 位的代码。检测位数 k 应满足条件 \(2^k >= n+k+1\)。根据这个关系可以确定不同代码长度 n 所需的检测位数 k,例如对于 n=4 的二进制代码,k 至少为 3。

image-20240728103937184

检测位的位置和取值

检测位 \(C_1,C_2,C_3,……,C^k\),依次放置在1,2,4,……,\(2^{k-1}\)

汉明码的检测和纠错过程

当接收到汉明码后,会根据每个检测位(例如 \(C_1, C_2, C_4\))来计算新的检测位的值。如果新的检测位的值与接收到的检测位的值不符,则表示出现了错误。错误的具体位置可以通过新的检测位的值(\(P_4,P_2,P_1\))来确定,因为这个值正好对应于错误的位置。

Ex1.

汉明码编写:0101配偶原则配置hanmming code

4位数据需要3位纠错码

二进制序号 1 2 3 4 5 6 7
名称 \(C_1\) \(C_2\) 0 \(C_3\) 1 0 1
\(C_1\) 0 0 1 1
\(C_2\) 1 0 0 1
\(C_3\) 0 1 0 1
Code 0 1 0 0 1 0 1

Ex2.

0100111 配偶原则 纠错

\(\because\begin{cases} n+k=7\\ 2^k\geq n+k+1 \end{cases}\)

\(\therefore\begin{cases}n=4\\k=3\end{cases}\)

1 2 3 4 5 6 7
code 0 1 0 0 1 1 1
\(P_1\) 0 0 1 1
\(P_2\) 1 0 1 1
\(P_4\) 0 1 1 1

\(P_1=\)1\(⊕3⊕5⊕7=0\)

\(P_2=\)2\(\oplus3\oplus6\oplus7=1\)

\(P_4=\)4\(⊕5⊕6⊕7=1\)

110=6

code:0100101

1101

posted @ 2024-07-28 11:36  Peek  阅读(46)  评论(0)    收藏  举报