R中的中值滤波器



我有点数,我需要将平均滤波器(如下所述(转换为中位数滤波器以平滑图。任何人都可以指导我吗?

# 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 
}

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

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

最新更新