在FFT噪声消除期间获得y轴移位

时间:2015-09-02 17:03:16

标签: r signal-processing fft ifft

我试图在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)

未过滤的情节: enter image description here

过滤的地块 enter image description here

如图所示,数据缩放看起来很好,我只是得到一个我认为不应该的转变。 FFT功能正在消除系列中的噪声。

1 个答案:

答案 0 :(得分:2)

索引存在问题。它是从0到length(data)-threshold的索引,而你想要threshold:(length(data)-threshold)我相信。将索引行更改为

temp[threshold:(length(data)-threshold)]=0+0i