这是本文档旧的修订版!
你使用的 DokuWiki 可能没有安装 Wrap 插件,因此 `<WRAP>` 不会生效。下面改为仅使用 DokuWiki 原生语法:标题、表格、列表、粗体、等宽文字和引用,不再使用 `<WRAP>`、`<code>` 等标签。
1.3.4 脉冲编码调制
一、本节导读
脉冲编码调制用于把声音、图像等模拟数据转换成可以通过数字信道传输的二进制数据。
PCM的三个核心步骤:
- 采样:把时间连续的模拟信号转换成时间离散的样本。
- 量化:把幅度连续的样本转换成有限个离散等级。
- 编码:把量化等级转换成二进制代码。
模拟信号
↓
采样 Sampling
↓
时间离散、幅度连续的样本
↓
量化 Quantization
↓
时间离散、幅度离散的样本
↓
编码 Encoding
↓
PCM二进制数据
核心结论:PCM就是对模拟信号进行“采样、量化、编码”,最终得到二进制数字信号。
二、PCM基本概念
1. PCM的定义
PCM(Pulse Code Modulation,脉冲编码调制)是一种常用的模拟信号数字化技术。
它通过周期性地读取模拟信号的瞬时幅度,把样本幅度量化成有限个离散等级,再将每个量化等级表示为二进制代码。
2. 数字化的含义
Digitization(数字化)是把声音、图像等模拟数据转换为数字信号的过程。
数字化后的数据具有以下特点:
- 适合在数字通信网络中传输。
- 抗干扰能力较强。
- 便于存储、复制和计算机处理。
- 可以进行压缩、加密和差错控制。
- 容易与其他数字业务统一传输。
3. Codec编码解码器
实现模拟信号和数字信号相互转换的设备称为:
Codec(Coder-Decoder,编码解码器)
Codec包含两项基本功能:
- Coder(编码器):把模拟数据转换为数字信号。
- Decoder(解码器):把数字信号还原成模拟数据。
发送端 接收端
模拟数据 → Coder → PCM数据 → 数字信道 → Decoder → 模拟数据
编码器 解码器
4. Codec与Modem的区别
| 设备 | 英文全称 | 中文名称 | 主要功能 |
|---|---|---|---|
| Codec | Coder-Decoder | 编码解码器 | 完成模拟数据与数字信号之间的转换 |
| Modem | Modulator-Demodulator | 调制解调器 | 完成数字数据与已调模拟载波之间的转换 |
注意:Codec解决的是模拟数据数字化问题;Modem解决的是数字数据通过模拟载波传输的问题。
三、第一步:采样
1. 采样的定义
Sampling(采样)是每隔固定时间读取一次模拟信号的瞬时值。
模拟信号原本在时间和幅度上都是连续的。采样之后:
- 时间变为离散状态。
- 样本幅度仍然是连续值。
- 一系列样本共同描述原模拟信号的变化过程。
原模拟信号:x(t)
采样时刻:0、T、2T、3T、4T……
样本序列:x(0)、x(T)、x(2T)、x(3T)……
其中:
T表示采样周期。f_s表示采样频率。- 采样频率表示每秒采样的次数。
采样频率与采样周期的关系为:
''f_s = 1/T''
2. 奈奎斯特采样定理
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)''
3. 奈奎斯特速率
理论上的最低采样频率称为:
Nyquist Rate(奈奎斯特速率)
''f_N = 2f_max''
实际系统通常会选择略高于奈奎斯特速率的采样频率,以便留出滤波器过渡带和系统误差余量。
4. 混叠
如果采样频率低于信号最高频率的2倍,高频信号可能被错误识别为低频信号。
这种现象称为:
Aliasing(混叠)
防止混叠的主要方法:
- 采样频率满足奈奎斯特采样定理。
- 在采样前限制输入信号的最高频率。
- 使用抗混叠低通滤波器。
采样之前使用的滤波器称为:
Anti-Aliasing Filter(抗混叠滤波器)
5. 语音信号采样示例
已知语音信号的最高频率为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''
6. 采样频率的影响
| 采样频率 | 时间还原精度 | 产生的数据量 | 处理要求 |
|---|---|---|---|
| 较低 | 较低 | 较少 | 较低 |
| 较高 | 较高 | 较多 | 较高 |
考试重点:采样频率决定时间轴上的还原精度,量化等级决定幅度轴上的还原精度。
四、第二步:量化
1. 量化的定义
采样后获得的样本值仍然是连续幅度,不能直接用有限长度的二进制数精确表示。
Quantization(量化)是把连续的样本幅度近似为有限个离散等级的过程。
例如:
| 原始样本值 | 量化后的近似值 |
|---|---|
| 1.09 | 1.1 |
| 1.21 | 1.2 |
| 1.55 | 1.6 |
| 0.69 | 0.7 |
2. 量化等级与编码位数
若量化等级数为 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''
3. 量化误差
原始样本值与量化后的近似值通常不能完全相等,其差值称为:
Quantization Error(量化误差)
''量化误差 = 原始样本值 - 量化值''
例如:
原始样本值:1.09 量化值:1.10 量化误差:1.09 - 1.10 = -0.01
量化过程引起的失真称为:
Quantization Noise(量化噪声)
量化误差只能通过增加量化等级等方式减小,不能被完全消除。
4. 量化等级的影响
| 比较项目 | 量化等级较少 | 量化等级较多 |
|---|---|---|
| 每个样本的编码位数 | 少 | 多 |
| 量化间隔 | 大 | 小 |
| 量化误差 | 大 | 小 |
| 信号还原精度 | 低 | 高 |
| 数据传输速率 | 低 | 高 |
| 存储空间 | 小 | 大 |
| 设备处理要求 | 较低 | 较高 |
核心规律:量化等级越多,幅度表示越精确,但每个样本所需的二进制位数也越多。
5. 均匀量化
Uniform Quantization(均匀量化)是将整个信号幅度范围划分为大小相等的量化区间。
主要特点:
- 各量化区间的宽度相同。
- 实现方法比较简单。
- 大信号和小信号采用相同的量化精度。
- 小信号的相对量化误差可能比较明显。
6. 非均匀量化
Non-uniform Quantization(非均匀量化)是对不同幅度范围采用不同的量化间隔。
通常采用:
- 小幅度信号使用较小的量化间隔。
- 大幅度信号使用较大的量化间隔。
- 提高小信号的量化精度。
- 改善语音信号的信噪比。
五、第三步:编码
1. 编码的定义
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 |
2. 编码示例
假设连续样本的量化等级依次为:
''3、8、5、15''
对应的4位二进制代码为:
| 量化等级 | PCM代码 |
|---|---|
| 3 | 0011 |
| 8 | 1000 |
| 5 | 0101 |
| 15 | 1111 |
形成的PCM比特流为:
''0011 1000 0101 1111''
3. 单个样本的转换过程
假设某次采样得到的幅度为1.09:
实际样本值:1.09
↓
量化近似值:1.1
↓
确定量化等级
↓
转换成对应二进制代码
↓
形成PCM数字数据
六、PCM数据速率
1. 单通道PCM速率
PCM数据速率等于每秒采样次数乘以每个样本的编码位数:
''R = f_s × n''
其中:
| 符号 | 含义 | 单位 |
|---|---|---|
R | PCM数据传输速率 | b/s |
f_s | 采样频率 | Hz,即次/秒 |
n | 每个样本的编码位数 | bit/样本 |
2. 多通道PCM速率
若系统包含多个独立通道,则:
''R = f_s × n × C''
其中:
C表示通道数量。- 单声道的
C=1。 - 双声道的
C=2。
3. 已知量化等级的速率公式
因为:
''n = log₂L''
所以:
''R = f_s × log₂L × C''
其中 L 为量化等级数。
七、教材语音数字化示例
教材给出的条件如下:
- 语音信号最高频率为4 kHz。
- 采样频率为8 kHz。
- 量化等级为128级。
- 每个样本使用7位二进制数表示。
1. 计算采样频率
''f_s = 2 × 4 kHz''
''f_s = 8 kHz''
即:
''f_s = 8000次/秒''
2. 计算编码位数
''n = log₂128''
''n = 7 bit''
3. 计算数据速率
''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。
八、PCM计算示例
例1:16级量化
某模拟信号最高频率为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''
例2:256级量化
某语音信号最高频率为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''
例3:双声道音频
某双声道音频采用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''
例4:根据数据速率求量化等级
某单通道PCM系统的采样频率为8 kHz,数据速率为64 kb/s,求每个样本的编码位数和量化等级数。
编码位数:
''n = R/f_s''
''n = 64000/8000''
''n = 8 bit''
量化等级数:
''L = 2^8''
''L = 256级''
九、语音与视频数字化比较
| 比较项目 | 语音信号 | 视频信号 |
|---|---|---|
| 信号带宽 | 较小 | 较大 |
| 所需采样频率 | 较低 | 较高 |
| 每秒样本数量 | 较少 | 较多 |
| 量化数据量 | 相对较少 | 很大 |
| 传输速率要求 | 较低 | 较高 |
| 存储空间要求 | 较小 | 较大 |
教材指出:
- 语音信号最高频率按4 kHz考虑时,采样频率可取8 kHz。
- 视频信号带宽可达到6 MHz。
- 如果按最高频率6 MHz计算,最低采样频率应为12 MHz。
- 视频量化等级越多,产生的数据速率越高。
视频采样频率计算:
''f_s ≥ 2 × 6 MHz''
''f_s ≥ 12 MHz''
十、参数对PCM数据量的影响
1. 提高采样频率
采样频率提高
↓
每秒样本数量增加
↓
时间还原精度提高
↓
PCM数据速率提高
2. 增加量化等级
量化等级增加
↓
每个样本的编码位数增加
↓
幅度还原精度提高
↓
量化误差减小
↓
PCM数据速率提高
3. 增加通道数量
通道数量增加
↓
同一时间需要处理的样本增加
↓
PCM总数据速率按比例增加
十一、PCM完整工作流程
1. 发送端
模拟信号
↓
抗混叠滤波器
Anti-Aliasing Filter
↓
采样
Sampling
↓
量化
Quantization
↓
编码
Encoding
↓
PCM二进制数据
↓
数字信道
2. 接收端
接收到的PCM数据
↓
译码
Decoding
↓
恢复量化样本
↓
数模转换
Digital-to-Analog Conversion
↓
重建滤波
Reconstruction Filter
↓
近似恢复原模拟信号
十二、PCM的优点和局限
1. 主要优点
- 适合通过数字通信网络传输。
- 抗噪声和抗干扰能力较强。
- 中继节点可以重新生成数字信号。
- 便于进行差错检测和差错控制。
- 便于进行加密和压缩。
- 便于计算机存储和处理。
- 可以与其他数字业务统一传输。
- 适合构建数字电话和数字多媒体系统。
2. 主要局限
- 需要经过采样、量化和编码,处理流程相对复杂。
- 量化会产生不可完全消除的量化误差。
- 提高采样频率会增加数据量。
- 增加量化位数会增加数据量。
- 未压缩PCM通常需要较高的传输带宽。
- 高质量音频和视频会产生大量数字数据。
十三、核心公式汇总
| 计算内容 | 公式 | 说明 |
|---|---|---|
| 采样频率与周期 | 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 |
十四、快速解题模板
1. 已知最高频率和量化等级
第一步:f_s = 2f_max
第二步:n = log₂L
第三步:R = f_s × n × C
2. 已知采样频率和编码位数
单通道:
''R = f_s × n''
多通道:
''R = f_s × n × C''
3. 已知PCM速率和采样频率
''n = R/f_s''
''L = 2^n''
4. 已知编码位数求量化等级
''L = 2^n''
例如,每个样本使用12位编码:
''L = 2^12 = 4096级''
十五、考试重点
必须掌握:
- PCM的英文全称是Pulse Code Modulation,中文名称是脉冲编码调制。
- PCM的三个基本步骤是采样、量化和编码。
- 采样实现时间离散化。
- 量化实现幅度离散化。
- 编码将量化等级转换为二进制代码。
- 奈奎斯特采样条件为
f_s≥2f_max。 n位二进制代码可以表示2^n个量化等级。L个量化等级至少需要log₂L位编码。- 单通道PCM数据速率为
R=f_s×n。 - 多通道PCM数据速率为
R=f_s×n×C。 - 采样频率决定时间方向的还原精度。
- 量化等级决定幅度方向的还原精度。
- 量化过程会产生量化误差。
- 教材中的语音示例结果为56 kb/s。
十六、常见易错点
容易出错的内容:
- 奈奎斯特采样频率是信号最高频率的至少2倍。
- 若题目给出的是频率范围,必须先判断最高频率或信号带宽。
- 采样频率的单位是Hz,不是b/s。
- 数据传输速率的单位是b/s,不能直接写成Baud。
- 256级量化需要8 bit编码,而不是256 bit。
- 采样后只有时间离散,幅度在量化前仍是连续值。
- 量化后幅度变成离散等级。
- 编码不会消除量化误差。
- 计算立体声或多通道PCM时不能遗漏通道数量。
- 教材采用128级量化时为7 bit,对应56 kb/s。
- 常见电话PCM采用8 bit编码时为64 kb/s。
- kHz、MHz、kb/s和Mb/s必须统一单位后再计算。
十七、PCM与相关技术对比
| 技术或步骤 | 输入 | 输出 | 核心作用 |
|---|---|---|---|
| 采样 | 连续时间模拟信号 | 离散时间样本 | 时间离散化 |
| 量化 | 连续幅度样本 | 离散幅度等级 | 幅度离散化 |
| 编码 | 量化等级 | 二进制代码 | 数字化表示 |
| 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