Skip to content

Chapter 1 数字系统与信息

约 816 个字 预计阅读时间 3 分钟

verilog

vivado

模拟信号 通过ADC 转换为数字信号

信号的采集和量化

  • 简单: 二值量化: 有阈值, 高于阈值为1, 低于为0, 阈值附近有空洞(threshold region),
    • 信号在中间则随机定义是0/1
    • 输入与输出的1/0阈值不同: 原因为信号传输中有干扰, 输入需要有容错, 故范围大
    • why binary? : 两个状态的器件多, 硬件资源消耗少

K/M/G/T

二进制运算

术语

carry in: 进到这里的位, carry: 这位的进位

MSB: 最高有效位 LSB: 最低有效位

borrow in: 别的位向我借的位, borrow

"基"(线代那个"基"): 单个位上最多放的数的个数~进制

计算

加减法

进制转换

小数

小数即负指数次幂

n -> 10: 位值原理

10 -> 2:

  • 法一: 一次次减最大的2的幂
  • 法二: 整数 + 小数:

    • 整数: 除2取余, 逆向读取;
    • 小数: 乘2取整, 小数继续, 正向读取;

    Info

    • 整数: 直到商 = 0, 一定可以准确表示
    • 小数: 可能无穷/循环 -> 人十进制和计算机二进制间误差

    想想原因

    基之间的相互转换, 是一个不定方程

    原理:

8/16 -> 2

restate: 重声明, 一位变3/4位, 不足的往前面填充0

2 -> 8/16

regroup: 重组, 从小数点开始往左/右数, 3/4位变1位

  • 整数部分最左边: 011 -> 11, 001 -> 1
  • 小数部分最右边: 110 -> 11, 100 -> 1

8 <-> 16

引入二进制为中间桥梁

信息编码

非数字 -> 数字, 例如颜色的二进制编码

最少的位数: 有M个需要编码的元素, 用n位二进制表示, 满足如下等式:

\[2^{n - 1} \lt M \lt 2^n\]

即对数再向上取整

这样一来对0~9的编码有很多种编码方式, 有如下有价值编码方式

  • BCD码(8, 4, 2, 1码)

    Info

    8/4/2/1代表每一位的权重

    编码不一定有权重, 例如颜色编码

计算

+ 6 补偿, 当出现非法码时

可以直接按照十进制加 - 8, 4, -2, -1码

- 补码直接取反即可
  • 余3码

    • 补码直接取反即可
  • 格雷码

    • 抗干扰
  • 独热码

  • 7位ASCII

    • 大小写: 最低四位相同, 高三位差一位, 反转第五位
    • DEL: 因为之前纸带

错误检测和纠正

原理: 信道编码: 错误的检测和纠正, 加入冗余信息, 加入校验位

奇odd/偶even校验: 头上(MSB)/尾上(LSB)加入一个0/1, 目的是使得1的个数位奇/偶数

编码包括信源编码 + 信道编码(错误的检测和纠正, 加入冗余信息, 加入校验位)

  • 格雷码gray code

    • 相邻俩数有一个位反转,
    • "二进制反射格雷码": 以中间对称的两个数所有位都反
    • "头"在变化
    • 算法: 先写出BCD码, 最高位与BCD一样, 后面的位(从前往后)第n位为BCD码第n和n - 1 位的二进制加法的最低位

编码盘:

  • 出现skew(信号畸变和干扰): 在分割线上所有编码均有可能
    • 用格雷码: 两个间只变一位: 能量消耗低/有两位一样, 误差小

颜色主题调整