跳至内容
Ch-1 数字系统与信息

Ch-1 数字系统与信息

1. 数字系统

1.1 信号与表示

信息在物理层面通常由电压、磁场方向或电荷等物理量表示:

  1. 模拟信号 (Analog Signal):取值在时间和数值上都是连续的(Continuous);
  2. 数字信号 (Digital Signal):取值是离散的(Discrete):
    • 异步 (Asynchronous):时间上连续,但取值离散;
    • 同步 (Synchronous):时间和取值均是离散的,受时钟脉冲控制。
signal

阈值区间与正逻辑

在物理电压表示中,HIGHLOW 之间有一段阈值区间 (Threshold Region),落在该区间的电平被称为浮动 (Floating) 或未定义状态。“宽进严出”的设计能提高电路的抗噪能力。通常采用正逻辑 (Positive Logic),即规定 HIGH=1=TrueLOW=0=False

1.2 逻辑电路

逻辑系统 (Logic System) 根据是否具有 系统状态 (State present),分为两类:

  1. 组合逻辑 (Combinational Logic):无系统状态,输出完全取决于当前输入,只需要推导输出与输入间的函数关系即可 Output=Function(Input)
  2. 时序逻辑 (Sequential Logic):存在系统状态,状态的更新分为同步(在离散时间点更新)和异步(任意时间点更新):
    • 次态方程(State Equation)Next State=Function(Current State,Input)
    • 输出方程(Output Function)Output=Function(State,Input(optional))

1.3 计算机系统

  • 数字计算机:处理离散数值的通用系统,包含内存、控制单元、数据通路等。
  • 嵌入式系统:作为其他产品不可或缺一部分的计算机(如微控制器、数字信号处理器)。需要通过模数转换器 (A-to-D)数模转换器 (D-to-A) 与外部模拟信号进行交互。

2. 计数体制

2.1 常见进制

进制 (Radix/Base):用于表示数字的符号集合及进位规则。常用的有二进制 (Binary)、八进制 (Octal)、十进制 (Decimal) 和十六进制 (Hexadecimal)。

数值可以通过多项式展开 (Power Series) 表示:

\[\begin{align}(N)_R=(A_{n-1}A_{n-2}\cdots A_1A_0.A_{-1}A_{-2}\cdots A_{-m+1}A_{-m})_R = \sum_{i=-m}^{n-1} A_i \cdot R^i\end{align}\]

2.2 进制转换

  • 任意进制转十进制:按多项式权值展开相加。
  • 十进制转任意进制
    • 整数部分:除基取余法(Repeated Division),余数逆序排列。
    • 小数部分:乘基取整法(Repeated Multiplication),整数顺序排列。
  • 二的幂次进制与二进制互转:八进制对应3位二进制,十六进制对应4位二进制。需要注意的是小数点后的部分如果位数不满需要补零。

Note

小数部分在进行“乘基取整”时,可能会出现无限循环(如十进制0.65转二进制会无限循环1001),此时必须根据指定的位数进行 截断 (Truncate)舍入 (Rounding)

3. 数据编码

\(n\) 个比特的二进制码可映射 \(2^n\) 个离散元素。表示 \(M\) 个元素的最小比特数 \(n = \lceil \log_2 M \rceil\)。

3.1 独冷码与独热码

独热码 (One-Hot Code):比特串中仅有一位是 1(如 0001, 0010, 0100),改变状态的硬件成本低,容易检测非法状态,但信息表示率低,非法状态非常多但有效状态很少。与之对应的还有 独冷码 (One-Cold Code),即比特串中仅有一位是 0

3.2 BCD码

将十进制数字用二进制组合表示,称为二进制编码的十进制数 (Binary Coded Decimal)

  1. 8421 码:最基础的带权码,四位二进制表示一位十进制位,权值依次为8,4,2,1:
    • 在进行加法操作时,以四位一组的基本单元进行计算;
    • 当两组相加的结果大于等于 10 时需要 +6 修正结果。
  2. 余三码 (Excess-3):在 8421 码基础上加 3(即加上0011),具有对称自补特性,即将 +6 的修正均摊到编码本身上,十进制下要进位的两个数位,在余三码下也要组进位。
  3. 2421 码:与 8421 码类似但各位权重分别为 2,4,2,1,其特性是 \(x\) 和 \(9-x\) 的 2421 码互补,其中 \(x=0\sim4\) 时的 2421 码就是二进制, \(x=5\sim9\) 时为 \(9-x\text{ xor } 1111_{2}\) 。余三码是将空出的 6 位放在两端,而 2421 码则放在中间。
十进制0123456789
8421 码\(0000\)\(0001\)\(0010\)\(0011\)\(0100\)\(0101\)\(0110\)\(0111\)\(1000\)\(1001\)
余三码\(0011\)\(0100\)\(0101\)\(0110\)\(0111\)\(1000\)\(1001\)\(1010\)\(1011\)\(1100\)
2421 码\(0000\)\(0001\)\(0010\)\(0011\)\(0100\)\(1011\)\(1100\)\(1101\)\(1110\)\(1111\)

切勿混淆转换与编码!

  • 转换 (Conversion) 是将数值的进制改变,如 \(13_{10} = 1101_2\);
  • 编码 (Coding) 是用二进制符号表示各数位,如 13 的BCD码为 \(0001\ 0011\)。

3.3 字符编码

ASCII码:美国信息交换标准代码,使用7位二进制表示128个字符:

  • 数字 0~9 的十六进制码为 \(30_{16} \sim 39_{16}\)。
  • 字母大小写转换只需翻转第6个比特位。
  • DEL 控制符全为1,源于早年纸带打孔用于覆盖擦除错误的机制。

Unicode:ASCII的扩展,使用16位 (2 Byte) 代码字,可编码全球几乎所有语言。

3.4 格雷码

格雷码 (Gray Code) 是一种可靠性编码 (Reliable Code),其核心特性是相邻的两个数值对应的编码之间,只有 1 个比特位发生翻转。数字 \(x\) 对应的格雷码为:

\[ x\text{ xor }(x\text{>>}1) \]

格雷码还可以通过递归构造,假设已知 \(n-1\) 位的格雷码的顺序集合为 \(S\) , 则有 \(n\) 为的格雷码顺序集合为:\(0S+\text{rev}(1S)\) ,例如由 2 位格雷码推导 3 位格雷码:

\[ \begin{align} &S_{2}=\{00,01,11,10\}\\ &0S_2=\{000,001,011,010\},\space1S_2=\{100,101,111,110\}\\ &S_3=0S_2+\text{rev}(1S_2)=\{000,001,011,010,110,111,101,110\} \end{align} \]

3.5 奇偶校验

通过引入冗余 (Redundancy) 比特来检测传输错误,称为错误检测码 (Error-Detection Codes)。奇偶校验能够检测出所有单比特错误 (Single-bit errors)。

  • 偶校验 (Even Parity):附加1个校验位后,整个代码字中“1”的数量为偶数;
  • 奇校验 (Odd Parity):附加1个校验位后,整个代码字中“1”的数量为奇数。