神電測控:LabVIEW FPGA番外篇:實驗64:如何在LabVIEW FPGA中實現(xiàn)中值濾波器

????????中值濾波器是一種常見的用于信號處理的非線性濾波器。常用于消除圖像或其他信號中的噪聲,尤其是斑點噪聲或者椒鹽噪聲。
????????中值濾波器可以實現(xiàn)平滑信號同時降低噪聲。中值濾波器逐點遍歷信號,用相鄰點的中值替換每個點。由于它是一個非線性濾波器,如果下位機FPGA里面的數(shù)據(jù)吞吐率很高(比如ADC采樣率很大),那就不能簡單地將數(shù)據(jù)傳輸?shù)缴衔粰CPC,再利用上位機PC里面的中值濾波器,那樣會造成數(shù)據(jù)流阻塞丟失。因此,我們必須在FPGA芯片里面完成中值濾波進行,以保存PC上的計算資源。
????????本節(jié)實驗我們提供的FPGA程序,給出了一個可以直接在FPGA里面運行的一維中值濾波器原型示例。圖1是整個FPGA項目瀏覽器下的FPGA中值濾波器實驗程序組成;圖2是下位機FPGA完整的程序框圖,包括了AD7606采集線程、中值濾波器信號處理、并轉串線程、UDP千兆以太網(wǎng)發(fā)送線程;圖3是具體的中值濾波器程序框圖,里面有一個非常核心的中值濾波器子VI,默認的濾波窗口是11個點,如圖4所示。后期用戶可以根據(jù)自己的實際情況進行修改即可。




????????需要注意的是:我們提供的中值濾波器子VI里面,默認使用 的是11點窗口逐點過濾信號。用戶在今后自己的項目里面可以根據(jù)實際情況進行修改,以滿足自己的FPGA項目需求。
????????同時,為了更好的向手頭沒有FPGA開發(fā)板的用戶展示FPGA上的中值濾波器效果,我們還提供了一個可以在上位機PC端進行模擬仿真的示例,如圖5所示。

標簽: