from
1、为什么要加窗
DFT与FFT算法当中,实际上作了周期性延拓。这是因为计算机进行处理的数据是有限时间段内的,而傅立叶变换要求的是时间从负无穷到正无穷的积分,因此必需要做延拓。这里就涉及到了谱泄漏问题。如图:假定信号是正弦波,如果信号不是整数个波长的话,则延拓的结果将使原本光滑的曲线出现奇点。如下图:
时域中的突变点在傅立叶变换下会对频谱有明显的影响,即谱泄漏(Spectral leakage)。为了消除这种Spectral leakage,我们需要引入windowing算法。谱泄漏对频谱图的影响的大小取决于时域图中边界上的不连续程度。加窗方法可以将这种不连续最小化。在matlab中,加窗函数的指令为Periodogram,如果只输入变量,则默认使用矩形窗函数。对于各种不同的窗函数,有专门的函数指令来生成,比如较为常用的哈明窗:hamming。
总之,加窗不仅可以实现时频局域化(即修正FFT全局频率的弊端),还可以修正谱泄漏问题。
2、什么是加窗
关于加窗,简单地讲,就是在傅里叶积分中,将原来的被积函数与特定的窗函数做积,这样的结果可以起到时频局域化的效果。下面是一个简单的例子:
PS. MATLAB 信号处理工具箱
在matlab中,有专门的信号处理工具箱:signal processing toolbox 。可以像其他工具箱一样在start中打开,也可以使用命令“sptool”。
在信号处理工具箱中,主要分三部分:信号导入、滤波处理、谱分析。 信号导入部分中,我们可以选择工作空间内的变量作为信号导入,并且在整个信号中截取一段来分析。更重要的是,sp工具箱还可以按声学规律将这段信号“读”出来。因此,在处理声音信号的时候,我们就可以将原信号换到频域,然后滤波,再听听看处理后的信号的发音如何,并可以籍此作一些进一步的分析判断。