工作日记_250813

  1. 格雷码生成原理:
    格雷码(Gray Code)的生成原理,其核心目标是让相邻两个码字之间仅有 1 位不同(最小汉明距离为 1),这样在符号切换时即使发生一次位判决错误,也只会导致相邻符号的误差,从而减少误码对系统的影响。

数学推导原理
假设我们有一个自然二进制码 \(b_{n-1}b_{n-2}...b_0\)(z最高位到最低位),对应的十进制索引为\(k\)
格雷码的生成公式:
\( G(k) = k \oplus \left \lfloor \frac{k}{2} \right \rfloor \)
其中,

  • \(\oplus\) 表示异或运算符(bitwise XOR
  • \(\left \lfloor \frac{k}{2} \right \rfloor\)相当于二进制右移一位,即除以 2 取整。
  • 数学含义:格雷码的最高位等于二进制的最高位,其余每一位等于二进制相邻两位的异或

例子:3位格雷码生成过程

k(十进制) 二进制(b2b1b0) k>>1(右移一位) 格雷码)
0 000 000 000
1 001 000 001
2 010 001 011
3 011 001 010
4 100 010 110
5 101 010 111
6 110 011 101
7 111 011 100

可以看到,相邻行的格雷码只有一位不同。

pam_order = 8; % 3-bit Gray code
index = 0:pam_order-1;
gray_code = bitxor(index, floor(index/2)); % 数字形式
gray_bin  = dec2bin(gray_code);            % 字符串形式
disp(gray_bin);
posted @ 2025-08-18 16:12  茶山刘  阅读(24)  评论(0)    收藏  举报