正确解释巴特沃思滤波器的频率

时间:2019-05-26 15:31:55

标签: r filter signal-processing fft butterworth

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

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

1 个答案:

答案 0 :(得分:0)

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