你使用的 DokuWiki 可能没有安装 Wrap 插件,因此 `<WRAP>` 不会生效。下面改为仅使用 DokuWiki 原生语法:标题、表格、列表、粗体、等宽文字和引用,不再使用 `<WRAP>`、`<code>` 等标签。
脉冲编码调制用于把声音、图像等模拟数据转换成可以通过数字信道传输的二进制数据。
PCM的三个核心步骤:
模拟信号
↓
采样 Sampling
↓
时间离散、幅度连续的样本
↓
量化 Quantization
↓
时间离散、幅度离散的样本
↓
编码 Encoding
↓
PCM二进制数据
核心结论:PCM就是对模拟信号进行“采样、量化、编码”,最终得到二进制数字信号。
PCM(Pulse Code Modulation,脉冲编码调制)是一种常用的模拟信号数字化技术。
它通过周期性地读取模拟信号的瞬时幅度,把样本幅度量化成有限个离散等级,再将每个量化等级表示为二进制代码。
Digitization(数字化)是把声音、图像等模拟数据转换为数字信号的过程。
数字化后的数据具有以下特点:
实现模拟信号和数字信号相互转换的设备称为:
Codec(Coder-Decoder,编码解码器)
Codec包含两项基本功能:
发送端 接收端
模拟数据 → Coder → PCM数据 → 数字信道 → Decoder → 模拟数据
编码器 解码器
| 设备 | 英文全称 | 中文名称 | 主要功能 |
|---|---|---|---|
| Codec | Coder-Decoder | 编码解码器 | 完成模拟数据与数字信号之间的转换 |
| Modem | Modulator-Demodulator | 调制解调器 | 完成数字数据与已调模拟载波之间的转换 |
注意:Codec解决的是模拟数据数字化问题;Modem解决的是数字数据通过模拟载波传输的问题。
Sampling(采样)是每隔固定时间读取一次模拟信号的瞬时值。
模拟信号原本在时间和幅度上都是连续的。采样之后:
原模拟信号:x(t)
采样时刻:0、T、2T、3T、4T……
样本序列:x(0)、x(T)、x(2T)、x(3T)……
其中:
T表示采样周期。f_s表示采样频率。采样频率与采样周期的关系为:
''f_s = 1/T''
Nyquist Sampling Theorem(奈奎斯特采样定理)指出:
为了能够根据采样值恢复原模拟信号,采样频率至少应为模拟信号最高频率的2倍。
公式为:
''f_s ≥ 2f_max''
教材中强调实际采样频率应高于临界值,因此写作:
''f_s > 2f_max''
其中:
| 符号 | 含义 | 常用单位 |
|---|---|---|
f_s | 采样频率 | Hz、kHz或MHz |
f_max | 模拟信号的最高频率 | Hz、kHz或MHz |
T | 采样周期 | s、ms或μs |
结合 f_s=1/T,可以得到:
''1/T ≥ 2f_max''
最大采样周期应满足:
''T ≤ 1/(2f_max)''
理论上的最低采样频率称为:
Nyquist Rate(奈奎斯特速率)
''f_N = 2f_max''
实际系统通常会选择略高于奈奎斯特速率的采样频率,以便留出滤波器过渡带和系统误差余量。
如果采样频率低于信号最高频率的2倍,高频信号可能被错误识别为低频信号。
这种现象称为:
Aliasing(混叠)
防止混叠的主要方法:
采样之前使用的滤波器称为:
Anti-Aliasing Filter(抗混叠滤波器)
已知语音信号的最高频率为4 kHz,求理论最低采样频率。
''f_s ≥ 2f_max''
''f_s ≥ 2 × 4 kHz''
''f_s ≥ 8 kHz''
因此,最低采样频率为:
''8 kHz = 8000次/秒''
对应的最大采样周期为:
''T = 1/f_s''
''T = 1/8000 s''
''T = 0.000125 s''
''T = 125 μs''
| 采样频率 | 时间还原精度 | 产生的数据量 | 处理要求 |
|---|---|---|---|
| 较低 | 较低 | 较少 | 较低 |
| 较高 | 较高 | 较多 | 较高 |
考试重点:采样频率决定时间轴上的还原精度,量化等级决定幅度轴上的还原精度。
采样后获得的样本值仍然是连续幅度,不能直接用有限长度的二进制数精确表示。
Quantization(量化)是把连续的样本幅度近似为有限个离散等级的过程。
例如:
| 原始样本值 | 量化后的近似值 |
|---|---|
| 1.09 | 1.1 |
| 1.21 | 1.2 |
| 1.55 | 1.6 |
| 0.69 | 0.7 |
若量化等级数为 L,每个样本使用 n 位二进制代码表示,则:
''L = 2^n''
反过来:
''n = log₂L''
常见对应关系如下:
| 编码位数n | 量化等级数L | 二进制代码范围 |
|---|---|---|
| 3 bit | 8级 | 000~111 |
| 4 bit | 16级 | 0000~1111 |
| 7 bit | 128级 | 0000000~1111111 |
| 8 bit | 256级 | 00000000~11111111 |
| 10 bit | 1024级 | 0000000000~1111111111 |
| 12 bit | 4096级 | 12位二进制代码 |
| 16 bit | 65536级 | 16位二进制代码 |
教材图示将信号幅度划分成16个量化等级,因此每个样本需要:
''n = log₂16''
''n = 4 bit''
相应的二进制代码范围为:
''0000~1111''
原始样本值与量化后的近似值通常不能完全相等,其差值称为:
Quantization Error(量化误差)
''量化误差 = 原始样本值 - 量化值''
例如:
原始样本值:1.09 量化值:1.10 量化误差:1.09 - 1.10 = -0.01
量化过程引起的失真称为:
Quantization Noise(量化噪声)
量化误差只能通过增加量化等级等方式减小,不能被完全消除。
| 比较项目 | 量化等级较少 | 量化等级较多 |
|---|---|---|
| 每个样本的编码位数 | 少 | 多 |
| 量化间隔 | 大 | 小 |
| 量化误差 | 大 | 小 |
| 信号还原精度 | 低 | 高 |
| 数据传输速率 | 低 | 高 |
| 存储空间 | 小 | 大 |
| 设备处理要求 | 较低 | 较高 |
核心规律:量化等级越多,幅度表示越精确,但每个样本所需的二进制位数也越多。
Uniform Quantization(均匀量化)是将整个信号幅度范围划分为大小相等的量化区间。
主要特点:
Non-uniform Quantization(非均匀量化)是对不同幅度范围采用不同的量化间隔。
通常采用:
Encoding(编码)是将量化后的幅度等级转换成相应二进制代码的过程。
如果采用16级量化,每个样本需要4位二进制代码:
| 量化等级 | 二进制代码 |
|---|---|
| 第0级 | 0000 |
| 第1级 | 0001 |
| 第2级 | 0010 |
| 第3级 | 0011 |
| 第4级 | 0100 |
| 第5级 | 0101 |
| 第6级 | 0110 |
| 第7级 | 0111 |
| 第8级 | 1000 |
| 第9级 | 1001 |
| 第10级 | 1010 |
| 第11级 | 1011 |
| 第12级 | 1100 |
| 第13级 | 1101 |
| 第14级 | 1110 |
| 第15级 | 1111 |
假设连续样本的量化等级依次为:
''3、8、5、15''
对应的4位二进制代码为:
| 量化等级 | PCM代码 |
|---|---|
| 3 | 0011 |
| 8 | 1000 |
| 5 | 0101 |
| 15 | 1111 |
形成的PCM比特流为:
''0011 1000 0101 1111''
假设某次采样得到的幅度为1.09:
实际样本值:1.09
↓
量化近似值:1.1
↓
确定量化等级
↓
转换成对应二进制代码
↓
形成PCM数字数据
PCM数据速率等于每秒采样次数乘以每个样本的编码位数:
''R = f_s × n''
其中:
| 符号 | 含义 | 单位 |
|---|---|---|
R | PCM数据传输速率 | b/s |
f_s | 采样频率 | Hz,即次/秒 |
n | 每个样本的编码位数 | bit/样本 |
若系统包含多个独立通道,则:
''R = f_s × n × C''
其中:
C表示通道数量。C=1。C=2。因为:
''n = log₂L''
所以:
''R = f_s × log₂L × C''
其中 L 为量化等级数。
教材给出的条件如下:
''f_s = 2 × 4 kHz''
''f_s = 8 kHz''
即:
''f_s = 8000次/秒''
''n = log₂128''
''n = 7 bit''
''R = f_s × n''
''R = 8000 × 7''
''R = 56000 b/s''
''R = 56 kb/s''
因此,按照教材采用的128级量化方案,数字语音信号的数据速率为:
56 kb/s
补充说明:教材示例采用7位编码,因此结果为56 kb/s。常见电话PCM通常采用8 kHz采样和8 bit编码,对应64 kb/s。
某模拟信号最高频率为5 kHz,采用16级量化,求最低PCM数据速率。
最低采样频率:
''f_s = 2 × 5 kHz = 10 kHz''
每个样本的编码位数:
''n = log₂16 = 4 bit''
PCM数据速率:
''R = 10000 × 4''
''R = 40000 b/s''
''R = 40 kb/s''
某语音信号最高频率为4 kHz,采用256级量化,求最低PCM数据速率。
最低采样频率:
''f_s = 2 × 4 kHz = 8 kHz''
编码位数:
''n = log₂256 = 8 bit''
PCM数据速率:
''R = 8000 × 8''
''R = 64000 b/s''
''R = 64 kb/s''
某双声道音频采用44.1 kHz采样频率,每个样本使用16 bit,求未经压缩的数据速率。
已知:
f_s=44100 Hzn=16 bitC=2计算:
''R = 44100 × 16 × 2''
''R = 1411200 b/s''
''R = 1.4112 Mb/s''
某单通道PCM系统的采样频率为8 kHz,数据速率为64 kb/s,求每个样本的编码位数和量化等级数。
编码位数:
''n = R/f_s''
''n = 64000/8000''
''n = 8 bit''
量化等级数:
''L = 2^8''
''L = 256级''
| 比较项目 | 语音信号 | 视频信号 |
|---|---|---|
| 信号带宽 | 较小 | 较大 |
| 所需采样频率 | 较低 | 较高 |
| 每秒样本数量 | 较少 | 较多 |
| 量化数据量 | 相对较少 | 很大 |
| 传输速率要求 | 较低 | 较高 |
| 存储空间要求 | 较小 | 较大 |
教材指出:
视频采样频率计算:
''f_s ≥ 2 × 6 MHz''
''f_s ≥ 12 MHz''
采样频率提高
↓
每秒样本数量增加
↓
时间还原精度提高
↓
PCM数据速率提高
量化等级增加
↓
每个样本的编码位数增加
↓
幅度还原精度提高
↓
量化误差减小
↓
PCM数据速率提高
通道数量增加
↓
同一时间需要处理的样本增加
↓
PCM总数据速率按比例增加
模拟信号
↓
抗混叠滤波器
Anti-Aliasing Filter
↓
采样
Sampling
↓
量化
Quantization
↓
编码
Encoding
↓
PCM二进制数据
↓
数字信道
接收到的PCM数据
↓
译码
Decoding
↓
恢复量化样本
↓
数模转换
Digital-to-Analog Conversion
↓
重建滤波
Reconstruction Filter
↓
近似恢复原模拟信号
| 计算内容 | 公式 | 说明 |
|---|---|---|
| 采样频率与周期 | f_s=1/T | 采样频率是采样周期的倒数 |
| 奈奎斯特采样条件 | f_s≥2f_max | 采样频率至少为最高频率的2倍 |
| 最大采样周期 | T≤1/(2f_max) | 采样周期不能超过临界值 |
| 量化等级数 | L=2^n | n位代码可以表示2的n次方个等级 |
| 编码位数 | n=log₂L | 由量化等级数计算编码位数 |
| 单通道PCM速率 | R=f_s×n | 不考虑帧头等额外开销 |
| 多通道PCM速率 | R=f_s×n×C | C为通道数量 |
| 已知量化等级求速率 | R=f_s×log₂L×C | 把编码位数替换为log₂L |
第一步:f_s = 2f_max
第二步:n = log₂L
第三步:R = f_s × n × C
单通道:
''R = f_s × n''
多通道:
''R = f_s × n × C''
''n = R/f_s''
''L = 2^n''
''L = 2^n''
例如,每个样本使用12位编码:
''L = 2^12 = 4096级''
必须掌握:
f_s≥2f_max。n位二进制代码可以表示 2^n 个量化等级。L个量化等级至少需要 log₂L 位编码。R=f_s×n。R=f_s×n×C。容易出错的内容:
| 技术或步骤 | 输入 | 输出 | 核心作用 |
|---|---|---|---|
| 采样 | 连续时间模拟信号 | 离散时间样本 | 时间离散化 |
| 量化 | 连续幅度样本 | 离散幅度等级 | 幅度离散化 |
| 编码 | 量化等级 | 二进制代码 | 数字化表示 |
| PCM | 模拟信号 | 数字比特流 | 完成模拟信号数字化 |
| 数字调制 | 数字数据 | 已调模拟载波 | 通过模拟信道传输数字数据 |
| 数字解调 | 已调模拟载波 | 数字数据 | 恢复载波表示的数字数据 |
| 数模转换 | 数字样本 | 模拟信号 | 将数字样本转换成模拟信号 |
| 缩写或术语 | 英文全称 | 中文含义 |
|---|---|---|
| PCM | Pulse Code Modulation | 脉冲编码调制 |
| Codec | Coder-Decoder | 编码解码器 |
| Coder | Coder | 编码器 |
| Decoder | Decoder | 解码器 |
| Modem | Modulator-Demodulator | 调制解调器 |
| ADC | Analog-to-Digital Converter | 模数转换器 |
| DAC | Digital-to-Analog Converter | 数模转换器 |
| Sampling | Sampling | 采样 |
| Quantization | Quantization | 量化 |
| Encoding | Encoding | 编码 |
| Decoding | Decoding | 译码 |
| Aliasing | Aliasing | 混叠 |
| Anti-Aliasing Filter | Anti-Aliasing Filter | 抗混叠滤波器 |
| Nyquist Sampling Theorem | Nyquist Sampling Theorem | 奈奎斯特采样定理 |
| Nyquist Rate | Nyquist Rate | 奈奎斯特速率 |
| Quantization Error | Quantization Error | 量化误差 |
| Quantization Noise | Quantization Noise | 量化噪声 |
| Uniform Quantization | Uniform Quantization | 均匀量化 |
| Non-uniform Quantization | Non-uniform Quantization | 非均匀量化 |
| Reconstruction Filter | Reconstruction Filter | 重建滤波器 |
| Hz | Hertz | 赫兹,每秒周期数 |
| kHz | kilohertz | 千赫兹 |
| MHz | megahertz | 兆赫兹 |
| b/s | bit per second | 比特每秒 |
| kb/s | kilobit per second | 千比特每秒 |
| Mb/s | megabit per second | 兆比特每秒 |
| ms | millisecond | 毫秒,千分之一秒 |
| μs | microsecond | 微秒,百万分之一秒 |
| bit | binary digit | 二进制位 |
模拟信号数字化
│
└─ PCM:脉冲编码调制
│
├─ 采样 Sampling
│ ├─ 时间离散化
│ ├─ f_s = 1/T
│ ├─ f_s ≥ 2f_max
│ └─ 采样不足会产生混叠
│
├─ 量化 Quantization
│ ├─ 幅度离散化
│ ├─ L = 2^n
│ ├─ n = log₂L
│ └─ 产生量化误差
│
└─ 编码 Encoding
├─ 量化等级转换为二进制代码
├─ 单通道:R = f_s × n
└─ 多通道:R = f_s × n × C
软考 网络规划设计师 计算机网络 数据通信 PCM 脉冲编码调制 采样 量化 编码 奈奎斯特 量化误差 Codec