2014年8月7日 星期四

[Matlab]中值濾波的實用案例:用於齒輪盤的平整度量測之雜訊濾除


試想,若要濾掉上圖紅色框框的雜訊點,應該如何做? (OS:或許人工手動篩選數據是一個方式,但若面對數千張數據圖或產線即時判斷的需求,這個方式顯然不合適~~)

上方數據圖是一位台商友人提供的,其利用雷射測距儀量測腳踏車齒輪盤的表面平整度,當齒輪盤轉動一圈,取樣一千筆數據,如上圖x軸所示。而y軸表示齒輪盤轉動一圈的平整度,以長度(mm)表示之。六個紅色框內的數據經其研判來自於灰塵或是產品商標上的油墨,被歸類為雜訊,因此希望將這些雜訊濾掉,並將過濾後的數據作為品檢結果提供給客戶。另一方面,則希望將過濾法則直接寫入IC晶片中,用於產線上的即時判斷。

了解希望將雜訊篩除以呈現出平滑數據的需求後,接著是該案例的問題條件,如下:

1.該數據是經由齒輪盤旋轉一圈所取得,因此該數據圖隨著不同量測起始點會有週期性表現,換言之,無法利用Golden sample的概念進行數據比對,以篩除雜訊。

2.該友人對於定量概念不甚明確,因此也無法藉由該產業的品檢要求回推得知上下限門檻值。


我想針對其需求和問題條件的限制,中值濾波可以初步達到需求。圖一是藉由matlab簡易完成的範例,利用調整遮罩(mask)的數值,可將原始數據的雜訊進行篩除,mask=25時,其雜訊篩除結果如圖二所示。

圖一

圖二

沒有留言:

張貼留言