- 积分
- 203
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2017-11-3
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
想对某一年的数据进行10~20d的滤波,但是R语言里面好像没有这个滤波器的函数,所以自己想着模仿写了一个,但是感觉公式好像有点问题?然后参数啥的设置不对,有大佬帮忙看看吗?Lanczos_filter <- function(n, fs, f1, f2) {
a <- (n - 1) / 2
h <- sin(2 * pi * f2 * (-(a):(a)) * fs) / (-(a):(a)) / pi - sin(2 * pi * f1 * (-(a):(a)) * fs) / (-(a):(a)) / pi
h[a+1] <- (2 * (f2 - f1)) / fs
return(h)
}
# 定义滤波器参数
fs <- 1/24 # 采样频率
f1 <- 10 # 低通截止频率
f2 <- 20 # 高通截止频率
n <- 10 # 滤波器长度
# 创建Lanczos带通滤波器
h <- Lanczos_filter(n, fs, f1, f2)
# 应用滤波器,x是需要滤波的数据,日资料来的
y <- signal:: filter(h, 1, x)
|
|