2017-04-11 41 views
0

我有點數,我需要將平均過濾器(如下所述)轉換爲平滑過濾器的中值過濾器。任何人都可以請在這引導我?中值過濾器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 
} 
+0

你到底想幹什麼?你想要的輸出是什麼? –

+0

我只是想比較平均過濾結果和中值過濾結果。我寫了一個平均過濾器,但我對中值過濾方法感到困惑。 – Asad

回答

2

這裏是平均濾波器和中值濾波二元函數:

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

我不知道'runmed'。我的思緒立刻轉到'動物園:: rollapply'。 – Dason

+0

它是什麼n = 5? – Asad

+0

這只是您的過濾器的默認值爲5的參數。 – Smich7