谱分析中窗的选取

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了谱分析中窗的选取相关的知识,希望对你有一定的参考价值。

参考技术A

数字信号处理的主要数学工具是傅里叶变换,而傅里叶变换是研究整个时间域和频率域的关系。然而,当运用计算机实现工程测试信号处理时,不可能对无限长的信号进行测量和运算,而是取其有限的时间片段进行分析。 取用有限个数据,就是将信号进行加窗函数操作,也即信号数据截断的过程。 做法是从信号中截取一个时间片段,然后用观察的信号时间片段进行周期延拓处理,得到虚拟的无限长的信号,然后就可以对信号进行傅里叶变换、相关分析等数学处理。周期延拓后的信号与真实信号是不同的,下面从数学的角度来看这种处理带来的误差情况。设有余弦信号x(t)在时域分布为无限长(- ∞, ∞),将截断信号的谱XT(ω)与原始信号的谱X(ω)相比。可以发现截断后数据的谱线已与原始谱线不同,是两段振荡的连续谱。这表明原来的 信号被截断以后,其频谱发生了畸变,原来集中在f0处的能量被分散到两个较宽的频带中去了,这种现象称之为频谱能量泄漏。

信号截断以后产生的能量泄漏现象是必然的,因为窗函数w(t)是一个频带无限的函数,所以即使原信号x(t)是限带宽信号,而在截断以后也必然成为无限带宽的函数,即信号在频域的能量与分布被扩展了。又从采样定理可知,无论采样频率多高,只要信号一经截断,就不可避免地引起混叠,因此信号截断必然导致一些误差,这是信号分析中不容忽视的问题。

当进行离散傅立叶变换时,时域中的截断是必需的,因此泄漏效应也是离散傅立叶变换所固有的,必须进行抑制。可以通过窗函数加权抑制 DFT 的等效滤波器的振幅特性的副瓣,或用窗函数加权使有限长度的输入信号周期延拓后在边界上尽量减少不连续程度的方法实现。

如果增大截断长度T,即矩形窗口加宽,则窗谱W(ω)将被压缩变窄(π/T减小)。虽然理论上讲,其频谱范围仍为无限宽,但实际上中心频率以外的频率分量衰减较快,因而泄漏误差将减小。当窗口宽度T趋于无穷大时,则谱窗W(ω)将变为δ(ω)函数,而δ(ω)与X(ω)的卷积仍为H(ω),这说明,如果窗口无限宽,即不截断,就不存在泄漏误差。为了减少频谱能量泄漏,可采用不同的截取函数对信号进行截断,截断函数称为窗函数,简称为窗。泄漏与窗函数频谱的两侧旁瓣有关,如果两侧p旁瓣的高度趋于零,而使能量相对集中在主瓣,就可以较为接近于真实的频谱,为此,在时间域中可采用不同的窗函数来截断信号。

实际应用的窗函数,可分为以下主要类型:

Why there are so many different window functions is because each of these have very different spectral properties and have different main lobe widths and side lobe amplitudes. There is no such thing as a free lunch: if you want good frequency resolution (main lobe is thin) , your side lobes become larger and vice versa. You can\'t have both. Often, the choice of window function is dependent on the specific needs and always boils down to making a compromise. ** This is a very good article that talks about using window functions ( http://www.utdallas.edu/~cpb021000/EE 4361/Great DSP Papers/Harris on Windows.pdf ).

矩形窗使用最多,习惯上不加窗就是使信号通过了矩形窗。这种窗的优点是主瓣比较集中,缺点是旁瓣较高,并有负旁瓣,导致变换中带进了高频干扰和泄漏,甚至出现负谱现象。

三角窗亦称费杰(Fejer)窗,是幂窗的一次方形式,三角窗与矩形窗比较,主瓣宽约等于矩形窗的两倍,但旁瓣小,而且无负旁瓣。

汉宁窗、海明窗和布莱克曼窗,都可以用一种通用的形式表示,这就是广义余弦窗。这些窗都是广义余弦窗的特例,汉宁窗又被称为余弦平方窗或升余弦窗,海明窗又被称为改进的升余弦窗,而布莱克曼窗又被称为二阶升余弦窗。采用这些窗可以有效地降低旁瓣的高度,但是同时会增加主瓣的宽度。

这些窗都是频率为 0、2π/(N–1)和 4π/(N–1)的余弦曲线的合成,其中 为窗的长度。可以采用下面的命令来生成这些窗:

其中,A、B、C 适用于自己定义的常数。根据它们取值的不同,可以形成不同的窗函数:
● 布莱克曼窗 Blackman A=0.5,B=0.5,C=0.08;
● 汉宁窗 Hanning A=0.5,B=0.5,C=0;
● 海明窗 Hamming A=0.54,B=0.54,C=0;

汉宁(Hanning)窗又称升余弦窗,汉宁窗可以看作是3个矩形时间窗的频谱之和, 它可以使用旁瓣互相抵消,消去高频干扰和漏能。 汉宁窗与矩形窗的谱图对比,可以看出,汉宁窗主瓣加宽(宽度为8pi/N)并降低,旁瓣则显著减小。第一个旁瓣衰减一32dB,而矩形窗第一个旁瓣衰减-13dB。此外,汉宁窗的旁瓣衰减速度也较快,约为60dB/10oct,而矩形窗为20dB/10oct。由以上比较可知, 从减小泄漏观点出发,汉宁窗优于矩形窗。但汉宁窗主瓣加宽,相当于分析带宽加宽,频率分辨力下降。

海明(Hamming)窗也是余弦窗的一种,又称改进的升余弦窗,海明窗与汉宁窗都是余弦窗,只是加权系数不同。海明窗加权的系数能使旁瓣达到更小。分析表明, 海明窗和汉宁窗函数的主瓣宽度是一样大,第一旁瓣衰减为-41dB 。海明窗的频谱也是由 3个矩形时窗的频谱合成,但其 旁瓣衰减速度为20dB/10oct,这比汉宁窗衰减速度慢 。海明窗与汉宁窗都是很有用的窗函数。

是一种指数窗, 高斯窗谱无负的旁瓣,第一旁瓣衰减达一55dB。高斯窗谱的主瓣较宽,故而频率分辨力低。 高斯窗函数常 被用来截断一些非周期信号,如指数衰减信号等

除了以上几种常用窗函数以外,尚有多种窗函数,如平顶窗、帕仁(Parzen)窗、布拉克曼(Blackman)窗、凯塞(kaiser)窗等。

如果在测试中可以保证不会有泄露的发生,则不需要用任何的窗函数。但是如同刚刚讨论的那样,这种情况 只是发生在时间足够长的瞬态捕捉和一帧数据中正好包含信号整周期的情况

对于窗函数的选择,应考虑被分析信号的性质与处理要求。

@bartlett - Bartlett window.
@barthannwin - Modified Bartlett-Hanning window.
@blackman - Blackman window.
@blackmanharris - Minimum 4-term Blackman-Harris window.
@bohmanwin - Bohman window.
@chebwin - Chebyshev window.
@flattopwin - Flat Top window.
@gausswin - Gaussian window.
@hamming - Hamming window.
@hann - Hann window.
@kaiser - Kaiser window.
@nuttallwin - Nuttall defined minimum 4-term Blackman-Harris window.
@parzenwin - Parzen (de la Valle-Poussin) window.
@rectwin - Rectangular window.
@tukeywin - Tukey window.
@triang - Triangular window.

when you use a window function, you have less information at the tapered ends. So, one way to fix that, is to use sliding windows with an overlap as shown below. The idea is that when put together, they approximate the original sequence as best as possible (i.e., the lower figure should be as close to a flat value of 1 as possible). Typical overlap values vary between 33% to 50%, depending on the application.

You get a cleaner estimate if you use overlap. That is to say, the larger the overlap, the more blurred the spectrogram will look because the segments will be overlapped to a greater degree. The smaller the overlap the more "blocky" the spectrogram will appear because each Fourier transform uses less and less common waveform samples.
You can also observe the trade-off between main lobe width and side lobe amplitude that I mentioned earlier. Hanning has a thinner main lobe (prominent line along the skew diagonal), resulting in better frequency resolution, but has leaky sidelobes, seen by the bright colors outside. Blackwell-Harris, on the other hand, has a fatter main lobe (thicker diagonal line), but less spectral leakage, evidenced by the uniformly low (blue) outer region.

PS
The non-stationarity of the signal (where statistics are a function of time, Say mean, among other statistics, is a function of time) implies that you can only assume that the statistics of the signal are constant over short periods of time. There is no way of arriving at such a period of time (for which the statistics of the signal are constant) exactly and hence it is mostly guess work and fine-tuning. Both these methods above are short-time methods of operating on signals.

Say that your signal is non-stationary. Also assume that it is stationary only for about 10ms or so. To reliably measure statistics like PSD or energy, you need to measure these statistics 10ms at a time. The window-ing function is what you multiply the signal with to isolate that 10ms of a signal, on which you will be computing PSD etc.. So now you need to traverse the length of the signal. You need a shifting window (to window the entire signal 10ms at a time). Overlapping the windows gives you a more reliable estimate of the statistics.

You can imagine it like this:1. Take the first 10ms of the signal.2. Window it with the windowing function.3. Compute statistic only on this 10ms portion.4. Move the window by 5ms (assume length of overlap).5. Window the signal again.

PSS

Usually make the length of the fft (third argument to pwelch) the same as the window length. The only case you want to have this different is when you use zero-padding , which has limited use.

If you use it like this, there are a few rules to remember:

https://www.zhihu.com/question/50402321/answer/144988327
关于加窗后的频谱修正,请参考《 简单总结FFT变换的幅值和能量校正 》
加窗函数的FIR滤波器长度的确定 http://www.ilovematlab.cn/thread-37120-1-1.html
http://blog.sina.com.cn/s/blog_6fb8aa0d0102v274.html

有时会出现这样的奇怪情况,目前无解

https://www.zhihu.com/question/65862090

噪声参考( http://blog.csdn.net/u010565765/article/details/70770429?locationNum=10&fps=1 )

随机过程 3 - 随机过程的频域分析1 - 功率谱

随机过程的频域分析

文章目录

1. 什么是谱

  所谓的谱,就是把一个复杂的系统,按照某种指标进行分解。常见的谱就比如

  • 频谱:分解的指标是频率,信号在每一个频率上强度的大小
  • 光谱:分解的指标是光的波长,光在每一个波长上分量的大小
  • 抗菌谱:广谱/窄谱,是指能够对抗的细菌种类

  我们这里的谱针对的是随机信号/随机过程

  接下来,我们要解决两个问题

  • 确定信号中已经有了谱的概念,随机信号的概念是否可以直接搬过来呢?
  • 如果不能直接搬过来,要做哪些工作呢?

2. 确定信号的频谱

  我们先对确定信号的谱进行一个回顾。

2.1 周期信号的频谱

  我们先假设确定信号具有周期性

Period T X ( t + T ) = X ( t ) ∀ t \\textPeriod T \\\\ X(t+T) = X(t) \\quad \\forall t Period TX(t+T)=X(t)t

  周期信号可以做傅里叶级数展开。但是注意,一旦谈到傅里叶级数展开,就一定要规定区间。不谈区间的傅里叶级数展开都是耍流氓。因为这个傅里叶展开只在一个周期内是有效的。如果超出这个周期,就是周期性延拓了。

X ( t ) = ∑ k = − ∞ + ∞ α k e x p ( j 2 k π T t )  (Fourier Series) t ∈ [ − T 2 , T 2 ] X(t) = \\sum_k=- \\infty^+\\infty \\alpha_k exp(j\\frac2k\\piTt) \\quad \\text (Fourier Series) \\\\ t \\in [-\\fracT2,\\fracT2] X(t)=k=+αkexp(jT2kπt) (Fourier Series)t[2T,2T]
  我们对傅里叶级数展开具有两个认识

  第一,傅里叶级数展开是一种正交展开,因为傅里叶级数的基是有正交性的。这种正交性一定是体现在某一个区间上的。在这个区间上,基函数正交。基函数的内积如下

1 T ∫ − T 2 T 2 e x p ( j 2 k π T t ) e x p ( − j 2 m π T t ) d t = δ k m \\frac1T \\int_-\\fracT2^\\fracT2 exp(j\\frac2k\\piTt)exp(-j\\frac2m\\piTt)dt = \\delta_km T12T2Texp(jT2kπt)exp(jT2mπt)dt=δkm

  因为是正交的,这个展开的系数也非常好求,只要对傅里叶级数做内积,就能得到系数

α k = 1 T ∫ − T 2 T 2 X ( t ) e x p ( − j 2 k π T t ) d t \\alpha_k = \\frac1T\\int_-\\fracT2^\\fracT2 X(t)exp(-j\\frac2k\\piTt)dt αk=T12T2TX(t)exp(jT2kπt)dt

  第二个认识,这里1/T有专门的说法,叫做基频。周期函数并非在每一个位置都有能量,只有在基频整数倍的位置上,才有能量,因此,周期函数谱,被称为离散谱

2 π T o r 1 T  BaseBand Frequency Discrete Spectrum \\frac2\\piT\\quad or\\quad \\frac1T \\text BaseBand Frequency \\\\ \\textDiscrete Spectrum T2πorT1 BaseBand FrequencyDiscrete Spectrum

2.2 非周期信号的频谱

  我们在周期信号的基础上,对我们的认识继续延伸

  也就是从周期信号延伸到非周期信号。就是令T趋近于无穷大。一旦周期函数的周期趋近于无穷大,也就变成了非周期函数

  我们来看一下,从周期函数变化到非周期函数,到底有哪些特性发生了变化

  我们把周期信号的系数用积分的形式进行代入

P e r i o d i c → N o n − P e r i o d i c T → ∞ X ( t ) = ∑ k = − ∞ + ∞ ( 1 T ∫ − T 2 + T 2 X ( s ) e x p ( − j 2 k π T s ) d s ) e x p ( j 2 k π T t ) [ − T 2 , − T 2 ] Periodic \\rightarrow Non-Periodic \\\\ T \\rightarrow \\infty X(t) = \\sum_k=-\\infty^+\\infty(\\frac1T \\int_-\\fracT2^+\\fracT2 X(s)exp(-j\\frac2k\\piTs)ds )exp(j\\frac2k\\piTt) \\quad\\quad [-\\fracT2,-\\fracT2] PeriodicNonPeriodicTX(t)=k=+(T12T+2TX(s)exp(jT2kπs)ds)exp(jT2kπt)[2T,2T]

  我们可以对非周期函数的傅里叶级数展开进行变换

X ( t ) = 1 2 π ∑ k = − ∞ + ∞ ( ∫ − T 2 + T 2 X ( s ) e x p ( − j 2 k π T s ) d s ) e x p ( j 2 k π T t ) 2 π T [ − T 2 , − T 2 ] X(t) = \\frac12\\pi\\sum_k=-\\infty^+\\infty(\\int_-\\fracT2^+\\fracT2 X(s)exp(-j\\frac2k\\piTs)ds )exp(j\\frac2k\\piTt)\\frac2\\piT \\quad\\quad [-\\fracT2,-\\fracT2] X(t)=2π1k=+(2T+2TX(s)exp(jT2kπs)ds)exp(jT2kπt)T2π[2T,以上是关于谱分析中窗的选取的主要内容,如果未能解决你的问题,请参考以下文章

采样频率采样点数分辨率谱线数

现代信号处理 15 - 谱分析基础和周期图谱分析

随机过程 3 - 随机过程的频域分析1 - 功率谱

随机过程 3 - 随机过程的频域分析1 - 功率谱

现代信号处理 19 -谱分析的参数化方法

现代信号处理 19 -谱分析的参数化方法