信号处理 --- 采样定理的解释与应用

[复制链接]
4373|9
手机看帖
扫描二维码
随时随地手机跟帖
会笑的星星|  楼主 | 2019-12-31 14:33 | 显示全部楼层 |阅读模式
本帖最后由 会笑的星星 于 2019-12-31 14:40 编辑

在信号处理中,有一个大名鼎鼎的定理 --- 采样定理(有时也被称为香浓或者奎奈斯特定理)。在百度百科中是这样描述它的:在进行模拟/数字信号的转换过程中,当采样频率fs.max大于信号中最高频率fmax的2倍时(fs.max>2fmax),采样之后的数字信号完整地保留了原始信号中的信息。对于没有学过信号与系统课程的人来说理解起来依然费解。既然这个定理这么重要,我们还是有必要搞清楚这个采样定理到底是什么意思,在实际工作中又如何使用它。

我们知道,一般来说,一个连续的时域信号(可以理解为时间与电压的关系)可以表征为多个简单的不同频率与振幅的正弦波的叠加和,如下图所示。从中可以看出来,这个时域信号只要一系列正弦波的幅度和频率就能完全表征(这一点可以从周期信号的傅里叶级数中看到),从中也可以知道时域信号中每一个存在频率都对应着一个能量,不存在的频率对应的能量为零。因此,我们可以借助与时域信号等价的频域特性(比如频率与能量的关系)来分析它,只要频域特性一致,我们可以认为两个信号是等价的。

clipboard222.png

我们来看一个简单的例子,一个频率为1000HZ的连续的余弦信号,如下图所示。

clipboard777.png

由于这个信号本身是一个余弦波而且是1000HZ,因此在频域中只有1000HZ的位置才有能量,其余频率下的能量为0,该信号对应的频谱特性如下所示(横轴是频率,纵轴是能量)。

clipboard444.png

在实际中,单片机要对一个连续信号进行处理,必须要通过ADC采样把连续信号离散化。而离散化后的信号也被称为离散信号。很明显,离散信号与连续信号从时域的角度来说是不能完全等价的,这意味着单片机对离散信号分析的结果是不能完全代表连续信号的。要提高这个离散信号的代表性,我们采用的一个办法就是提高采样频率,采样频率越高,这个离散信号就越有代表性。但问题是,在工程中我们不可能无限度的提高采样频率以使离散信号等价于连续信号,那怎么解决这个问题呢。采样定理的作用就体现出来了,它说单片机的采样频率只要满足大于连续信号中各个周期波形中最高频率的两倍就可以使离散信号频谱特性保留连续信号的频谱特性,这样我们可以通过一些的方法把离散信号之间的间隙补上(信号内插)使得离散信号又恢复成原来的连续信号。这就像我们读一篇**时不需要记住**中的每一个字,只要记得**中的核心内容,通过核心的内容,我们也能恢复出这篇**讲了些什么东西。

举个例子,如果我们按照采样定理的要求,我们以采样频率为3000HZ对前面的1000HZ的余弦信号采样,这个离散信号对应的频谱特性如下所示。

clipboard555.png

我们可以看到,离散信号的频谱特性与连续信号的频谱特性是一致的。通过一些信号处理的办法我们是可以把这个离散信号恢复成原来1000HZ的连续信号的。因此,我们也可以说这个离散信号可以代表连续信号。

你可能会问,假如单片机的采样速度低于连续信号对应频谱中频率最大值2倍会出现什么。

如果我们使用1500HZ对这个1000HZ的信号的采样,其采样频率不满足采样定理,采样后离散信号的频谱特性如下。

clipboard666.png

可以看到,频谱特性图中不是1000HZ上有能量,而是500HZ上有能量,离散信号的频谱特性与连续信号的频谱特性不一样。这意味着离散信号无法表征原来1000HZ的信号,把这个离散信号恢复到时域的话,对应的波形是500HZ的余弦波,频率比原始连续信号减少了一半,如下图所示。

clipboard333.png

要注意的是,虽然离散信号的频谱特性以及对应的时域信号变化了,但是单片机每一个采样周期采到值依然在这个时域信号上的,变的只是这些离散点之间连续信号的形状。

总结来说,当采样频率不满足采样定理时,我们所获取的离散信号是无法表征原来的连续信号的。知道了采样定理的意思,在实际中,我们如何应用这个定理呢?是否任何对信号的采样都要满足采样定理的要求呢?我们分为三种情况来分析。

1、假如我们采样时需要分析时域信号的频谱特性,那么我们的采样频率就必须要满足采样定理的要求。

2、我们不需要分析时域信号的频谱,但是需要分析比如传感器输出电压与时间的关系。对于这种应用,我们分两种情况。

2.1、如果我们需要把握的输出电压随时间的变化的所有细节,那么采样频率就需要满足采样定理的要求。这是因为时域信号随时间变化的快慢以及幅度本质上还是由频谱中各个频率的信号决定的,因此这种情况与第一点是类似的,需要按照采样定理要求来对时域信号采样。在实际应用中,如果我们不知道时域信号的频谱中的最高频率是多少(这可能常常发生),我们可以通过示波器等仪器观察最短的相邻的波峰与波谷之间的时间间隔t0(半个周期)= Tmin/2,得到最小的周期Tmin = 2*t0,由此可以估算出频谱中最大的频率是多少。

2.2、如果我们需要把握的只是传感器的增长或者减少的趋势,比如一些气体传感器,他的输出电压就是随着气体浓度上升而缓慢上升,那么这种情况下我们就可以不考虑采样定理,因为只要我们知道波形的趋势而不需要知道波形的细节就能满足要求。

使用特权

评论回复
评分
参与人数 1威望 +3 收起 理由
红蛋大叔 + 3 很给力!

相关帖子

会笑的星星|  楼主 | 2019-12-31 14:40 | 显示全部楼层

使用特权

评论回复
chongdongchen| | 2020-1-2 11:17 | 显示全部楼层
楼主有心人,顶起

使用特权

评论回复
叶春勇| | 2020-1-3 11:16 | 显示全部楼层
星星点灯,照亮我们前程,讲的不错。

使用特权

评论回复
会笑的星星|  楼主 | 2020-1-3 11:53 | 显示全部楼层
叶春勇 发表于 2020-1-3 11:16
星星点灯,照亮我们前程,讲的不错。

,谢谢

使用特权

评论回复
红蛋大叔| | 2020-1-4 17:57 | 显示全部楼层
终于理解采样定理了

使用特权

评论回复
jjl3| | 2020-1-4 18:48 | 显示全部楼层
请教大侠一个问题,原来的系统是一个窄带信号,但载波的频率较高,为此,采样率也较高,因为目前mcu和dsp来不及算,就用的fpga做运算,现在为了降低硬件成本,打算用cic抽取滤波算法或者undersampling方式以降低对处理器的要求。由于对数字处理知识有限,不知道那一种方式更好一点,实现起来各有什么潜在的问题?

使用特权

评论回复
hayden0| | 2020-1-4 20:35 | 显示全部楼层
讲的太好了,听君一席话胜读十年书!

使用特权

评论回复
740071911| | 2020-1-7 14:12 | 显示全部楼层
顶一下

使用特权

评论回复
asdsfgwsafd| | 2020-1-10 09:23 | 显示全部楼层
没有最好的,只有最合适的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

31

主题

96

帖子

15

粉丝