【DSP】由“采样率、采样最小记录时间的一点直观认识”所感

时间:2024-05-21 16:31:02

最近看了“彬彬有礼”的一篇文章“数字信号处理中:采样率、采样最小记录时间的一点直观认识”后,疑惑很多,因为“彬彬有礼”的解释并没有给我带来“直观”的感受,反而让我“懵”了,于是决定根据自己所查到的资料,谈谈自己粗浅的认识,请大家指正。

 

一、先把“彬彬有礼”的文章复制过来:

 

题目: 数字信号处理中:采样率、采样最小记录时间的一点直观认识

首先上一幅截图,来自姚天任的《数字信号处理(第二版)》,华科出版社,第92页,写的很不错的一本书。

 

【DSP】由“采样率、采样最小记录时间的一点直观认识”所感

 

1、文中提到了频率分频率等于最小记录长度的倒数,这个可以这样直观的来认识:假设你采样的数据时长为tp,那么按照上述理论,频率分辨率是F=1/tp,这是因为你采样的数据只有tp长,对于频率小于F的信号,它的周期将大于tp,也就是说采样的数据根本就没有采完频率小于F的信号的一个周期试想:你告诉计算机的只有信号的一个周期中的一部分信息,计算机根本不知道后面这个信号未来如何变化,对于计算机来说,由于它未得到整周期的信号,它还以为这是一个非周期信号呢!所以它肯定就不能分辨出这些周期大于tp的信号嘛……

2、对于采样率的问题,文中提到为了避免频谱混叠,要求采样率fs>2f0,这个可以这样来理解,fs>f0的结果是每个周期中采两个或以上的点,也就是说只有保证信号每个周期采两个点才能确定这个信号。试想,若你的采样率为fs,信号频率大于fs的话,那么在信号的一个周期中可能都不会采到一个点,你让计算机怎么去判断它的周期呢?

3、关于最后一个公式(3.93),其实就说明白了一个道理:若你想让频率分辨率达到F,那你采样的记录时间就得至少为tp=1/F,这样才能保证采完至少一个周期的频率为F的信号信息,这是硬性要求,不能商量;然后就是采样率的问题,你采样率高了,tp时间内的采样点自然就多了,这个很简单吧,而且为了保证频率不混叠,你就得保证对于信号的最高频率成份每个周期至少采两个点,因此采样率至少为fs=2f0,采样率的最小值有了,采样的记录时间是硬性要求,下限也有了,那么自然就得到了N的下限,即当采样记录时间最小时,而采样频率也最小时,这个时候采样点是最少的N=tp*fs=2f0/F 

<原文end>

 

 

二、补充点小知识:

 

在介绍相关知识前,先补充几个知识点,或者索性把他们记住以后直接用就好了。

1、时域对应频域,离散对应周期,连续对应非周期,非周期对应连续,周期对应离散。所以有:

连续周期信号的频谱是非周期离散的;

连续非周期信号的频谱是非周期连续的;

离散非周期信号的频谱是周期连续的;

离散周期信号的频谱是周期离散的。

 

2、主瓣和旁瓣是什么?

主瓣通常是指Sa(x)=sinx/x函数或与之有关函数图像中(例如频谱)中从负到正的第一个完整的瓣,旁瓣是指后面比它低矮的瓣。

 

3、频谱泄露是什么?

截取信号中的一部分需要加窗函数,加窗函数相当于在时域相乘,在频域卷积,频谱中除了主瓣以外,还出现了不该有的旁瓣,这句是频谱泄露。

说白了就是,频谱中出现了不该有的频率分量,比如50HZ的纯正弦波,本来只有一种频率分量,分析结果中却出现了与50HZ相近的频率分量。

再换一种方式解释就是:分析结果与实际不一致。

避免频谱泄露的方法:对于周期信号进行整周期截断。

减小频谱泄露:频谱泄露的原因在于傅里叶变换的输入信号不能准确的、完整的代表被分析的信号,因此输出就会产生误差。减弱频谱泄露的方法就是:加合适的窗函数或者延长时间窗。

从减小频谱泄露的角度出发,合适的窗函数有哪些呢?

原则是:旁瓣尽可能小,主瓣的宽度尽可能窄。虽然在频域压低旁瓣的高度会伴随着主瓣的宽度增加,但因为旁瓣的泄露是主要的,主瓣的泄露是次要的,所以我们尽量选的窗函数满足主瓣衰减率大,主瓣宽度小,旁瓣高度小,最好没有负的旁瓣,,另外窗的长度尽可能长。

1)汉宁窗:又叫升余弦窗,相对于矩形窗来说,汉宁窗的旁瓣显著减小,但是主瓣的宽度显著增加,所以频率分辨率有下降。

2)海明窗:在减小旁瓣幅值方面比汉宁窗更好,主瓣的衰减率比汉宁窗快。缺点是旁瓣的衰减率不如汉宁窗。

 

三、怎么理解“彬彬有礼”的那三句话呢?

1、“频率分辨率等于最小记录长度的倒数,即tp=1/F”怎么理解?

 

这里所谓的信号最小记录长度tp就是时域采样时间总长度,等于一个记录长度中的采样点数N*采样周期T。

我个人觉得“彬彬有礼”在解释这句话时说的“采样的数据只有tp长,对于频率小于F的信号,它的周期将大于tp,也就是说采样的数据根本就没有采完频率小于F的信号的一个周期”有问题:为什么频率小于F的信号周期会大于tp呢?

因为默认了tp=1/F这个结论, 就是说“彬彬有礼”在证明这句话的过程中又用到了这句话,这个是不对的吧,因为你要证明它那就不能把它当结论。

关于这句话,郑君里《信号与系统 上》在P113给出了证明和图,但是要从直观上理解,我觉得不太好理解,大概意思:

因为离散傅里叶变换前和变换后得到的序列长度不变,时域有N个点,那在频域的(0,fs)也有N个点(fs是采样频率),所以频率分辨率就是fs/N=1/NTs=1/tp。

另外可以结合“时域抽样定理中,最低抽样率fs=2fm,最大抽样间隔Ts=1/2fm=1/fs”理解。

 

2、“fs>=2fm”怎么理解?

我不太理解“彬彬有礼”说的“fs>f0的结果是每个周期中采两个或以上的点”这句话:1)fs不是大于2f0吗?这里怎么变成了大于f0了?  2)我不太懂为什么fs>f0代表两个周期采样至少两个点呢?或者是说f0最小为1,所以fs>f0的话就代表fs>1,就代表了最少要取两个点了,如果这样解释通的话,那定理是大于等于两倍最大值,而不是大于一倍最大值。

其实这个很好理解,因为在时域离散的话,在频域肯定是周期的,所谓周期就是以fs的大小进行平移拓展,为了使平移后和平移前的波形不重叠,fs肯定要大于两倍2fm。(原频谱波形是对称的)

 

3、“N>=2f0/F”怎么理解?

 

这个问题“彬彬有礼”的直观解释我能理解。简单说一下:

最低采样频率是2f0,作为分子它依然是最小值,另外F虽然代表的是频率分辨率,但是F的值越小,表示频率分辨率越大,1/F代表的是最小记录长度,作为分子依然是最小,此时的F值最大,代表的频率分辨率最低,综合起来看2f0/F就是下限。

由F=1/tp还需要知道的是:

连续信号的信号长度tp越长(时间分辨率越低),频率分辨率越好,怎么理解呢?不妨这样想: 
长度为T的一段信号因为是连续的,比较难想象,我们不妨将它转换为离散的,也就是说我们将它看成N个点的一段信号。这段信号的N越长,就意味着信号对应到频域上的点数越多,那fs/N自然是越小啦。

 

参考文献:

1. Rex_wyx的博文:频率分辨率

http://blog.****.net/rex_wyx/article/details/51813594