以文本方式查看主題 - 曙海教育集團論壇 (http://www.hufushizhe.com/bbs/index.asp) -- DSP6000系統開發 (http://www.hufushizhe.com/bbs/list.asp?boardid=29) ---- 基于DSP代碼自動生成技術實現FIR低通濾波器 (http://www.hufushizhe.com/bbs/dispbbs.asp?boardid=29&id=1625) |
||||||||
-- 作者:wangxinxin -- 發布時間:2010-11-22 14:09:08 -- 基于DSP代碼自動生成技術實現FIR低通濾波器 1 引言 Matlab是一個強大的分析、計算和可視化工具,且編程非常方便。Simulink是Matlab產品中用來建模、分析和仿真各種動態系統的圖形化工具。通過豐富的功能模塊,可以迅速地創建動態系統模型。同時Simulink也是Real-Time Workshop(以下簡稱RTW)的支持平臺。通過RTW可以自動生成面向不同目標的代碼。 Matlab輔助DSP進行混合編程,很多學者作了許多研究和嘗試。文獻[1]提出了由Matlab向DSP傳送原始數據以及DSP反饋處理后數據的方法,充分利用了Matlab優秀的可視化功能。但仍然要在DSP開發環境中編寫復雜的代碼。文獻[2,3]利用工具包——Matlab Link for CCS Development Tools(以下簡稱CCSLink),實現了在Matlab、TI開發環境和DSP硬件間的雙向連接,極大地降低了開發人員調試DSP代碼的難度和工作量。但CCSLink只用于DSP程序的調試、數據傳遞和驗證等過程,同樣需要編寫復雜的DSP代碼。而另一工具包——ETTIC6000,利用RTW直接從Simulink模型生成面向TI C6000 DSP的高效代碼,不再需要傳統的DSP編程過程。本文在此基礎上進行研究,設計并自動生成FIR低通濾波器的DSP代碼。 2 ETTIC6000的功能、特點及開發DSP代碼過程 ETTIC6000是Math Works公司和TI公司聯合開發的工具包。利用RTW直接從Simulink模型生成面向TI的C6701 EVM和C6711 DSK目標板的可執行文件或CCS工程。在DSP代碼自動生成過程中,ETTIC6000必須與Simulink,RTW,CCS和TI目標板等軟硬件相結合才能充分顯現其功能。它們之間的關系如圖1所示。 應用ETTIC6000開發DSP代碼的過程一般經過如下幾步: (1)概念構思和DSP處理算法設計。 (2)在Simulink環境下,利用Matlab基本模塊,Simulink基本模塊,數字信號處理工具箱,以及專門面向TI C6000的模塊組等模塊,構建算法模型并運行仿真。并非所有模塊都可以轉化為DSP代碼并順利編譯。例如一些面向Win32的程序模塊在轉化為DSP代碼或在CCS中進行編譯時就會出現無法兼容或找不到相關頭文件等錯誤提示。 (3)對仿真結果進行評價,若仿真結果滿意,即可在模型中加入C6701 EVM或C6711 DSK目標板的輸入輸出模塊。否則,重新進行算法設計、建模、仿真。 (4)在設計好的面向具體目標板的模型中,設置Simulation選項,包括RTW中的編譯連接等選項。 (5)執行代碼自動生成、編譯、調試并裝載到目標板上運行。 從整個設計過程來看,DSP開發人員只需在Matlab中進行Simulink模型設計、構建與仿真。省去了編寫、調試復雜DSP代碼的過程。下面以實現FIR低通濾波器為例,詳細闡述應用ETTIC6000開發DSP代碼的全部過程。
3 FIR低通濾波器實現過程 此系統要求對頻率分別為200 Hz,600 Hz和1 000 Hz,幅度為1的混合正弦信號進行低通濾波,保留200 Hz的正弦信號。采用Simulink環境下的FDATool工具設計FIR低通濾波器。在以下軟硬件環境中設計并通過測試,以下軟件均采用默認安裝路徑,若軟硬件環境不同,相應的參數設置將有很大差別。 硬件環境:TMS320C6711 DSK開發板、PC聲卡、雙頭音頻線等。 軟件環境:Matlab 7.4(R2007a),CCStudio 3.1,Simulink 6.6,Real-Time Workshop 6.6,Target forTI C6000(tm)3.2,Link for Code ComposerStudio 3.0。 Matlab附帶軟件可以在命令窗口通過ver命令查看,附帶軟件的使用可以充分利用help命令。 3.1 Simulink環境下構建算法模型并仿真 依據設計思想,在Simulink環境下,通過Simulink基本模塊庫和數字信號處理工具箱構建如圖2所示系統模型。三個輸入信號模塊關鍵參數設置:頻率分別設置為200 Hz,600 Hz和1 000 Hz;幅度為1;采樣頻率為1 600 Hz。FDA Tool關鍵參數設置:濾波類型選擇低通;階數為80;采樣頻率為1 600 Hz;起始頻率為100 Hz;截至頻率為500 Hz。
對圖2所示模型運行仿真,仿真結果如圖3所示。從濾波后的波形看,此濾波器的參數設置比較合理。
3.2 構建面向C6711 DSK目標模型 (1)依據仿真模型利用ETTIC6000中C6711 DSK輸入輸出模塊構建如圖4所示面向C6711 DSK目標模型。C6711 DSK ADC與C6711 DSK DAC參數采用默認設置。FDA Tool參數與仿真模型中參數保持一致,設置完成后將模型保存在Matlab默認目錄下,命名為myfilter.mdl。
(2)依據圖4構建如圖5所示的硬件平臺。TMS320C6711 DSK與PC通過并口線連接;信號源由PC聲卡輸出,經C6711 DSK A/D轉換后進行FIR低通濾波,由Line OUT將濾波后信號輸出至PC聲卡,最后采集聲卡信號,顯示濾波后波形。 3.3 DSP代碼自動生成 進行DSP代碼自動生成前,首先要安裝、配置相應的軟硬件環境。正確安裝、配置是此系統能夠成功運行的關鍵。具體配置有如下幾個方面: (1)依據圖5實現硬件連接。在BIOS中將并口傳輸模式改為EPP模式;在DOS模式下,運行C:\CCS-tudio v3.1\C6000\DSK6X11\conftest\dsk6xtst.exe文件,可以檢測目標板是否連接正常;最后檢查PC聲卡輸入輸出是否正常。 (2)正確配置CCS。點擊Setup CCStudio V3.1,選擇C6711 DSK Port 378 EPP Mode模塊,點擊Add,設置并口地址為0x378;保存設置后退出。 (3)打開myfilter.mdl模型,展開simulation>Configuration Paraineters面板,面板中相應選項設置如下:
其他選項設置為默認模式。 (4)點擊RTW面板Generate code按鈕,執行代碼自動生成過程,此時Matlab命令窗口將顯示如下信息:
(5)CCStudio 3.1將自動運行,窗口中自動生成myfilter.pit的工程文件。 3.4 FIR低通濾渡器實現 (1)對myfiher.pit的工程文件在CCS中進行編譯、連接、裝載、運行。 (2)利用Matlab中的daqfcengen函數,可以實現向PC聲卡輸出端輸出波形。在Matlab命令窗口輸入daqfcengen命令,將顯示波形發生器窗口,將頻率設置為200 Hz,幅度設置為1,如圖6所示。點擊Start按鈕。在Matlab命令窗口繼續輸入daqfcengen命令,相繼實現頻率為600 Hz,1 000 Hz的波形輸出。這樣PC聲卡就輸出了三個不同頻率波形的疊加。
(3)利用Matlab中的daqscope函數,可以實現顯示PC聲卡輸入端的波形。在Matlab命令窗口輸入daqscope命令,將顯示波形顯示器窗口,如圖7所示,即為濾波后的輸出波形。
4 結 語 從整個FIR低通濾波器實現過程看,沒有編寫一行DSP代碼,全部采用圖形化的編程模式,生成的CCS工程文件既可供初學者學習、借鑒。又可供具有一定編程經驗的程序開發者對代碼進一步修改或優化,提高代碼執行效率。 從實驗結果看,設計的FIR低通濾波器濾波效果明顯。充分說明利用DSP代碼自動生成技術實現FIR低通濾波器的方法是可行的、高效的。Matlab輔助DSP在語音處理、圖像處理、通信、雷達等領域還有許多值得研究的地方。采用多語言工具進行程序開發也是今后發展的趨勢. |
||||||||
-- 作者:我愛jen3p -- 發布時間:2010-12-4 21:39:13 -- 不錯。看起來不錯哦 不錯?雌饋聿诲e哦,送給朋友,長輩,領導什么的。不僅好看又能凈化空氣。禮客中國http://www.leekecn.com |