首页 > 解决方案 > 在时间序列数据中应用巴特沃斯过滤器

问题描述

我有以毫秒 (ms)(69300 行)为单位测量的时间序列数据,我想应用低通、高通和带通巴特沃斯滤波器。

我的方法如下:

下面是我使用 R 制作的代码片段:

# 69300 ms are 0.014430014430014Hz
x <- 1:69300

nyquist <- 0.014430014430014/2 # sampling rate/2

x1 <- sin(2*pi*RF*0.014430014430014) + 0.25*rnorm(length(RF)) 
# 0.014430014430014 Hz sinusoid+noise, RF is the time series metric

f_low <- 0.001443001/nyquist # 0.1 of total Hz divided by Nyquist
f_high <- 0.003607504/nyquist # 0.25 of total Hz divided by Nyquist

bf_low <- butter(4, f_low, type="low")
bf_high <- butter(4, f_high, type = "high")
bf_pass <- butter(4, 0.3000001, type = "pass") # f_high - f_low

b <- filter(bf_low, x1)
b1 <- filter(bf_high,x1) 
b2 <- filter(bf_pass,x1)

这是正确的方法吗?应该代替 sinusoid+noise 将过滤器应用于度量本身吗?

标签: frequencylowpass-filterbutterworthhighpass-filterbandpass-filter

解决方案


推荐阅读