首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >理解TSA::periodogram()

理解TSA::periodogram()
EN

Stack Overflow用户
提问于 2017-09-16 04:40:58
回答 1查看 1.7K关注 0票数 6

我有一些定期采样的数据,看起来是正弦的,我想确定波的频率,为此,我获得了R并加载了TSA包,其中包含一个名为'periodogram‘的函数。

为了理解它是如何工作的,我创建了一些数据,如下所示:

代码语言:javascript
复制
x<-.0001*1:260

这可以解释为260个样本,间隔为.0001秒

代码语言:javascript
复制
Frequency=80

频率可以解释为80 be,因此每个波周期应该有大约125个点。

代码语言:javascript
复制
y<-sin(2*pi*Frequency*x)

然后我会这样做:

代码语言:javascript
复制
foo=TSA::periodogram(y)

在生成的周期图中,我希望在与我的数据对应的频率上看到一个急剧的尖峰-我确实看到了一个急剧的尖峰,但最大的“规范”值的频率是0.007407407,这与我的80 of的频率有什么关系?

我注意到有一个值为0.001069167的变量foo$ with,我也很难解释它。

如果有更好的方法来确定我的数据频率,我会感兴趣的-我使用R的经验仅限于一天。

EN

回答 1

Stack Overflow用户

发布于 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的频率,输入信号开始包含较少的能量,这与音调的衰减一致。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46247193

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档