R中位数滤波器

时间:2017-04-11 12:08:54

标签: r filter mean median

我有多个点,我需要将均值滤波器(如下所述)转换为中值滤波器以平滑绘图。有人可以指导我吗?

# Mean Filter
smoothfilter <- function(feat, ntap) 
{
    ofeat <- feat                             # Actual data 
    nfeat <- length(feat)                     # Length of a actual data  
    nhtap <- floor(ntap / 2.0)                                                  

    sf <- feat[1:(nfeat-ntap+1)]              
    for (j in 2:ntap) {
        sf <- sf + feat[j:(nfeat-ntap+j)]       
    }

    sf <- sf / ntap
    ofeat[(nhtap+1):(nfeat-nhtap)] <- sf
    ofeat 
}

1 个答案:

答案 0 :(得分:2)

这是平均滤波器和中值滤波器的两个函数:

mav <- function(x,n=5){filter(x,rep(1/n,n), sides=2)} #Average
mmed <- function(x,n=5){runmed(x,n)} #Median
相关问题