濾波演算法(二) 中位值濾波演算法

2021-10-03 23:09:31 字數 1159 閱讀 4717

中位值濾波演算法的實現方法是採集n個週期的資料,去掉n個週期資料中的最大值和最小值,取剩下的資料的平均值。中位值濾波演算法特別適用於會偶然出現異常值的系統。中位值濾波演算法應用比較廣泛,比如用於一些比賽的評分,經常是去掉乙個最高分去掉乙個最低分,將其他評分取平均值作為選手的最終得分。

優點:相比於平均值濾波演算法,中位值濾波演算法能夠有效濾除偶然的脈衝干擾。

缺點:與平均值濾波演算法相同,中位值濾波演算法也存在反應速度慢、滯後的問題。

下面的**是中位值濾波的示例**。

float data[10];

float middlefilter(float in_data)

data[9] = in_data;

//複製資料

for(i=0; i<10; i++)

temp[i] = data[i];

//冒泡法排序

for(i=1; i<10; i++)

for(j=0; j<10-i; j++)

}//求和

for(i=1; i<9; i++)

sum = sum + temp[i];

//返回平均值

return(sum/8);

}

在上面的**中,分為幾個步驟:

步驟1:讀取新資料,並更新資料陣列;

步驟2:複製資料到臨時陣列,以便保持原始資料的順序不變;

步驟3:對臨時陣列進行排序;

步驟4:計算中位平均值。

下面我們通過乙個示例來體會中位值濾波的作用,濾波物件為車速訊號,濾波效果如下圖所示。圖中,橫軸為時間,單位:秒,縱軸為速度,單位km/h。其中,藍色為濾波前的資料,紅色為濾波後的資料。有圖中可以看出,原始資料存在兩個異常值,可能是採集過程的資料干擾或資料處理時的異常等原因造成的。採用中位值濾波演算法可以有效濾波這種異常值造成的影響。

相對於中位值濾波演算法,平均值濾波演算法則無法解決這個問題,如下圖所示,為採用平均值濾波演算法對相同的原始資料進行處理的效果,可以看到平均值濾波無法濾波異常值,而且異常值影響的時間比較長。

微控制器ADC取樣演算法 中位值平均濾波法

中位值平均濾波法濾波法就是通過連續取樣n個資料,然後對資料從小到大排序,然後去掉最大值和最小值,對剩餘的n 2個值計算算數平均值。也就是中位值濾波和算數平均濾波的結合。下面看c 的實現 define n 12 unsigned int filter5 void for j 0 j n 1 j for...

訊號處理演算法學習筆記一 中值濾波演算法

中值濾波可以過濾尖峰脈衝。目的在於我們對於濾波後的資料更感興趣。濾波後的資料保留的原影象的變化趨勢,同時去除了尖峰脈衝對分析造成的影響。中值濾波是用中值取代了原來要處理的資料,取樣長度越長,濾波效果越好,但是也會造成原始資料中過多資訊的丟失。需要根據實際應用確定。按照專案要求定義函式型別即可。輸入引...

初勘資料處理之濾波演算法 二

加速度感測器訊號資料處理中濾波演算法的應用,computer and information technology 2018 vol 26 no 3 doi 10.19414 j.cnki.1005 1228.2018.03.001 重新複述目標 目標 對板材進行一系列相關檢測試驗,得到觀測時間序列...