深入浅出的理解频谱泄露
- 浏览次数:27343次
- 发布时间:2014/3/18 11:02:28
- 作者:AnyWay中国
这个世界上有很多概念,本来非常简单,可是,被一些学者一解释,就变得复杂了。
为了明白一个很容易明白的概念,你需要先明白许多依据你的知识结构根本没法明白的概念,于是,你只能望而却步!
频谱泄露就是这样的一个概念。
一什么是频谱泄露?
频谱泄露与
傅里叶变换尤其是离散时间傅里叶变换有关,对于频谱泄露,通常的解释是这样的:
信号为无限长序列,运算需要截取其中一部分(截断),于是需要加窗函数,加了窗函数相当于时域相乘,于是相当于频域卷积,于是频谱中除了本来该有的主瓣之外,还会出现本不该有的旁瓣,这就是频谱泄露!为了减弱频谱泄露,可以采用加权的窗函数,加权的窗函数包括平顶窗、汉宁窗、高斯窗等等。而未加权的矩形窗泄露最为严重。
为了说明频谱泄露,一下子引入了时域、频域、窗函数、卷积、主瓣、旁瓣等等抽象的概念。
频谱泄露有这么复杂吗?频谱泄露到底是什么意思?
一句话,频谱泄露就是分析结果中,出现了本来没有的频率分量。比如说,50Hz的纯正弦波,本来只有一种频率分量,分析结果却包含了与50Hz频率相近的其它频率分量。
更简单的描述是:分析结果与实际不一致!
二为何会出现频谱泄露?
我们把无限长序列分为两种情况:
1无限长序列为非周期信号
非周期的无限长序列,任意截取一段有限长的序列,都不能代表实际信号,分析结果当然与实际信号不一致!
道理是显而易见的:
你分析的信号根本就不能代表实际信号,结果当然也与实际信号不一致,更准确的说法,结果是错误的,造成错误结果的原因是分析方法是错误的!
2无限长序列为周期信号
对于周期性的无限长序列,假设截取的是正好一个或整数个信号周期的序列,这个有限长序列就可以代表原无限长序列,假设分析的方法得当的话,分析结果应该与实际信号一致!
这里,我们作了两个假设,第二个假设是伟大的傅里叶作出的伟大论断!是成立的!
如果第一个假设也成立,是不是就不会发生频谱泄露呢?
答案是肯定的!
从无限长序列中截取一个或整数个周期,我们称为整周期截断,反之,称为非整周期截断。
整周期截断,不会造成频谱泄露!
非整周期截断,必然造成频谱泄露!
换言之:
整周期截断是不发生频谱泄露的充分且必要条件!或 非整周期截断是发生频谱泄露的充分且必要条件!
为什么非整周期截断就会发生频谱泄露呢?且看下图:
图1.从无限长序列中截取有限长序列
图1所示为无限长周期信号,我们截取了其中一段(有限长序列),这一段不是一个完整周期。傅里叶变换仍然将信号当成无限长序列,傅里叶变换又是如何将其当成无限长呢?
这里采用了一种被称为周期延拓的技术,所谓周期延拓,就是把截取的有限长序列当成是无限长序列的一个周期,然后不断的复制,得到一个新的无限长序列。
图2.有限长序列经过周期延拓构建的新的无限长序列
如图2所示,从图1所示无限长序列中截取的有限长序列,经过周期延拓后,得到一个新的无限长序列,显然,这个新的序列与原序列是不一样的!
图2的信号与图1的信号不同,分析得到的频谱自然也不同!不同之处在于,图1是单一频率信号,只有一根谱线,而图2中,除了图1信号包含的这根谱线(不妨称为主谱线)外,出现了其它频率的谱线,通常,这些谱线要比主谱线短很多,如果把这些原信号不包含的谱线理解为是主谱线泄露出来的,那么,这种现象就被称为频谱泄露!
采用合适的窗函数(常见的窗函数有汉宁窗、三角窗、海明窗和高斯窗等等)可以一定程度上抑制频谱泄露。
窗函数的概念,非常抽象,然而,窗函数的作用,是非常有限的,我们可以这样理解:
如图2中的信号,由于突然截断造成周期延拓时两个周期相邻处出现了信号突变,这种突变,代表的是信号包含了高次谐波。加上合适的歘窗函数,可以把这个突变变得圆滑一些,从而抑制高次谐波。
但是,我们也可以这样想,假设图2的信号就是真实信号,那么,加上这样的窗函数反而得到了错误的结果!
因此,避免频谱泄露的根本还是要从源头出发,尽可能做到准确的整周期截断,这种情况下,窗函数可以选择最简单的矩形窗。
三正确处理频谱泄露
造成频谱泄露的原因在于傅里叶变换的输入信号不能准确的、完整的代表被分析信号,输出产生的一种误差,这种误差可以通过加合适的窗函数或延长时间窗得以改善,当输入信号的不完整性达到一定程度,输出是一种错误的结果。
对于周期信号,整周期截断是不发生频谱泄露的充分且必要条件,抑制频谱泄露应该从源头抓起,尽可能进行整周期截断。
这一点,从相关标准的规定也可以得到佐证。电能质量相关的IEC标准(IEC61000-4-7)和国家标准都明确规定,谐波测量仪器的傅里叶时间窗为10个基波周期,且采用矩形窗。即:标准强调通过提高仪器的同步性减小频谱泄露,而不推荐采用各种效果不可控的窗函数抑制频谱泄露。