我试图在R中通过FFT进行噪声消除。我遇到的麻烦是我在此过程中得到了y轴偏移,我不确定原因是什么是。我已经阅读了FFT并使用了this resource as a guide。请参阅下面的代码以及我执行的代码以及结果的示例图形。这是一个指向csv文件的dropbox链接。 data.csv
data=read.csv('data.csv')
plot(data,type='l')
#FFT filtration function
fft.filter=function(data,threshold){
temp=fft(data)
temp[threshold:length(data)-threshold]=0+0i
temp=Re(fft(temp,inverse=TRUE)/length(temp))
return(temp)
}
data2=data
data2$Signal=fft.filter(data2$Signal,100)
如图所示,数据缩放看起来很好,我只是得到一个我认为不应该的转变。 FFT功能正在消除系列中的噪声。
答案 0 :(得分:2)
索引存在问题。它是从0到length(data)-threshold
的索引,而你想要threshold:(length(data)-threshold)
我相信。将索引行更改为
temp[threshold:(length(data)-threshold)]=0+0i