我有一些定期采样的数据,看起来是正弦的,我想确定波的频率,为此,我获得了R并加载了TSA包,其中包含一个名为'periodogram‘的函数。
为了理解它是如何工作的,我创建了一些数据,如下所示:
x<-.0001*1:260这可以解释为260个样本,间隔为.0001秒
Frequency=80频率可以解释为80 be,因此每个波周期应该有大约125个点。
y<-sin(2*pi*Frequency*x)然后我会这样做:
foo=TSA::periodogram(y)在生成的周期图中,我希望在与我的数据对应的频率上看到一个急剧的尖峰-我确实看到了一个急剧的尖峰,但最大的“规范”值的频率是0.007407407,这与我的80 of的频率有什么关系?
我注意到有一个值为0.001069167的变量foo$ with,我也很难解释它。
如果有更好的方法来确定我的数据频率,我会感兴趣的-我使用R的经验仅限于一天。
发布于 2018-03-20 21:15:39
周期图是在不知道实际采样间隔的情况下从时间序列计算得出的。这导致频率被限制在归一化的[0,0.5]范围内。要获得考虑采样间隔的赫兹频率,只需乘以采样率即可。在您的例子中,当归一化频率为0.007407407,采样率为10,000 to时,得到的尖峰对应于~74 to的频率。
现在,这并不完全是80 of (原始音调频率),但您必须记住,周期图是频谱估计,其频率分辨率受到输入样本数量的限制。在您的示例中,您使用260个样本,因此频率分辨率约为10,000 on /260或~38 on。由于74 is在80 +/- 38 is范围内,这是一个合理的结果。为了获得更好的频率估计,您必须增加样本数量。
请注意,正弦音调的周期图通常会在音调频率附近出现峰值,并在两侧衰减(这一现象是由用于估计的样本数量有限造成的,通常称为spectral leakage),直到该值可以被认为是相对“可以忽略的”为止。然后,foo$bandwidth变量表明,对于高于0.001069167*10000Hz ~ 107Hz的频率,输入信号开始包含较少的能量,这与音调的衰减一致。
https://stackoverflow.com/questions/46247193
复制相似问题