1

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

我的方法如下:

  • 将 ms 转换为 Hz
    • 找到采样率/2 的奈奎斯特(作为采样率,我采用转换后的 Hz 值)
    • 计算正弦曲线+噪声
    • 计算低通和高通滤波器的截止频率(取总赫兹的 0.1 并除以低通的奈奎斯特值,并取总赫兹的 0.25)
    • 对于带通滤波器,我计算截止频率的差异
    • 应用过滤器的 -n 阶
    • 通过正弦+噪声的滤波器。

下面是我使用 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 将过滤器应用于度量本身吗?

4

0 回答 0