基于LabVIEW的自適應濾波器系統辨識的設計
1 引言
LabVIEW (Laboratory Virtual Instrument Engineering Workbench) 是美國NI公司的創(chuàng )新軟件產(chǎn)品,也是目前應用最廣泛、發(fā)展最快、功能最強的圖形化軟件開(kāi)發(fā)環(huán)境。LabVIEW DSP模塊,它包含了用于設計、實(shí)現和分析DSP算法的系統工具。它將LabVIEW圖形化開(kāi)發(fā)環(huán)境擴展至嵌入式信號處理應用程序設計,提供了一個(gè)易于使用的、現成的方法來(lái)學(xué)習信號處理技術(shù),使得DSP開(kāi)發(fā)者擁有了一個(gè)圖形化和系統級的設計開(kāi)發(fā)選擇。隨著(zhù)我們的設備在性能和復雜度方面的提升,圖形化和系統級的設計和開(kāi)發(fā)工具的作用起到越來(lái)越重要的作用。
本文以TMS320C6713EVM開(kāi)發(fā)板為硬件平臺,利用LabVIEW DSP模塊和LabVIEW DSP Test Toolkit for TI DSP工具包實(shí)現LabVIEW與DSP的整合,完成了基于TMS320C6713EVM硬件平臺的自適應濾波器系統辨識應用的設計。
2 DSP在虛擬儀器設計中的應用
數字信號處理是一門(mén)極其重要的學(xué)科和技術(shù)領(lǐng)域,在眾多領(lǐng)域得到了廣泛的應用。DSP(數字信號處理器)與在嵌入式系統中常用的其它微處理器(如單片機、通用處理器)相比,DSP強大的數據處理能力和高速的數據吞吐率使其在圖像處理、語(yǔ)音處理等方面的性能遠遠優(yōu)于其它微處理器。同時(shí),隨著(zhù)超大規模集成電路的發(fā)展,生產(chǎn)成本進(jìn)一步降低,DSP解決方案在嵌入式圖像、語(yǔ)音處理這樣的數字信號處理典型應用中已成為工程師的首選。
虛擬儀器在很多情況下采用上位機實(shí)現,微機也可以進(jìn)行數字處理,并且微機可以直接采用浮點(diǎn)運算,其運算精度也可以做得很高。但是與用微機實(shí)現虛擬儀器相比,采用DSP芯片實(shí)現虛擬儀器具有以下優(yōu)點(diǎn):(1)DSP芯片特有的存儲及總線(xiàn)結構可以保證在一個(gè)機器周期內多次訪(fǎng)問(wèn)程序空間和數據空間及在一個(gè)指令周期內同時(shí)進(jìn)行運算,滿(mǎn)足了數字信號處理中的并行運算要求;(2)在數據采集和輸出時(shí),都要用到A/D和D/A,其刷新是通過(guò)定時(shí)器來(lái)完成的,DSP芯片內置在片定時(shí)器,用戶(hù)可以通過(guò)控制程序對定時(shí)器進(jìn)行精確的設置,從而實(shí)現精確定時(shí)和采樣處理,這在上位機實(shí)現中是做不到的。
通常作為虛擬儀器硬件部分的數據采集卡所完成的僅僅是采集數據和傳輸數據,而虛擬儀器中最耗時(shí)最復雜的數據分析處理卻留給計算機的CPU去完成,從而導致了虛擬儀器實(shí)時(shí)性和精確性的不足。DSP可以從數據采集到數據處理再到數據的傳輸,把數據分析處理的工作留給DSP來(lái)完成,那么計算機的工作就僅僅是完成數據的簡(jiǎn)單整理、顯示、存儲和輸出,這樣很好地彌補了以往虛擬儀器速度和精度方面的不足。
此外,當系統運行在Windows等多任務(wù)操作系統時(shí),特別是在處理如FFT等大容量、高精度的運算時(shí),CPU資源會(huì )造成嚴重不足,這給虛擬儀器的應用帶來(lái)一定的不便。虛擬儀器能借助DSP處理系統,將采集來(lái)的數據在DSP中進(jìn)行預處理,然后再將數據傳遞給軟件部分,這樣不但沒(méi)有增加系統的負擔,而且可以讓系統用更多的時(shí)間來(lái)處理其他事情。因此,把DSP技術(shù)有機地應用到虛擬儀器中是虛擬儀器設計的一個(gè)重要發(fā)展方向。
3 基于LabVIEW 的DSP系統級設計
3.1 LabVIEW DSP模塊
LabVIEW DSP模塊是一個(gè)全功能可視化數字信號處理器算法和系統的設計、實(shí)現與分析的工具。該模塊與LabVIEW集成,功能強大,可生成專(zhuān)為DSP優(yōu)化的應用程序,是DSP開(kāi)發(fā)的新思路。其特點(diǎn)有如下:
?。?)將LabVIEW核心性能擴展至可直接利用信號處理函數和編程組件對NI SPEEDY-33、TI C6416 DSK、TI C6713 DSK以及TI C6711 DSK進(jìn)行編程,無(wú)需單獨的DSP編譯器,且不必重寫(xiě)代碼即可在支持的DSP目標之間切換,具有多DSP目標的代碼移植性。
?。?)全面支持Express VI功能,具有圖形化和系統級的選擇對DSP設備進(jìn)行編程,具有面向未來(lái)設計的代碼模塊性和獨立應用開(kāi)發(fā)能力等。
?。?)可更快地減少反復的設計周期和總體的開(kāi)發(fā)時(shí)間,并且在實(shí)時(shí)地對目前的DSP硬件作出改變的同時(shí)馬上顯示結果。
?。?)具有易于訪(fǎng)問(wèn)DSP目標的模擬和數字I/O線(xiàn)以及滿(mǎn)足實(shí)時(shí)交互需要的交互式GUI,可以建立實(shí)時(shí)的應用程序。
同時(shí),LabVIEW DSP模塊集成了最新的NI LabVIEW數字濾波器設計工具包,可以將使用LabVIEW設計的濾波器下載至TI和NI DSP硬件設備。LabVIEW DSP模塊非常適合通信、自定義控制算法、數字和最小方均根(LMS)濾波以及音頻處理和分析等領(lǐng)域的應用。
3.2 LabVIEW DSP Test Toolkit
利用LabVIEW工具包中的DSP Test Toolkit可以使在LabVIEW環(huán)境下設計的DSP系統可以全部或部分運行于硬件平臺上。DSP Test Toolkit與DSP模塊不同,利用DSP模塊可直接對DSP硬件進(jìn)行編程,無(wú)需單獨的DSP編譯器。而DSP Test Toolkit則必須通過(guò)CCS (Code Composer Studio) 實(shí)現對DSP的開(kāi)發(fā)。DSP Test Toolkit提供了一系列可以使LabVIEW和CCS接口的VI,如圖1所示。
圖1 DSP Test Toolkit在DSP設計中的作用
DSP Test Toolkit提供的VIs分為兩組:CCS Automation VIs和CCS Communication VIs。CCS Automation VIs使CCS代碼通過(guò)LabVIEW自動(dòng)執行,包括(1)打開(kāi)CCS,(2)建立項目,(3)復位CPU,(4)加載程序,(5)運行代碼,(6)停止 CPU,(7)關(guān)閉CCS。這些步驟與在CCS中的是相同的。
CCS Communication VIs能夠使數據通過(guò)RTDX通道進(jìn)行交換。例如:CCS RTDX寫(xiě)VI與CCS RTDX讀VI分別用于向DSP一方寫(xiě)入和讀取數據。需要注意的是,以上的VIs都具有多態(tài)性。因此,LabVIEW與CCS之間的數據類(lèi)型和數據格式必須嚴格匹配才能建立LabVIEW DSP整合。此外,在LabVIEW與C6x DSK目標板之間的通信可以利用TMS320C6x DSP的實(shí)時(shí)數據交換(RTDX)的功能來(lái)實(shí)現。此功能允許一個(gè)DSK目標板和一個(gè)PC主機(運行LabVIEW)之間進(jìn)行數據交換,而不需要停止DSP 一方的程序執行。這種數據交換的實(shí)現可以通過(guò)聯(lián)合測試行動(dòng)組(JTAG)連接,或者使用通用串行總線(xiàn)接口模擬JTAG來(lái)連接。RTDX可以設置為兩種模式:非連續模式和連續模式。在非連續模式下,數據寫(xiě)入主機的日志文件中。這種模式一般是用于記錄。在連續模式下,數據由RTDX主機中的庫來(lái)緩沖。這種模式通常是用于連續顯示數據。 當由PC/LabVIEW來(lái)顯示處理的數據時(shí),RTDX必須設置為連續模式。
3.3 基于LabVIEW 的DSP系統級設計方法
使用LabVIEW進(jìn)行DSP開(kāi)發(fā),程序框圖主要分為兩大部分,如圖2所示。
圖2 CCS Automation.vi程序框圖
一部分是在圖中左側的順序結構。對應于CCS自動(dòng)進(jìn)程,包括CCS打開(kāi)項目VI、CCS創(chuàng )建VI、CCS復位VI、CCS加載代碼VI和CCS 運行VI。此外,還有順序結構右側的CCS中斷VI和CCS關(guān)閉項VI目也是CCS自動(dòng)進(jìn)程的一部分。順序結構中的文件I/O模版的三個(gè)函數用來(lái)創(chuàng )建 CCS項目文件路徑,這樣就可以在CCS中打開(kāi)項目文件。通過(guò)這些VI和函數,打開(kāi)CCS、創(chuàng )建項目、在DSP上加載和運行程序,這些進(jìn)程都可以通過(guò) LabVIEW一端來(lái)控制。順序結構中的Dsp.pjt是DSP項目,如LMS.pjt、FFT.pjt等,由設計者依據不同設計要求在CCS中創(chuàng )建。
程序框圖中的另一部分為While循環(huán)結構,包括系統數據、參數的輸入輸出顯示及分析等圖形化代碼及CCS RTDX通信模塊。CCS RTDX通信模塊使得LabVIEW和DSP之間連續交換數據。
在程序運行中,通過(guò)前面板上的Code Composer Status可以清楚地顯示CCS運行狀態(tài),如圖3所示。
圖3 前面板CCS進(jìn)程狀態(tài)顯示示例
任何DSP的開(kāi)發(fā)程序都可以套用圖2所示的程序模式進(jìn)行基于LabVIEW的開(kāi)發(fā)設計。對于不同的DSP設計,Dsp.pjt和LabVIEW while循環(huán)內圖形化代碼是不同的。
4 DSP設計實(shí)例
4.1 系統辨識原理
自適應濾波器具有在未知環(huán)境下良好運行并跟蹤輸入統計量隨時(shí)間變化的能力,使得自適應濾波器成為信號處理和自動(dòng)控制應用領(lǐng)域強大的設備。自適應濾波器應用分為四種類(lèi)型:辨識、逆模型、預測及干擾消除,其中系統辨識的目的在于設計一個(gè)自適應濾波器逼近一個(gè)給定的未知的動(dòng)態(tài)系統。應用自適應濾波器實(shí)現系統辨識的基本結構如圖4所示。
圖4 系統辨識的基本結構
在自適應濾波器的應用中,一個(gè)重要的問(wèn)題是確立使可調節的濾波器參數最優(yōu)的標準(或準則)。最小均方(LMS)算法能夠產(chǎn)生一個(gè)二次性能指數作為濾波器系數的函數,從而具有單一的最小值,它是自適應濾波器的一種最基本的算法,所以本文采用LMS算法來(lái)實(shí)現自適應濾波器的應用。
4.2 基于TMS320C6713EVM的系統辨識設計
硬件平臺選用的是TMS320C6713EVM高速語(yǔ)音信號(采集)處理平臺。該平臺采用了Texas Instruments公司高性能浮點(diǎn)DSP器件 TMS320C6713B。使用的仿真器為5100USB V2.0系列DSP仿真器。
軟件設計部分如圖5所示。由LabVIEW的Express VI產(chǎn)生的正弦波作為輸入信號,以巴特沃思濾波器VI作為信號所通過(guò)的未知系統。在CCS開(kāi)發(fā)環(huán)境下用C語(yǔ)言編寫(xiě)實(shí)現自適應濾波器的LMS算法程序,在 LabVIEW開(kāi)發(fā)環(huán)境下用G語(yǔ)言開(kāi)發(fā)自適應濾波器的應用程序與圖形界面,通過(guò)LabVIEW與CCS之間的實(shí)時(shí)數據交換(RTDX)實(shí)現通信。
圖5 系統辨識程序框圖
通過(guò)前面板可以清楚直觀(guān)的看到自適應濾波器輸出逐漸逼近未知系統的輸出,最后準確的識別出未知系統的過(guò)程。輸入信號除了使用單頻正弦波還以均勻白噪聲為輸入,實(shí)驗結果表明均可達到對未知系統的辨識,驗證了整個(gè)系統功能的正確性及設計方法的有效性。程序運行結果如圖6所示。
圖6 系統辨識運行結果
5 結論
本文在LabVIEW開(kāi)發(fā)環(huán)境下實(shí)現了基于TMS320C6713EVM DSP硬件開(kāi)發(fā)平臺的自適應濾波器應用設計——系統辨識。其設計方法區別于傳統的DSP設計開(kāi)發(fā)方法,是DSP設計新方法的有益嘗試。這種設計方法大大縮短了DSP的開(kāi)發(fā)周期,充分發(fā)揮了DSP和LabVIEW的特點(diǎn),將復雜運算交給DSP去實(shí)現,同時(shí)通過(guò)LabVIEW的可視化界面可以清楚地看到程序運行的結果與波形,方便實(shí)現在線(xiàn)調試,運行結果直觀(guān)、清晰。使用LabVIEW開(kāi)發(fā)環(huán)境進(jìn)行DSP的開(kāi)發(fā)擺脫了繁瑣的基于文本的語(yǔ)言代碼和復雜的調試過(guò)程,可以輕松實(shí)現對DSP的開(kāi)發(fā),是DSP設計的一個(gè)新的發(fā)展方向,可以很好地應用于工程實(shí)踐及DSP教學(xué)。
濾波器相關(guān)文章:濾波器原理
c語(yǔ)言相關(guān)文章:c語(yǔ)言教程
濾波器相關(guān)文章:濾波器原理
電源濾波器相關(guān)文章:電源濾波器原理
數字濾波器相關(guān)文章:數字濾波器原理
評論