我正在使用R中的butter包中的signal函数来过滤数据。
数据是傅里叶变换的(复数)-我想过滤出特定的频率(我有256赫兹的采样频率,因此128赫兹的频谱,说我只想过滤4-8赫兹的数据)。
关于这个函数中W的正确值应该是什么,我发现了相互矛盾的文档:
butter(n, W, type = c("low", "high", "stop", "pass"),
plane = c("z", "s"), ...)我很难理解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)它应该是低通和高通滤波器的组合。
发布于 2019-05-27 01:10:52
在DSP中,频率被视为“归一化频率”。归一化频率的计算方法是将频率范围从0放大到0到1.0。所以你必须把特定频率除以256。
https://stackoverflow.com/questions/56314907
复制相似问题