分享

(7)频谱泄漏与采样、补零

 quasiceo 2016-05-07

频谱泄漏与采样、补零

(2013-02-26 10:23:18)

分类: 日常学习
2010年11月2日 关于频谱泄漏 2010-11-02 22:48 (分类:学习)

老板说我设计的DDC的最后出来的频谱有旁瓣,让人看上去不是单一正弦信号。于是,开始找原因了。结果发现是无限连续信号在进行DFT时,由于截取效应所产生的频谱泄露。解决方案:

1)加个窗函数。于是,我加上了hamming窗,旁瓣是消息了,但是加窗相当于加了个滤波器,对最后的指标估计有影响。

2)用连续傅里叶变换来做频谱。这个方法没怎么尝试,原因是matlab中,fourier()这个函数不会用。等有空的时候再学习下吧。

3)修改采样点数,其实修改的是采样时间,但采样频率定下来,所以两者相当于等价了。修改采样点数被采样频率整除。

今天的经历让我重视了采样点数这个参量。以前老是忽视它,之前,滤波出来的是方波,还以为程序设计错误了,结果是采样点太少了。所以么,以后思维不能太窄,多想想,多试试。

明天争取解决,滤波器组系数级联问题。

PS:

在实际问题中遇到的离散时间序列x(n)通常是无限长序列,因而处理这个序列的时候需要将它截短。截短相当于将序列乘以窗函数w(n)。根据频域卷积定理,时域中x(n)和w(n)相乘对应于频域中它们的离散傅立叶变换X(jw)和W(jw)的卷积。   

因此,x(n)截矩后的频谱不同于它以前的频谱。为了减小频谱“泄露”的影响,往往在FFT处理中采用加权技术,典型的加权序列有Hanning、Blackman、Gaussian等窗序列。此外,增加窗序列的长度也可以减少频谱“泄露”。   

小说几句。时域上乘上窗函数,相当对于频率为fs的正弦序列,它的频谱应该只是在fs处有离散谱。但是,在利用DFT求它的频谱做了截短,结果使信号的频谱不只是在fs处有离散谱,而是在以fs为中心的频带范围内都有谱线出现,它们可以理解为是从fs频率上“泄露”出去的,这种现象称为频谱“泄露”。

于频域进行卷积。长度为无穷长的常数窗函数,频域为delta函数,卷积后的结果和原来一样。如果是有限矩形窗,频域是Sa函数,旁瓣电平起伏大,和原频谱卷积完,会产生较大的失真。   窗的频谱,越像delta函数(主瓣越窄,旁瓣越小),频谱的还原度越高。于是,就产生了那么多bt的窗函数。   

加窗就不可避免频谱泄漏,典型的加权序列有Hanning、Blackman、Gaussian等窗序列主要是为了降低旁瓣,对于降低频谱泄漏效果远不如增加窗序列的长度明显吧。   

周期信号加窗后做DFT仍然有可能引起频谱泄露,设fs为采样频率,N为采样序列长度,分析频率为:m*fs/N(m=0,1....),以cos函数为例,设其频率为f0,如果 f0不=m*fs/N,就会引起除f0以外的其他m*fs/N点为非零值,即出现了泄露。

频谱泄露与分辨力

这里先说明一点,窗函数的大小是由采样时间决定,因为你要采多长时间,就相当于你用多长的窗函数来截断原来的函数,就决定了你窗函数的长短(时间),当然,采很多点,而实际用很少点也行,不过我们只考虑前面那种情况。注意,窗函数的大小,是由采样时间决定的,而不是采样采样点数。

要做DFT必须对离散化后的信号进行截断,这对应着图(d)中的图(3)到图(5)的过程,这个过程在频域相当于频域函数与一个sa函数(这里以矩形窗为例)进行卷积,卷积的结果是实际频谱的展宽,这在图(d)中表现的不是很明显。如果原来的频谱是矩形的那么可以清楚的看到,这在所有的数字信号处理书上都能找到。由于频谱的扩散使得频谱失真。这种现象就是频谱泄露,就是有一部分能量跑到了其他的频率上去,而这些频率点相对于以前的频谱,能量是为零的。

由于频谱的泄露而产生了频谱分辨力的问题。

频谱分辨力指的是在时域将信号截断以后在频域对于其频谱峰值的分辨问题。

在图(d)中,信号函数的频谱只有一个峰值,这样不会存在频谱分辨力的问题。当原函数的频谱有两个峰值的时候,如果窗函数过于短便会出现频谱分辨力大小的问题。

下面通过仿真来说明。信号x(t)是由一个幅度为2的直流信号,两个正弦信号组成的,一个正弦信号的幅度为3,频率74Hz;另一个幅度为2.5,频率75Hz。我们对其进行的是128点的采样,这个信号如图(h)中第一个图所示。其 128点的DFT结果如图(h)中左下图所示。为了清楚起见,频谱图画的是包络而不是离散的点。我们可以明显的看到频谱图中只有一个峰值,而不能彼此分辨。所以此时频谱分辨力低。既然频谱分辨力是由截断造成的,那么如果我们使采样时间变长,则矩形窗的频谱函数主瓣会变窄,旁瓣变低,这样卷积的结果就有可能将两个峰值分辨,而不是两个峰值彼此淹没。对于同一个x(t),采样频率不变,采样点数增加到512点。此时信号如图(h)中右上图所示,其DFT结果及其放大图如图(h)中右下图和图(i)所示。可以看到由于采样时间的增长,两个频率峰值都分辨出来了。前面我们说过补零的用处,补零只是对已经截断得到的频谱进行细化而更加逼近,逼近的是已经截断而得到的频谱。而分辨力是由于频谱截断这个过程造成的,所以补零对于频谱分辨力是没有用的。另外,这里说的是增加采样时间(采样持续的时间),而不是采样点数。因为采样时间才决定窗函数的宽度,而采样点数则不能,因为采样点数还和采样频率有关,采样点数增多采样时间不一定增大,它们之间并没有绝对的关系。





下面对采样频率的高低对DFT结果的影响进行分析。

采样频率增加,则频谱的周期增加。当采样时间不变时,频谱分辨力并不会有改变,因为采样频率增加不改变窗的大小,对每一个周期的频谱卷积的结果基本是不变的。(因为,如果对类似于图(g)中图(2)的频谱,它的拖尾很长,频谱周期的增大时,两相邻周期之间的频谱拖尾混叠变小,相对于以前采样频率时,有微小的变化,所以卷积结果会有细微的不同。若原来的频谱比较理想,使得在采样频率没有改变以前的频谱就没有混叠,那么采样频率增大以后也就不会有混叠,这样采样频率改变的前后的频谱卷积的结果应该使完全一样的。)

因为采样时间不变,所以采样点数随采样频率等比例增加,即 fs/N是不变的,所以频谱分辨率也是不变的。

采样频率的增加只是使周期延拓的周期增加而已,虽然采样点数增加,但是频谱分辨力和分辨力都是不变的。仿真结果如下。图(j)上图对应的是128点采样速率,下图对应的是256点采样频率,采样时间一样。图(k)是两种情况下的DFT结果,红色是256点时的结果,蓝色是128点时的结果。可以看出,采样频率提高,频谱分辨率是不变的,而且形状也不变,即分辨力也是不变的,只是周期变大了而已。

=====================================

采样频率增加可以消除混叠。增加采样时间可以使窗频谱变窄,消除截断造成的分辨率下降。补零只能细化截断后的频谱,可以用来做插值但无法增加频谱分辨率。

=======================================

补零对频谱的影响: 进行zero padding只是增加了数据的长度,而不是原信号的长度。就好比本来信号是一个周期的余弦信号,如果又给它补了9个周期长度的0,那么信号并不是10个周期的余弦信号,而是一个周期的余弦加一串0,补的0并没有带来新的信息。其实zero padding等价于频域的sinc函数内插,而这个sinc函数的形状(主瓣宽度)是由补0前的信号长度决定的,补0的作用只是细化了这个sinc函数,并没有改变其主瓣宽度。而频率分辨率的含义是两个频率不同的信号在频率上可分,也就要求它们不能落到一个sinc函数的主瓣上。所以,如果待分析的两个信号频率接近,而时域长度又较短,那么在频域上它们就落在一个sinc主瓣内了,补再多的0也是无济于事的

怎么理解?

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多