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