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