0

我正在使用 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)

它应该只是低通和高通滤波器的组合。

4

1 回答 1

0

在 DSP 中,频率被视为“归一化频率”。归一化频率是通过缩放频率范围 0 到 smapling 频率到 0 到 1.0 来计算的。所以你必须将特定频率除以 256。

于 2019-05-27T01:10:52.443 回答