gpt4 book ai didi

R:如何过滤/平滑二进制信号

转载 作者:行者123 更新时间:2023-12-04 10:47:50 26 4
gpt4 key购买 nike

我有一个表示时间序列的二进制向量。我想过滤掉像 00000001100000000 这样的快速开关应该是零,同样 11111111111011111 应该只是一个。

什么样的过滤器/功能适合该任务?

最佳答案

也许这是一种愚蠢的方法,但 rle/inverse.rle似乎是不错的候选人。例如。如果您将快速切换定义为少于 3 个相等值的周期:

b1 <- c(rep(0, 7), rep(1, 2), rep(0, 7))
b2 <- c(rep(1, 10), 0, rep(1, 4))

binaryFilter <- function(x, threshold=3) {
r <- rle(x)
isBelowThreshold <- r$lengths < threshold
r$values[isBelowThreshold] <- abs(1-r$values[isBelowThreshold])
return(inverse.rle(r))
}

binaryFilter(b1)
# [1] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

binaryFilter(b2)
# [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

关于R:如何过滤/平滑二进制信号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22492148/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com