gpt4 book ai didi

r - 了解 TSA::periodogram()

转载 作者:行者123 更新时间:2023-12-04 14:55:02 25 4
gpt4 key购买 nike

我有一些定期采样的数据,看起来是正弦曲线,我想确定波的频率,为此我获得了 R 并加载了包含名为“周期图”的函数的 TSA 包。

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

x<-.0001*1:260

这可以解释为 260 个样本,间隔为 0.0001 秒
Frequency=80

频率可以解释为 80Hz,所以每个波周期应该有大约 125 个点
y<-sin(2*pi*Frequency*x)

然后我做:
foo=TSA::periodogram(y)

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

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

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

最佳答案

周期图是根据时间序列计算的,而无需了解您的实际采样间隔。这导致频率仅限于归一化 [0,0.5]范围。要获得考虑采样间隔的赫兹频率,您只需乘以采样率。在您的情况下,您以标准化频率获得的尖峰 0.007407407和 10,000Hz 的采样率,这对应于 ~74Hz 的频率。

现在,这不是 80Hz(原始音调频率),但您必须记住,周期图是频谱估计,其频率分辨率受输入样本数的限制。在您的情况下,您使用的是 260 个样本,因此频率分辨率约为 10,000Hz/260 或 ~38Hz。由于 74Hz 在 80 +/- 38Hz 范围内,这是一个合理的结果。为了获得更好的频率估计,您必须增加样本数量。

请注意,正弦音的周期图通常会在音调频率附近出现尖峰并在任一侧衰减(由用于估计的样本数量有限引起的现象,通常称为 spectral leakage ),直到该值可以被认为相对“可以忽略不计” '。 foo$bandwidth变量然后表示输入信号开始包含频率高于 0.001069167*10000Hz ~ 107Hz 的较少能量,这与音调的衰减一致。

关于r - 了解 TSA::periodogram(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46247193/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com