2. 信号与系统基础:模拟信号与数字信号、采样定理、量化与编码、信噪比概念

好,咱们开始第二章。这一章是数据转换器的理论基础,说白了就是搞清楚:我们到底在转换什么?

很多刚入行的工程师,上来就盯着ADC的位数、采样率看,结果做出来的板子噪声大、失真严重。为什么?因为没搞懂信号本身的脾气。我当年也犯过这毛病,后来被一个老前辈点醒:你连信号长什么样都没摸透,谈什么转换?

2.1 模拟信号与数字信号

先说说这两个东西的本质区别。

模拟信号,是连续变化的。比如你说话时的声波,温度计里的水银柱,都是连续的。它在时间和幅值上都没有间断。

数字信号,是离散的。它只在特定的时间点有值,而且幅值也被限定在几个固定的等级上。比如你电脑里存的音频文件,就是一堆0和1。

我打个比方:模拟信号就像你用手在墙上画一条曲线,想怎么弯就怎么弯;数字信号就像用乐高积木拼出一条曲线,只能一格一格地拼,不可能完全平滑。

那为什么要用数字信号?因为抗干扰能力强。模拟信号传着传着,噪声就叠上去了,你很难分清哪些是信号、哪些是噪声。数字信号不一样,只要噪声没大到把0变成1、把1变成0,就能完美恢复。

核心区别总结:

  • 连续性:模拟信号连续,数字信号离散
  • 抗干扰:数字信号远优于模拟信号
  • 处理方式:模拟信号靠电路,数字信号靠算法

2.2 采样定理

好,现在我们要把模拟信号变成数字信号。第一步就是采样——每隔一段时间,抓一个点。

问题来了:抓多快才够?

这就是奈奎斯特采样定理要回答的问题。它的核心就一句话:采样频率必须大于信号最高频率的两倍

为什么?我举个例子你就明白了。

假设有一个1kHz的正弦波。如果你用1kHz的频率去采样,会发生什么?你每次采样都落在波形的同一个位置,结果采出来是一条直线!你完全不知道这是个正弦波。

如果你用1.5kHz去采样,好一点,但恢复出来的波形频率是错的,这叫混叠

只有当你用大于2kHz的频率去采样,才能完整地恢复出这个1kHz的信号。

我的经验: 实际项目中,我一般取采样频率为信号最高频率的5到10倍。为什么?因为理想低通滤波器不存在,留点余量心里踏实。我曾经在一个车载音频项目里,信号最高频率20kHz,我用了48kHz采样,结果还是有点混叠。后来换成96kHz,问题解决。嗯,这就是教训。

采样定理的数学表达很简单:

fs > 2 * fmax

其中fs是采样频率,fmax是信号最高频率。这个fmax的一半,叫奈奎斯特频率

注意: 采样前一定要加抗混叠滤波器!把高于fs/2的频率成分滤掉。否则那些高频成分会折叠到低频段,变成你完全无法预料的噪声。我见过有人省了这个滤波器,结果系统里莫名其妙多出一些低频干扰,查了三天才发现是混叠造成的。

2.3 量化与编码

采样之后,我们得到了一串时间上离散的数值。但这些数值还是连续的——比如3.14159伏特。数字系统没法直接处理这种连续值,得把它量化成有限个等级。

量化,就是把连续的幅值映射到离散的等级上。比如一个3位的ADC,只能表示8个等级(000到111)。3.14159伏特,可能被量化为3.125伏特(对应某个二进制码)。

这个映射过程,必然带来误差,叫量化误差

量化误差的大小,取决于ADC的位数。位数越多,等级越细,误差越小。

ADC位数 等级数 量化步长(满量程5V)
8位 256 19.53 mV
10位 1024 4.88 mV
12位 4096 1.22 mV
16位 65536 76.29 μV

你看,从8位到16位,精度提升了两个数量级。但代价是什么?成本、功耗、速度都受影响。所以选ADC不是位数越高越好,够用就行。

编码,就是把量化后的等级用二进制码表示。最常见的编码方式是二进制补码,特别是处理双极性信号时。比如-2.5V对应1000...000,0V对应0000...000,+2.5V对应0111...111。

我建议: 如果你处理的是单极性信号(比如0-5V),用自然二进制码就行,简单直接。如果是双极性信号(比如-5V到+5V),用二进制补码,这样后续的数字信号处理会方便很多。

2.4 信噪比概念

最后,我们来聊聊信噪比,简称SNR。这是衡量信号质量的核心指标。

信噪比的定义很简单:信号功率与噪声功率的比值,通常用分贝(dB)表示。

SNR(dB) = 10 * log10(Psignal / Pnoise)

对于ADC来说,主要的噪声来源就是量化误差。理论上,一个理想的N位ADC,它的最大信噪比是:

SNR_max(dB) = 6.02 * N + 1.76

这个公式很实用。比如12位的ADC,理论最大SNR是6.02*12 + 1.76 ≈ 74 dB。如果你实测只有60 dB,说明你的系统有其他噪声源,比如电源噪声、时钟抖动等。

我做过一个项目,ADC的SNR死活上不去,查了半天发现是电源纹波太大。后来换了低噪声LDO,SNR立刻提升了10 dB。所以记住:ADC的SNR,不只是ADC本身的事,是整个信号链的事

信噪比的关键点:

  • 每增加1位分辨率,SNR提升约6 dB
  • 实际SNR永远低于理论值,因为还有其他噪声
  • 信噪比和有效位数(ENOB)可以互相换算:ENOB = (SNR - 1.76) / 6.02

好了,这一章的内容就这些。总结一下:

  • 模拟信号连续,数字信号离散
  • 采样频率要大于信号最高频率的两倍,否则会混叠
  • 量化必然带来误差,位数越高误差越小
  • 信噪比是衡量信号质量的核心指标,受整个信号链影响

下一章,我们会深入ADC的架构,看看不同的ADC是怎么工作的。到时候再聊。