勇敢的芯伴你玩轉Altera FPGA連載92:基于均值濾波處理的超聲波測距回響脈寬計數 特權同學,版權所有 配套例程和更多資料下載鏈接: http://pan.baidu.com/s/1i5LMUUD ![]() 本例程基本的功能實現和10.1節的例程一樣,只是在原先的“脈沖計數”和“數碼管顯示驅動”兩個功能塊之間,增加了“均值濾波處理”功能的實現。本實例功能框圖如圖10.4所示。 ![]() 圖10.4 超聲波測距實例功能框圖 可能大家在10.1節的板級調試的時候已經注意到了,數碼管顯示的數據還是有些不夠穩定,跳變比較快,也不是非常準確。所有“均值濾波處理”功能模塊就是要來解決這些問題。 一般性的均值濾波,其算法都是“砍頭、去尾、留中間”,即取一定的數據作為一組進行排序,剔除最大值和最大值,留下中間的數據進行求平均。 我們的算法要比這更簡單一些。我們取每8個最新采集的數據,不做任何排序,直接求平均值。注意,每輸入一個新的數據,就會相應的輸出一個舊的數據,從而進行一組完全實時的最新的8個數據的均值計算。功能如圖10.5所示。 ![]() 圖10.5 均值濾波處理功能框圖 連接好下載線,給CY4開發板供電。 打開Quartus II,進入下載界面,將本實例工程下的cy4.sof文件燒錄到FPGA中在線運行。 此時我們在超聲波測距模塊前面擺放平整的障礙物,可以看到數碼管上的16進制數據會發生變化。但是相對于上一個實例,這個實例的數碼管顯示數據要相對穩定一些。 |