作用
消除輸入信號(hào)的“突變”脈沖,如下圖:

中值濾波原理
連續(xù)采樣N次(N取奇數(shù)),把N次采樣值按大小排列,取中間值為本次有效值。
下面以3次中值濾波原理為例說(shuō)明原理:輸入數(shù)據(jù)里面a3點(diǎn)為毛刺,b3點(diǎn)是由a1 a2 a3三個(gè)點(diǎn)排序得出的,由于a3>a2>=a1,所以,b3=a2或者a1,這樣中間的毛刺信號(hào)就沒(méi)了。

圖1 3次采樣中值濾波示例
優(yōu)點(diǎn)
能有效克服因偶然因素引起的波動(dòng)干擾,對(duì)溫度、液位的變化緩慢的被測(cè)參數(shù)有良好的濾波效果。
代碼設(shè)計(jì)
以3次采樣中值濾波器為例,設(shè)計(jì)方案如圖2所示。源碼和仿真測(cè)試代碼鏈接:
緩存用寄存器打拍實(shí)現(xiàn),比較需要任意兩兩比較,所以比較次數(shù)為C n ^2^次,選擇輸出在比較完成以后,進(jìn)行簡(jiǎn)單排序,確定中間值輸出。其中比較麻煩的是后面兩步,比較次數(shù)和排序隨著中值濾波規(guī)模的變大而變大,是二次增長(zhǎng)。

圖2 中值濾波器方案
代碼詳解
很多小伙伴反應(yīng)嗎,最多到上一步方案設(shè)計(jì)就難以往下走了,不知道代碼怎么設(shè)計(jì)。為了讓大家學(xué)會(huì)怎么設(shè)計(jì)代碼,這里給大家提供代碼含義解釋和設(shè)計(jì)思路解釋。

根據(jù)圖2,首先寫緩存器,din是輸入端口。代碼如下:

比較部分為了簡(jiǎn)便,我們用一個(gè)bit位代表某兩兩比較的結(jié)果,比如com[2]=1就代表din_buf[0]大于din_buf[2],反之din_buf[0]小于din_buf[2]。這樣用3bit的線就可以保留比較結(jié)果了。wire類型的代表線,assign代表將結(jié)果引到某根線上,所以比較結(jié)果輸出到comp[*]沒(méi)有經(jīng)過(guò)任何時(shí)鐘,延時(shí)是純粹的組合邏輯延時(shí)。代碼如下:

排序篩選的部分由于只有3個(gè)比較所以直接用枚舉法,全部列出來(lái)處理。注釋部分表示了排序結(jié)果,根據(jù)排序結(jié)果選擇將哪個(gè)緩沖器輸出即可。代碼如下:

仿真測(cè)試
仿真測(cè)試文件和代碼在同一個(gè)文件夾下,歡迎下載。第二行周期波形是輸入波形,帶有一個(gè)正尖峰和一個(gè)負(fù)尖峰,經(jīng)過(guò)中值濾波后如第三行所示,毛刺都沒(méi)了。

**圖3 ** 中值濾波結(jié)果
-
濾波器
+關(guān)注
關(guān)注
162文章
8403瀏覽量
185591 -
寄存器
+關(guān)注
關(guān)注
31文章
5607瀏覽量
129865 -
緩沖器
+關(guān)注
關(guān)注
6文章
2226瀏覽量
48848
發(fā)布評(píng)論請(qǐng)先 登錄
一種新型的雙模雙通帶濾波器的設(shè)計(jì)方案
請(qǐng)教一種可識(shí)別未受污染點(diǎn)的中值/均值濾波matlab程序
請(qǐng)問(wèn)如何實(shí)現(xiàn)改進(jìn)的中值濾波器的設(shè)計(jì)?
基于Stratix II EP2S60改進(jìn)中值濾波器的設(shè)計(jì)及實(shí)現(xiàn),不看肯定后悔
一種基于FPGA的圖像中值濾波器的硬件實(shí)現(xiàn)
直流供電程控濾波器設(shè)計(jì)方案
圖像處理基礎(chǔ)自適應(yīng)中值濾波器(基于OpenCV實(shí)現(xiàn))
圖像加窗中值濾波算法的研究分析
求一種中值濾波器的設(shè)計(jì)方案
評(píng)論