本站小編為你精心準備了神經網絡濾波的研究與實現參考范文,愿這些范文能點燃您思維的火花,激發您的寫作靈感。歡迎深入閱讀并收藏。
《信息技術雜志》2015年第二期
1程序設計
三角基神經網絡流程圖如圖2所示。Qt中有自己C++標準庫,其C++語言庫文件與標準版C++有所不同[7],但語法相同,設計程序相關參數如下:(1)這里濾波的理想目的是檢出直流分量,其函數為:(2)初始化參數:神經元個數n為9個,訓練次數上限為500次,學習率初始值為0.1。在程序中增加計時函數,運行7ms內便有輸出,隨著誤差變小,數據輸出時間變短。濾波輸出為大約23ms后便可以得到穩定輸出,誤差精度高于10-5。在Qt工程文件.pro中添加Qwt/lib文件路徑,qmake編譯。在X86的Linux系統上運行結果如圖3所示,把數據制成表格如圖4所示,運行時間160ms。
2低通濾波器諧波檢測
與上述程序中相同的諧波函數,由低通濾波器濾波來分析處理,并采用2階和6階截止頻率為分別為100Hz和20Hz的ButterWorth濾波器進行濾波分析,Matlab仿真結果如圖5-8所示。從圖5和8可以看出截止頻率在100Hz的低通濾波器響應時間在最快0.03s左右,但是誤差百分比在11%;圖6-7可以看出截止頻率相同階數不同的響應時間0.2s左右,誤差百分比在2.54%,這也說明隨著ButterWorth低通濾波器階數越大,其穩態誤差越小,而動態響應時間越長[8]。為解決ButterWorth低通濾波器穩態誤差和動態響應時間之間的矛盾,很多學者進行了研究,其主要的解決方法是低通濾波器的參數在兩個性能之間進行折中選擇[9],同時這樣的結果也給對后續工作帶來更多的誤差。由比較可知,本文算法比低通濾波器精確度高,而且響應速度也較快,可以代替在電力系統的諧波檢測中低通濾波器做濾波處理。
3基于ARM芯片算法實現
Linux系統具有多任務多進程的系統特征,有些還具有實時特征。它非常適合于在企業的應用,對于單一的任務,一個簡單嵌入式Linux即可以完成這種任務,而且配置要求簡單,成本較低。這里使用的是TE6410(ARM1176)開發板,最高主頻553Hz,2GnandFlash,支持SD燒寫系統。首先基于開源代碼uboot1.1.6編譯系統適合開發板配置的uboot文件;然后根據Linux內核開源代碼Linux3.0.1制作文件zImage,由于是單一的最小化系統,在內核配置時加上LCD驅動模塊[10],最后編譯,大小也只有3MB左右,所需的存儲空間也很小;文件系統是算法的運行實現平臺,用busybox1.20先制作yaffs2文件系統編譯器和最小的文件系統,添加系統相關配置文件;最后從安裝Qt4.8.4中復制Qt/Qwt和Qt/lib庫文件到制作的文件系統/lib文件夾中,以便程序鏈接調用,最后配置啟動后Qt環境變量。程序在經過交叉編譯,編譯成ARM可以運行的程序,放到文件系統根目錄的/mnt下,并設置開機自動運行。根據上述步驟制作一個最小文件系統,雖然Qt相關庫文件靜態鏈接庫較大,但最后制作出來大小僅有130M左右,占用很少的內存資源,其測試效果顯示如圖9所示。圖9中x軸是以秒為單位,y軸是諧波中的直流分量。可以看出響應時間在35ms以內便可以得出精確度相當高的響應輸出。
4結束語
本文介紹了一種基于Linux平臺實現神經網絡算法濾波方法,給出了其軟件實現的流程,并與一般低通濾波器濾波效果進行分析比較,同時用開源代碼構建專用的最小化Linux系統,最小化占用的內存空間;并同時在X86和ARM兩種芯片運行測試,真正實現了神經網絡濾波處理。
作者:肖兒良王新勝顏文超韋榮明單位:上海理工大學光電信息與計算機工程學院