我有以下375个观测的周期性信号:

我的目标是提取一些系数/信息/等,以便能够在将来精确地(或有一个小的误差)重新生成它,而不需要存储所有的观测数据。在R中有一个简单的方法来做这件事吗?我尝试了很多不同的方法,但结果远远不是我所需要的。
编辑:数据。
发布于 2017-01-14 21:19:21
你试过从FFT中提取前10-20个峰值吗?根据信号的不同,这可能就足够了(注意采样率、文件长度等)。这样做是可以的:
library(pracma)
data <- read.csv('DataStackOverflow.csv', header=TRUE)
x <- data$x
z <- fft(x)
pks <- findpeaks(Mod(z), npeaks = 20, sortstr = TRUE)信息以时间的形式存储在pksheight中。
X1 (height), X2 (time)
15.339362, 251
15.339362, 126
14.763523, 235
14.763523, 235
(...)若要运行逆fft,请替换空FT中的峰值+相位。我只是为了这个例子从z中删除了不想要的数据。
z [ Mod(z) < min(pks$X1) ] <- 0+0i
y <- fft(z, inverse = TRUE) / length(z)

为了存储信息,我假设find峰本身有一个周期就足够了。
https://stackoverflow.com/questions/41648729
复制相似问题