R 如何在几个索引中汇总周期信号以便重新生成它
我有以下375次观测的周期信号: 我的目标是提取一些系数/信息/等,以便能够准确地(或以较小的误差)在未来重新生成它,而无需存储所有观测值。有没有一个简单的方法来做这件事在R?我尝试了很多不同的方法,但结果与我所需要的相差甚远R 如何在几个索引中汇总周期信号以便重新生成它,r,signals,signal-processing,R,Signals,Signal Processing,我有以下375次观测的周期信号: 我的目标是提取一些系数/信息/等,以便能够准确地(或以较小的误差)在未来重新生成它,而无需存储所有观测值。有没有一个简单的方法来做这件事在R?我尝试了很多不同的方法,但结果与我所需要的相差甚远 编辑:.您是否尝试从FFT中提取前10-20个峰值?根据您的信号,这就足够了(注意采样率、文件长度等)。这可以通过以下方式完成: library(pracma) data <- read.csv('DataStackOverflow.csv', header=TR
编辑:.您是否尝试从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)
要运行反向fft,请替换空FT中的峰值+相位。我通过从z中删除不需要的数据来完成此操作,仅用于示例
z [ Mod(z) < min(pks$X1) ] <- 0+0i
y <- fft(z, inverse = TRUE) / length(z)
z[Mod(z)Re(y)
。
z [ Mod(z) < min(pks$X1) ] <- 0+0i
y <- fft(z, inverse = TRUE) / length(z)