當前位置:妙知谷 >

遊戲數碼 >電腦 >

matlab如何實現中值濾波

matlab如何實現中值濾波

matlab是進行數值分析的一個重要的工具。今天講一下matlab對一維信號進行中值濾波的使用方法。所謂的濾波,簡單意義上來説,就是對原信號進行處理,通過一系列的變換得到另一個信號。好比A為一組輸入信號,經過中值濾波,產生信號B。而中值濾波就是其中的變換。類似的濾波還有高斯平滑濾波,均值濾波等。

操作方法

(01)中值濾波的原理:對於一串連續輸入的信號(量化後是一組數據)。如下圖所示,是輸入的原信號。中值濾波的原理為,重新計算每一個x的輸出值(y),新的輸出值。相當於 y = new(x),new的操作是,從在以x為中心,長度為2k的原信號中(區間為[x-k+1,x+k]),提取出這段區間內中間的那個值,作為 y=new(x)的結果。

matlab如何實現中值濾波

(02)舉例來説,輸入:Y[1-10]:1,2,3,4,5,6,7,8,9,10. 取區間2k = 4,所以k=2;執行中值濾波 K=中值濾波(Y)由x-k+1>=1,所以當k=2時,x>=2濾波時:K[1]=Y[1]K[2]=(Y[1]、Y[2]、Y[3]、Y[4])的中間值,即為2或3

(03)matlab的中值濾波實現方式:調用函數:A = medfilt1(B,n)B為輸入信號,A為濾波後的信號,即結果。n為控制濾波區間的參數。具體定義如下:1、若n為基數,區間為[k-(n-1)/2,k+(n-1)/2],2、若n為偶數,區間為[k-n/2,k+n/2+1],中值濾波表示用這個區間內的中間值代替這一點的值。

(04)對於輸入信號(最開頭的圖),以下分別為設置區間n=8和n=16得到的濾波圖像。中值濾波可以過濾尖峯脈衝。目的在於我們對於濾波後的數據更感興趣。濾波後的數據保留的原圖像的變化趨勢,同時去除了尖峯脈衝對分析造成的影響。

matlab如何實現中值濾波 第2張
matlab如何實現中值濾波 第3張
標籤: MATLAB 濾波
  • 文章版權屬於文章作者所有,轉載請註明 https://miaozhigu.com/sm/diannao/4dzv7.html