作用
消除輸入信號的“突變”脈沖,如下圖:
中值濾波原理
連續(xù)采樣N次(N取奇數(shù)),把N次采樣值按大小排列,取中間值為本次有效值。
下面以3次中值濾波原理為例說明原理:輸入數(shù)據(jù)里面a3點為毛刺,b3點是由a1 a2 a3三個點排序得出的,由于a3>a2>=a1,所以,b3=a2或者a1,這樣中間的毛刺信號就沒了。
圖1 3次采樣中值濾波示例
優(yōu)點
能有效克服因偶然因素引起的波動干擾,對溫度、液位的變化緩慢的被測參數(shù)有良好的濾波效果。
代碼設(shè)計
以3次采樣中值濾波器為例,設(shè)計方案如圖2所示。源碼和仿真測試代碼鏈接:
緩存用寄存器打拍實現(xiàn),比較需要任意兩兩比較,所以比較次數(shù)為C n ^2^次,選擇輸出在比較完成以后,進行簡單排序,確定中間值輸出。其中比較麻煩的是后面兩步,比較次數(shù)和排序隨著中值濾波規(guī)模的變大而變大,是二次增長。
圖2 中值濾波器方案
代碼詳解
很多小伙伴反應(yīng)嗎,最多到上一步方案設(shè)計就難以往下走了,不知道代碼怎么設(shè)計。為了讓大家學會怎么設(shè)計代碼,這里給大家提供代碼含義解釋和設(shè)計思路解釋。
根據(jù)圖2,首先寫緩存器,din是輸入端口。代碼如下:
比較部分為了簡便,我們用一個bit位代表某兩兩比較的結(jié)果,比如com[2]=1就代表din_buf[0]大于din_buf[2],反之din_buf[0]小于din_buf[2]。這樣用3bit的線就可以保留比較結(jié)果了。wire類型的代表線,assign代表將結(jié)果引到某根線上,所以比較結(jié)果輸出到comp[*]沒有經(jīng)過任何時鐘,延時是純粹的組合邏輯延時。代碼如下:
排序篩選的部分由于只有3個比較所以直接用枚舉法,全部列出來處理。注釋部分表示了排序結(jié)果,根據(jù)排序結(jié)果選擇將哪個緩沖器輸出即可。代碼如下:
仿真測試
仿真測試文件和代碼在同一個文件夾下,歡迎下載。第二行周期波形是輸入波形,帶有一個正尖峰和一個負尖峰,經(jīng)過中值濾波后如第三行所示,毛刺都沒了。
**圖3 ** 中值濾波結(jié)果
-
濾波器
+關(guān)注
關(guān)注
162文章
8138瀏覽量
182086 -
寄存器
+關(guān)注
關(guān)注
31文章
5434瀏覽量
124516 -
緩沖器
+關(guān)注
關(guān)注
6文章
2056瀏覽量
47032
發(fā)布評論請先 登錄
一種新型的雙模雙通帶濾波器的設(shè)計方案

請教一種可識別未受污染點的中值/均值濾波matlab程序
請問如何實現(xiàn)改進的中值濾波器的設(shè)計?
基于Stratix II EP2S60改進中值濾波器的設(shè)計及實現(xiàn),不看肯定后悔
一種基于FPGA的圖像中值濾波器的硬件實現(xiàn)
直流供電程控濾波器設(shè)計方案

圖像處理基礎(chǔ)自適應(yīng)中值濾波器(基于OpenCV實現(xiàn))

圖像加窗中值濾波算法的研究分析

評論