Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何在几个索引中汇总周期信号以便重新生成它_R_Signals_Signal Processing - Fatal编程技术网

R 如何在几个索引中汇总周期信号以便重新生成它

R 如何在几个索引中汇总周期信号以便重新生成它,r,signals,signal-processing,R,Signals,Signal Processing,我有以下375次观测的周期信号: 我的目标是提取一些系数/信息/等,以便能够准确地(或以较小的误差)在未来重新生成它,而无需存储所有观测值。有没有一个简单的方法来做这件事在R?我尝试了很多不同的方法,但结果与我所需要的相差甚远 编辑:.您是否尝试从FFT中提取前10-20个峰值?根据您的信号,这就足够了(注意采样率、文件长度等)。这可以通过以下方式完成: library(pracma) data <- read.csv('DataStackOverflow.csv', header=TR

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

我的目标是提取一些系数/信息/等,以便能够准确地(或以较小的误差)在未来重新生成它,而无需存储所有观测值。有没有一个简单的方法来做这件事在R?我尝试了很多不同的方法,但结果与我所需要的相差甚远


编辑:.

您是否尝试从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)