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。
检测位的位置和取值
检测位 \(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

浙公网安备 33010602011771号