数据采集与采样:练习题及分步解答

免费的数据采集与采样练习题,附图示、提示和完整详细解答。每次数值都不同,分三个难度:奈奎斯特、LSB 与数据速率, 混叠、位数与 UART 帧, 谐波、SQNR 与系统设计。

免费练习题简单
SD0​D1​D2​D3​D4​D5​D6​D7​Tb​ = ?115200 Bd

一条 UART 链路的波特率为 115200。求一位的持续时间 Tb,单位 µs。

baud = 115200 Bd
µs
下一题 →
免费练习数据采集与采样立即练习数据采集与采样每天 5 道免费题目,无需绑定银行卡。

练习内容

  1. 简单奈奎斯特、LSB 与数据速率
  2. 中等混叠、位数与 UART 帧
  3. 困难谐波、SQNR 与系统设计

如何求解数据采集与采样问题

  1. 先写出已知量:采样率、信号频率、位数、输入量程、波特率。
  2. 采样类题目,把每个频率与 fs/2 比较;更高的频率会出现在 fa = |f − k·fs|,其中取最接近的 fs 整数倍。
  3. 分辨率类题目,求 1 LSB = VFSR/2ᴺ,或求满足 2ᴺ ≥ 量程/分辨率 的最小 N。
  4. 数据速率和 UART 链路类题目,要数清所有发送的内容:通道数、每秒采样数、每个采样的位数或整字节数,以及每帧的起始位、校验位和停止位。

常见错误

  • 以为高于 fs/2 的频率会消失:它其实会作为混叠出现在频带内。
  • 用 N 而不是 2ᴺ 去除量程。
  • 位数向下取整而不是向上取整。
  • 忘记起始位和停止位:8N1 每个字节发送 10 位。

关键公式

奈奎斯特准则
fs > 2·fmax, fN = fs/2
混叠频率
fa = |f − k·fs|, k = round(f/fs)
步长
1 LSB = VFSR/2ᴺ
量化误差(四舍五入)
±½ LSB
截断式 ADC 码值
D = ⌊Vin/LSB⌋
分辨率 r 所需的位数
2ᴺ ≥ span/r
理想 SQNR,满量程正弦波
SQNR = 6.02·N + 1.76 dB
数据速率
通道数 × fs × N 比特/秒
多路复用 ADC
fs = 1/(n·(tc + tset))
UART
Tb = 1/波特率;8N1 = 每字节 10 位;字节/秒 = 波特率/每帧位数
波特率分频器
baud = fclk/(16·D)

从零开始学习数据采集与采样

学习本课之前: 数制

1什么是数据采集

计算机不能直接读取电压。数据采集系统把物理量变成数字:传感器产生一个很小的电压,放大器对其放大,模数转换器(ADC)在等间隔的时刻测量它,并输出一个二进制数。

TG∿01N, fs​0101

两个选择决定了数字的质量。采样率 fs 表示 ADC 多久测量一次,位数 N 表示它把电压量程分得多细。二者共同还决定了需要存储或发送的数据量。

自测 ADC 以 2 kHz 采样。0.5 s 内它采集多少个采样点?
  1. 1000
  2. 2000
  3. 250
  4. 4000

答案: 1000. 采样点数 = fs·t = 2000·0.5 = 1000。如果乘以 2 而不是 0.5,会得到 4000;忽略时间则得到 2000。

2采样与混叠

要采集一个正弦波,每个周期需要多于两个采样点。所以采样率必须大于信号中最高频率的两倍。采样率的一半称为奈奎斯特频率:

fs > 2·fmax fN = fs/2

高于 fs/2 的频率不会消失。它的采样点与某个较低频率的采样点完全一样,这就是混叠。图中 7 Hz 正弦波(实线)以 10 Hz 采样,这些点与 3 Hz 正弦波(虚线)同样吻合。

tf = 7 Hzfs​ = 10 Hz
fa = |f − k·fs|, k = 最接近 f/fs 的整数

采样之后,再也无法把混叠与真实信号区分开。因此在 ADC 之前要用模拟抗混叠滤波器滤除 fs/2 以上的全部成分。

自测 一个 7 kHz 的音调在没有滤波器的情况下以 10 kHz 采样。它会出现在哪个频率?
  1. 17 kHz
  2. 3 kHz
  3. 5 kHz
  4. 7 kHz

答案: 3 kHz. 7 kHz 高于 fs/2 = 5 kHz,因此折叠回来:|7 − 1·10| = 3 kHz。它不可能停留在 7 kHz;17 kHz 是相加而不是相减;5 kHz 只是折叠频率。

3分辨率与量化

N 位 ADC 有 2ᴺ 个输出码,从 0 到 2ᴺ − 1。它把满量程 VFSR 分成 2ᴺ 个相等的台阶。一个台阶称为 1 LSB(最低有效位):

1 LSB = VFSR/2ᴺ

截断式 ADC 输出码 ⌊Vin/LSB⌋,即取下面的整数。四舍五入式 ADC 与真实值的偏差永远不超过 ½ LSB:这就是它的量化误差。

要分辨量程内大小为 r 的台阶,需要满足 2ᴺ ≥ 量程/r 的最小 N。每增加一位,LSB 减半,理想信号量化噪声比约增加 6 dB:

SQNR = 6.02·N + 1.76 dB
自测 一个 10 位 ADC 的量程为 0 到 5.12 V。1 LSB 是多少?
  1. 10 mV
  2. 2.5 mV
  3. 5 mV
  4. 512 mV

答案: 5 mV. 210 = 1024,所以 1 LSB = 5.12/1024 = 0.005 V = 5 mV。除以 N = 10 会得到 512 mV,使用 2⁹ 会得到 10 mV,而 2.5 mV 是四舍五入式 ADC 的最大误差,即半个 LSB。

4数据速率与串行链路

每个通道每秒提供 fs 个 N 位的采样。原始数据速率为 通道数 × fs × N。在内存中一个采样占用整数个字节,因此 12 位的采样占 2 个字节。

UART 把每个字节作为一帧发送:一个起始位、8 个数据位、一个可选的校验位以及一个或两个停止位。常见的 8N1 格式每个字节占 10 位。波特率表示每秒的位数,所以一位持续 1/波特率。

每秒字节数 = 波特率/(每帧位数)

多路复用器让一个 ADC 轮流服务多个通道。如果一次转换(含建立时间)需要 t,则 n 个通道中每个通道的采样频率为 1/(n·t)。

5例题讲解

大多数题目按以下顺序处理:

  1. 对照信号的最高频率检查采样率。
  2. 由量程和位数求步长。
  3. 统计数据量:通道数、每秒采样数、每个采样的字节数。
  4. 与链路或内存的承载能力比较,并计入起始位、校验位和停止位。
例题讲解

一台记录仪用 12 位 ADC 在 0 到 4.096 V 的量程上测量 4 路温度通道。信号含有最高 20 Hz 的频率,每个通道以 100 Hz 采样。每个采样点以 2 字节通过 UART 发送,波特率 9600,8N1。采样率是否足够高?1 LSB 是多少?链路能否承受?

1

奈奎斯特检验

2·fmax = 2·20 = 40 Hz < 100 Hz

采样率足够高。

2

步长

1 LSB = 4.096/212 = 4.096/4096 = 0.001 V = 1 mV
3

要发送的数据

4 个通道 · 100 个采样/s · 2 字节 = 800 字节/s
4

链路容量

8N1 每个字节发送 10 位。

9600/10 = 960 bytes/s ≥ 800 bytes/s
5

检验答案

线路上就是 800·10 = 8000 bit/s,低于 9600 波特。链路忙碌程度为 83 %。

答案

可以:100 Hz 大于 20 Hz 的两倍,1 LSB = 1 mV,链路需要 960 字节/秒中的 800 字节/秒。

6常见错误

  • 以为高于 fs/2 的频率只是丢失了:它其实会作为混叠出现在频带内。
  • 用 N 而不是 2ᴺ 去除量程。
  • 位数向下取整:2ᴺ 必须至少等于 量程/分辨率。
  • 在 UART 上按每字节 8 位计算:8N1 需要 10 位。
  • 忘记 10 位或 12 位的采样点存储时占 2 个整字节。
自测 9600 波特的 UART 以 8N1 格式每秒能发送多少字节?
  1. 1067
  2. 1200
  3. 9600
  4. 960

答案: 960. 每个字节需要 10 位(起始位、8 个数据位、停止位):9600/10 = 960。除以 8 忘记了起始位和停止位,除以 9 则忘记了其中之一。

7考试题是什么样的

  • 简单:奈奎斯特、LSB 和数据速率。求最小采样率、奈奎斯特频率、LSB 大小或量化误差、UART 的位时间或原始数据速率。
  • 中等:混叠、位数和 UART 帧。求混叠频率、达到某一分辨率所需的位数、某一电压的输出码、一段记录所需的内存、UART 格式的字节速率或理想 SQNR。
  • 困难:谐波、SQNR 和系统设计。求谐波的混叠位置、达到所需 SQNR 的位数、通过 UART 传输的 ADC 能采集的最高频率、多路复用 ADC 的速率、分频器的波特率误差或传感器测量链的温度分辨率。

在应用中一步一步地学在应用中一步一步地学

例题详解

例题 1简单
SD0​D1​D2​D3​D4​D5​D6​D7​Tb​ = ?2400 Bd

一条 UART 链路的波特率为 2400。求一位的持续时间 Tb,单位 µs。

baud = 2400 Bd

求: Tb (µs)

显示提示
  1. 波特率是每秒发送的位数。
  2. Tb = 1/baud.
  3. 1 s = 10⁶ µs.
显示答案和分步解答

UART:异步串行链路把每个字节作为一帧发送:一个起始位(低电平)、若干数据位、一个可选的校验位以及一个或两个停止位(高电平)。波特率是每秒的位数,所以一位持续 Tb = 1/波特率,n 位的一帧持续 n/波特率。常见的 8N1 格式每个字节占 10 位。波特率发生器对时钟分频:波特率 = fclk/(16·D),其中 D 为整数,因此实际波特率与目标值略有差别;误差在约 2 % 以内通常可以接受。

位时间

Tb = 1/2400 s = 416.7 µs

答案

Tb = 416.7 µs
例题 2中等
Vin​N = 85 V2ᴺ − 101 LSB2.125 V?

一个输入量程为 0 到 5 V 的 8 位 ADC 采用截断:其输出码为 ⌊Vin/LSB⌋,其中 1 LSB = VFSR/2ᴺ。求输入 2.125 V 时的十进制输出码 D。

N = 8VFSR = 5 VVin = 2.125 V

求: D

显示提示
  1. 先求一个 LSB 的大小。
  2. 1 LSB = 5/256 = 19.53 mV.
  3. 用输入除以 LSB,并保留整数部分。
显示答案和分步解答

ADC 分辨率:N 位转换器把满量程 VFSR 分成 2ᴺ 个码,从 0 到 2ᴺ − 1。一个台阶为 1 LSB = VFSR/2ᴺ:转换器能显示的最小变化。截断式 ADC 给出码 ⌊Vin/LSB⌋;四舍五入式 ADC 与真实值的偏差永远不超过 ½ LSB,即它的量化误差。每增加一位,LSB 减半,对满量程正弦波而言,理想信号量化噪声比 SQNR = 6.02·N + 1.76 dB 约增加 6 dB。要在量程内达到分辨率 r,选取满足 2ᴺ ≥ 量程/r 的最小 N。

步长

1 LSB = 5/28 = 19.53 mV

码值

Vin/LSB = 2125/19.53 = 108.8
码值 = ⌊108.8⌋ = 108

答案

D = 108

用二进制表示是 01101100。

例题 3困难
f0fs​/2fs​1.92 kHz7f₁?

一个 1.92 kHz 方波在没有抗混叠滤波器的情况下以 8 kHz 采样。方波含有奇次谐波 3f₁、5f₁、7f₁、…… 它的谐波 7f₁ 在采样数据中出现在哪个频率 fa?以 Hz 给出。

f₁ = 1.92 kHzfs = 8 kHz谐波: 7f₁

求: fa (Hz)

显示提示
  1. 谐波位于 7·1.92 kHz = 13.44 kHz,高于 fs/2 = 4 kHz。
  2. 它出现在 fa = |f − k·fs|,其中取最接近的 fs 整数倍。
  3. 13440/8000 = 1.68.
显示答案和分步解答

采样:ADC 每秒测量信号 fs 次。根据奈奎斯特–香农定理,只有当 f < fs/2(奈奎斯特频率,也称折叠频率)时,频率 f 才能被正确采集,因此采样率必须超过最高信号频率的两倍。更高的频率不会丢失:它会作为混叠出现在 fa = |f − k·fs|,其中整数 k 使结果落在 0 到 fs/2 之间。采样点无法区分二者,因此必须在 ADC 之前用模拟抗混叠滤波器滤除 fs/2 以上的全部成分。

谐波频率

7f₁ = 7·1.92 kHz = 13.44 kHz

最接近的采样率整数倍

m = round(1.68) = 2

混叠频率

fa = |13440 − 2·8000| = 2560 Hz

答案

fa = 2560 Hz

混叠落在信号频带内,任何数字滤波器都无法去除它。只有在 ADC 之前使用模拟滤波器才有帮助。

问与答

什么是数据采集与采样?

计算机不能直接读取电压。数据采集系统把物理量变成数字:传感器产生一个很小的电压,放大器对其放大,模数转换器(ADC)在等间隔的时刻测量它,并输出一个二进制数。

两个选择决定了数字的质量。采样率 fs 表示 ADC 多久测量一次,位数 N 表示它把电压量程分得多细。二者共同还决定了需要存储或发送的数据量。

数据采集与采样题目如何一步步求解?
  1. 先写出已知量:采样率、信号频率、位数、输入量程、波特率。
  2. 采样类题目,把每个频率与 fs/2 比较;更高的频率会出现在 fa = |f − k·fs|,其中取最接近的 fs 整数倍。
  3. 分辨率类题目,求 1 LSB = VFSR/2ᴺ,或求满足 2ᴺ ≥ 量程/分辨率 的最小 N。
  4. 数据速率和 UART 链路类题目,要数清所有发送的内容:通道数、每秒采样数、每个采样的位数或整字节数,以及每帧的起始位、校验位和停止位。
数据采集与采样有哪些常见错误?
  • 以为高于 fs/2 的频率会消失:它其实会作为混叠出现在频带内。
  • 用 N 而不是 2ᴺ 去除量程。
  • 位数向下取整而不是向上取整。
  • 忘记起始位和停止位:8N1 每个字节发送 10 位。
数据采集与采样练习包括哪些内容?
  • 简单: 奈奎斯特、LSB 与数据速率
  • 中等: 混叠、位数与 UART 帧
  • 困难: 谐波、SQNR 与系统设计

每道题的数值都不同,让你掌握方法,而不是记住答案。 卡住了?先打开一个小提示,需要时再查看完整解析。

练习方式

  • 每道题的数值都不同,让你掌握方法,而不是记住答案。
  • 卡住了?先打开一个小提示,需要时再查看完整解析。
  • 你的进度、错题和收藏的题目都会保留,方便考前复习。

本主题的前后主题

先学习

包含此主题的课程

电气中的更多主题

可打印练习卷

免费练习数据采集与采样立即练习数据采集与采样每天 5 道免费题目,无需绑定银行卡。