2016-09-15 129 views
1

我正在使用一些加速度计数据,并且有人建议我做一些窗口来隔离信号中的不同事件。与大多数情况不同的是,MATLAB中的窗口记录功能很差,我希望能够实现窗口化的一些简单示例(或建议阅读和链接)。我还想知道为什么要打开窗户,而不是将数据分成几个部分并分析各个框架。谢谢。在MATLAB中开窗信号

测试或事件的一个示例如下所示:enter image description here

我的初始数据是这样的:以上所示的单尖峰扩大。

也可以建议我如何使用MATLAB窗口第一个图。

enter image description here

回答

1

窗更多的是信号处理理论不是编程的领域,但它理解的FFT的输出时,那么也许值得解释更详细一点是非常重要的。基本上,当你截断一个信号(例如以块的形式处理它)时,你正在以一种相当令人惊讶的方式改变频域。您最终使用“窗口”函数来卷积(即拖尾)所有频率项。如果除了截断之外什么都不做,那么这个函数就是sin()/ sin()。会发生什么情况是,这会将原始信号的频率内容扩展到整个频谱上,并且如果存在主要分量,则其他所有内容都会被掩盖。块越短,效果越差,因为窗口在频域中变得更加粗壮。

使用汉明,汉宁或布莱克曼等形状窗口进行开窗会改变频域响应,使涂抹更加局限于原始信号。由此产生的频域更清晰。

对数据进行分析,X块,那么你应该做的是什么

transform=fft(x.*hanning(length(x))); 

其结果将是复杂的,您可以用plot(20*log10(abs(transform)))

显示数学分析看https://cnx.org/contents/[email protected]/Spectrum-Analysis-Using-the-Di

如果你想要一个实际的实际操作经验的窗口做什么,请尝试https://cnx.org/contents/[email protected]/Spectrum-Analyzer-MATLAB-Exerc

+0

感谢您的详细回复@Dave。我正在使用的一些信号由许多彼此独立的短离散事件组成。在这种情况下,可以将信号分成每个单个事件并计算每个事件的FFT。 – Michael

+0

如果事件很短,那么您肯定需要窗口数据!短序列导致宽窗口,单独截断导致最坏的可能拖尾。尝试不同的窗口是一件简单的事情 - 只需用更合适的东西替换“汉明”。尽管如此,您需要小心一点,因为窗口功能越强(离频谱分量较远的频率处的模糊程度越低),则主要分量越宽,这意味着频域中的分辨率下降。你什么也没得到! – Dave

+0

事件很短,但事件之间的信号完全消失。这只是我们记录数据的方式。我们不再为每个事件或测试记录一个信号,而是在进行下一次测试之前不断记录并允许所有瞬态信号死亡。我将在原始问题中发布一个例子。 – Michael