酷知百科網

位置:首頁 > 遊戲數碼 > 電腦

matlab如何實現中值濾波

電腦1.16W

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 濾波