傅里叶滤波窗口选择(滤波器)

引言

最近在做信号处理相关的研究工作,由于并不是相关专业出身,进展缓慢。查阅了许多资料,资料越看越多,也获得了一些收获。现在以博文的形式记录下来与大家分享,博文内容蜻蜓点水,但都留下了引文出处,若需要可以进一步查看。

窗口函数(window function)

数字信号处理中通常是取其有限的时间片段进行分析,而不是对无限长的信号进行测量和运算。信号的截断产生了能量泄漏,而用 FFT 算法计算频谱又产生了栅栏效应,从原理上讲这两种误差都是不能消除的。在 FFT 分析中为了减少或消除频谱能量泄漏及栅栏效应,可采用不同的截取函数对信号进行截短,截短函数即窗口函数。

窗口函数(也称为变迹函数或渐变函数)是在某些选定间隔外都为零值的数学函数[1]。在典型应用中,窗口函数通常是非负、圆滑、钟形曲线,并要求该函数能够足够快的趋近零。窗口函数的应用包括信号的谱分析、修改、再合成,有限脉冲响应滤波器的设计,以及波束形成和天线设计。

谱泄漏对频谱图的影响的大小取决于时域图中边界上的不连续程度。加窗方法可以将这种不连续最小化。泄漏与窗口函数频谱的两侧旁瓣有关,对于窗口函数的选用总的原则是,要从保持最大信息和消除旁瓣的综合效果出发来考虑问题,尽可能使窗口函数频谱中的主瓣宽度应尽量窄,以获得较陡的过渡带;旁瓣衰减应尽量大,以提高阻带的衰减,但通常都不能同时满足这两个要求。频谱中的如果两侧瓣的高度趋于零,而使能量相对集中在主瓣,就可以较为接近于真实的频谱。不同的窗口函数对信号频谱的影响是不一样的,这主要是因为不同的窗口函数,产生泄漏的大小不一样,频率分辨能力也不一样。信号的加窗处理,关键问题是在于根据信号的性质和研究目的来选用窗口函数。表1 是几种常用的窗函数的比较。

1

名称 特点 应用
矩形窗(Rectangle) 矩形窗使用最多,习惯上不加窗就是使信号通过了矩形窗。这种窗的优点是主瓣比较集中,缺点是旁瓣较高,并有负旁瓣,导致变换中带进了高频干扰和泄漏,甚至出现负谱现象。频率识别精度最高,幅值识别精度最低,所以矩形窗不是一个理想的窗。 如果仅要求精确读出主瓣频率,而不考虑幅值精度,则可选用矩形窗,例如测量物体的自振频率等,也可以用在阶次分析中。
汉宁窗(Hanning) 又称升余弦窗。主瓣加宽并降低,旁瓣则显著减小,从减小泄漏观点出发,汉宁窗优于矩形窗.但汉宁窗主瓣加宽,相当于分析带宽加宽,频率分辨力下降。它与矩形窗相比,泄漏、波动都减小了,并且选择性也提高。 是很有用的窗函数。如果测试信号有多个频率分量,频谱表现的十分复杂,且测试的目的更多关注频率点而非能量的大小,需要选择汉宁窗。如果被测信号是随机或者未知的,选择汉宁窗。
海明窗(汉明窗)Hamming 与汉宁窗都是余弦窗,又称改进的升余弦窗,只是加权系数不同,使旁瓣达到更小。但其旁瓣衰减速度比汉宁窗衰减速度慢。 与汉明窗类似,也是很有用的窗函数。
平顶窗Flap Top 平顶窗在频域时的表现就象它的名称一样有非常小的通带波动。 由于在幅度上有较小的误差,所以这个窗可以用在校准上。
凯塞窗Kaiser 定义了一组可调的由零阶贝塞尔Bessel 函数构成的窗函数,通过调整参数β可以在主瓣宽度和旁瓣衰减之间自由选择它们的比重。对于某一长度的Kaiser 窗,给定β,则旁瓣高度也就固定了。
布莱克曼窗Blackman 二阶升余弦窗,主瓣宽,旁瓣比较低,但等效噪声带宽比汉宁窗要大一点,波动却小一点。频率识别精度最低,但幅值识别精度最高,有更好的选择性。 常用来检测两个频率相近幅度不同的信号。
高斯窗Gaussian 是一种指数窗。主瓣较宽,故而频率分辨力低;无负的旁瓣,第一旁瓣衰减达一55dB。常被用来截短一些非周期信号,如指数衰减信号等。 对于随时间按指数衰减的函数,可采用指数窗来提高信噪比。
三角窗(费杰窗)Fejer 是幂窗的一次方形式。与矩形窗比较,主瓣宽约等于矩形窗的两倍,但旁瓣小,而且无负旁瓣。 如果分析窄带信号,且有较强的干扰噪声,则应选用旁瓣幅度小的窗函数,如汉宁窗、三角窗等;
切比雪夫窗(Chebyshev) 在给定旁瓣高度下,Chebyshev窗的主瓣宽度最小,具有等波动性,也就是说,其所有的旁瓣都具有相等的高度。

频谱(frequency spectral)

时间序列 s(t) 的傅里叶变换结果是频率 f 的复数函数 S(f) ,通常称为频谱。任何时间序列上的变化都可以用振幅表示,都有相应的频谱。例如:可见光、音符、无线电、甚至地球的自转。当以频谱的形式观察这些信号时,能够揭示这些信号的某些方面或产生它们的过程。
在物理学中,信号可能是波,如:电磁波、声波或机构的震动。信号的功率谱密度 powerspectraldensity(PSD) 是描述信号中的每单位频率对应功率的函数,功率谱密度常用单位为 W/Hz [3]。

谱泄漏(Spectral leakage)

频谱泄漏是由FFT算法中的一个假设导致的,即持续精确地重复时间记录,且时间记录中包含的信号在对应时间记录长度的间隔内呈周期性。若时间记录的周期数为非整数, 便违反该假设,导致频谱泄漏。另一种看法是,信号的非整数周期频率分量未与频谱频率线之一精确吻合[4]。

s(t) 线性时间变化操作生成一个由 H(f)S(f) 构成的新谱,这改变了 S(f) 非零值的幅度(振幅 or 幅值)和相角(振幅和相角计算在上篇博客中)。任何其它类型的操作都会可能产生被称为频谱泄漏的新频率组份。谱的产生是 S(f) 和另一个函数的卷积,这不可避免产生新的频率组份。“泄漏(leakage)”通常指的是窗口效应,即 s(t) 和窗口函数的乘积[2]。

引用

[1] https://en.wikipedia.org/wiki/Window_function#cite_note-1
[2] https://en.wikipedia.org/wiki/Spectral_leakage
[3] https://en.wikipedia.org/wiki/Spectral_density#Explanation
[4]http://www.ni.com/white-paper/4278/zhs/

你可能感兴趣的:(算法/方法)