摘要:在野外復雜訓練環境下,利用激波原理進行實彈射擊的精度坐標報靶,是一項具有相當挑戰性的技術。本文采用FPGA(現場可編程門陣列)結合自適應濾波技術,對報靶系統采集的激波信號進行了實時濾波處理。采用 VHDL語言編程,利用 QUARTUS II6.0進行了仿真。實驗結果證明,當彈丸穿過靶平面時,數據采集電路采集的激波信號含有大量噪聲,基于 FPGA的自適應濾波器能很好地濾除了大部分干擾噪聲,得到了比較理想的激波數據,提高了報靶系統的報靶精度。 0 前言 由空氣動力學原理,當超音速運動的物體,由于運動速度大于局部聲速時會產生激波,彈道聲波是超聲速彈丸飛行時沖擊空氣分子所形成的激波( Shock waves)。采用激波原理進行報靶是一項具有挑戰性的技術,它利用激波信號進行超音速飛行體探測,是一種新的目標探測方法。本文研究對象為移動靶車,該遙控自動裝置自帶電源和動力裝置,能在 25Km/h內無級調速,但是,由于其工作環境比較惡劣,自身振動、風吹、發電機和電動機的巨大干擾,嚴重影響了自動報靶系統的報靶精度。為了適應現代化*訓練的需要,本文采用 FPGA和自適應濾波技術,利用硬件電路來實現 LMS自適應濾波器,完成對強背景噪聲環境下激波信號的濾波,在滿足實時數據處理前提下,以提高報靶系統的報靶精度。 1 問題的提出及方案選取 本設計起初設計電路采用的模擬高通濾器,后來又設計成帶通濾波器,然而通過實踐發現,其濾波效果都比較差,難以滿足系統精度的要求;采用通用 DSP數字信號處理器件用軟件設計數字濾波器,其數據吞吐率、處理速度和實時性遠不如基于 FPGA硬件實現的數字濾波器,因為,基于 FPGA的數字濾器代表了未來數字信號處理的發展方向,用戶可以很方便的結合實際需要設計出自己的可編程數字信號處理芯片,現在已經較為廣泛地應用在高端數字信號處理領域。 自適應濾波器的常用實現形式有 FIR和IIR兩種,而 FIR濾波器是實際應用較為廣泛的一種,FIR濾波器只有可調的零點,因此它沒有 IIR因兼有可調的零點和極點而帶來的不穩定問題,此外,LMS計算量小,易于硬件實現,故本文采用的濾波器是基于FIR基礎之上構建的 LMS自適應濾波器。 2 系統設計結構 本文所涉及的激波信號處理部分的整體結構框圖如圖 1所示,由信號采集傳感器、模數轉換器件、FPGA器件、數模轉換器件構成。高速瞬態的激波信號被超聲波傳感器捕獲以后,經過適當調理送到 AD轉換器件,本設計采用 MAX197AD轉換器件,由 FPGA設計的狀態機對其控制,進行 AD轉換,然后再進入基于 FPGA設計的自適應濾波器中濾波,最后再進行 DA轉換傳輸到后續處理電路,由于本設計的主要任務是設計基于 LMS算法的自適應濾波器,其它部分將不作詳述。 3 LMS自適應濾波器設計 LMS算法是以期望響應和濾波器輸出信號之間的均方值為準則,依據輸入信號在迭代過程中估計梯度矢量,并更新權值系數以達到最有效的一種自適應迭代算法,它在優化方法中采用了基于隨機梯度的最速下降法。根據 LMS算法的實現過程,在 FPGA實現時,可以分為主要的幾個模塊:FIR濾波器模塊、誤差計算模塊、權值存儲模塊、權值更新模塊以及控制模塊。其模塊框圖如圖 2所示。設計中采用 VHDL語言設計,根據 MAX197的轉換要求,其輸出為 12位寬度的數字信號,因此,此處采用 12位并行數據輸入,12并行數據輸出,權值系數的數據寬度為 16位,reset為系統復位,高電平有效,clk為系統時鐘,firen為 FIR濾波器使能,suben為誤差計算模塊使能,cuncuen為權值存儲模塊使能,coffen為權值更新模塊使能,都為高電平有效。 4 自適應濾波器的 FPGA實現 4.1 N階 FIR濾波器模塊的設計 FIR 濾波器是數字濾波器的一種,它的輸出可以用差分方程表示如下: 其中:N 是FIR 濾波器的抽頭數,x(i)表示第i 時刻的輸入樣本,h(i)是FIR 濾波器的第i 級抽頭系數。FIR 濾波器的單位脈沖響應h(n)是一個有限長序列,其系統函數可表示為: 在設計中,為了節省 FPGA的內部資源,提高利用效率,此處采用串行乘加的方法實現。 FIR濾波器模塊實現 16階的 FIR濾波,輸入量主要包括 AD轉換后的激波信號數據的輸入和權值系數的輸入,xin是 AD轉換后的輸出信號,為 12位字寬,其中 1位符號位,10位精度位,將此信號存儲在深度為 N的 RAM中作為 16階 FIR濾波器的輸入;FIR的權系數 win存儲在另外一個 RAM中,字寬 16位,其中最高位為符號位。通過控制模塊輸出地址信號控制讀各個存儲模塊的讀寫動作,此處的乘法器為 28位有符號數的乘法器,加法器完成累加任務,當 16階乘法以及累加運算做完后,由控制模塊輸出 youten信號,對鎖存的數據進行有效截取,然后輸出。其實現的框圖如圖 3所示。在該設計中,采用 VHDL語言編程完成,生成對應的頂層原理符號,然后按設計方案把它們連接成頂層原理圖。 4.2控制模塊本模塊主要是控制從激波數據輸入模塊和權系數輸入模塊讀取數據輸入信號和權系數到乘法器的輸入端,同時還控制累加器完成累加任務,然后產生一個使能信號,對輸出數據進行截取操作,然后輸出到下一級模塊中。本模塊為整個系統的核心部分,它主要完成:初始化各個模塊;根據系統時鐘產生各個模塊的控制信號,控制每個單元完成特定的工作;采用整體流水線和局部流水線的方式,協調各個模塊工作,從而提高整個濾波系統的整體性能。 4.3計算模塊 本模塊包括:誤差計算模塊和權值計算模塊。誤差模塊實際就是一個減法器,主要計算 FIR濾波器輸出和期望值之間的誤差,然后,在控制模塊的作用下,當誤差滿足設計要求時,便使能其輸出,得到最終的輸出結果。在權值計算模塊中,綜合考慮收斂性和設計實現,設定 u=1/4092,即 u=10H,這樣只需對誤差計算模塊的誤差輸出進行移位運算即可實現,省掉了乘法器的使用,節省了 FPGA資源,提高了計算速度,另外,在計算 2ue(k)x(k)時,可以在 e(k)與 x(k)相乘后直接右移 12位,即可得出權值變量。 5 自適應濾波器的仿真與校驗 在 Quartus II6.0綜合環境下,首先對輸入設計文件( .vhd、.bdf)進行編譯(包括建庫、邏輯綜合、器件適配、仿真數據截取等),系統自動編譯完成后自動生成 .pof文件,然后通過 JTAG下載電纜把 .pof文件下載到 FPGA器件中即可。本設計選用 CycloneII系列的 EP2C8Q208C8芯片,系統時鐘為 20MHz,輸入信號、參考輸入和濾波器輸出都是 12位,考慮到 FPGA還要實現其它功能,因此在進行系統的芯片選型時,留有較大的冗余量。實驗時,調試電路板從計算機中讀取輸入數據到 FPGA中,然后經過 FPGA處理后,將處理的數據送回計算機中。 仿真時,設期望信號為 900,輸入信號為 500,實際輸出為 895,誤差為 5,在 63.2us處收斂到穩定狀態。其時序仿真波形如圖 4所示。 用LabVIEW編寫的上層軟件采集激波數據,以txt文件格式保存。應用MATLAB的load命令,繪制出圖 5上半部分的激波信號,據圖明顯看出,彈丸穿過靶平面時的激波混雜有大量高低頻干擾。為了驗證上述自適應濾波器的濾波能力,在進行實驗時,將此數據送入到FPGA中進行處理,再送回到計算機中,運用繪圖軟件繪制其濾波結果,其濾波結果見圖5。 從上圖可以看出,在強噪聲干擾下,很難分辨出真實有效的有用信號,采用 LMS自適應濾波器進行濾波后,能夠真實有效地濾除干擾噪聲。 6 結束語 本文利用 FPGA器件實現了基于 LMS自適應 FIR濾波器,由上述實驗結果可以看出,基于 FPGA實現的自適應濾波器,能夠實時有效地濾除摻雜在激波信號中的噪聲,能夠準確捕捉到真實的激波信號,為后續部分處理奠定了堅實的基礎,從而為提高自動報靶系統的報靶精度奠定了堅實基礎。 本文作者創新點:將先進的 FPGA技術和自適應濾波技術應用于自動報靶中,實現了基于 FPGA的自適應濾波器,對整個激波信號處理系統進行了重大改進,提高了移動報靶系統的報靶精度。 |