计算DFT系数

时间:2013-11-06 11:22:53

标签: r math fft

我有一个时间序列,它包含256个整数值。它看起来像这样:

enter image description here

我在r:

中计算了STFT(Short Time Forier Transform)
s<-stft(datalist, win=min(80,floor(length(datalist)/10)), inc=min(24,floor(length(datalist)/30)), coef=256, wtype="hanning.window")

作为一个冲锋我有一个29行和256个值的矩阵。如果我在图中显示该行的一行(即第10行)。我看到了这样一个图表:

enter image description here

但我有这样的期望,系数图应该看起来像第一个图形?(仅在另一个维度上)

我应该在R中使用另一个包来完成这项工作吗?或者我的理解是假的?

1 个答案:

答案 0 :(得分:1)

我猜你正在使用package GENEArerad中的stft功能。在您的情况下,呼叫基本上是

s<-stft(datalist, win=25, inc=8, coef=256, wtype="hanning.window")

所以我读它的方式,你需要25个样本但是从中计算256个系数。由于我猜Nyquist-Shannon sampling theorem,文档指出coef的最大(合理)值为win/2。因此,除了前12个左右的系数之外,所有系数都将是虚假的。而前几个系数都超出了你的情节的规模,所以我们也不能对这些系数说些什么。

我不知道你的期望从何而来,我不同意。但我也相信,你期望这种方式有一些更基本的问题。