我正在使用 R 包中的butter
函数signal
来过滤我的数据。
数据是傅里叶变换的(复数) - 我想过滤掉特定的频率(我有一个 256Hz 的采样频率,因此是一个 128Hz 的频谱,并且说我只想过滤 4-8Hz 的数据)。
我发现有关此函数中 W 的正确值应该是什么的文档相互矛盾:
butter(n, W, type = c("low", "high", "stop", "pass"),
plane = c("z", "s"), ...)
- 它们应该是 4/256 和 8/256 吗?
我发现很难解释我的 4/256 和 8/256 的结果是否正确。
strength <- ftdata
low <- 4
high <- 8
bf <- butter(5, low/256, type="high")
bfsig <- filter(bf, strength)
bf <- butter(5, high/256, type="low")
bfsig <- filter(bf, bfsig)
plot(f,bfsig, type='l')
# Where ftdata is just the output from my Fourier transform. The 5 is the order of the filter.
我只想知道“/256”在这里是否有意义。
编辑:
另外,知道为什么下面不返回与上面相同的结果吗?
filt <- butter(5,c(low/256,high/256), "pass")
bfsig <- filter(filt, strength)
它应该只是低通和高通滤波器的组合。