《電子技術應用》
您所在的位置:首頁 > EDA與制造 > 設計應用 > MATLAB輔助DSP設計的研究與實現
MATLAB輔助DSP設計的研究與實現
摘要: 提出結合MATLAB來開發DSP系統的思想,闡述了實現該思想的兩種工具,并詳細介紹了使用 MATLAB Link for Code Composer Studio輔助DSP設計的相關內容。
關鍵詞: Matlab DSP CCS TMS320VC5416
Abstract:
Key words :

  1  引言

  數字信號處理器(Digital Signal Processor,DSP)是指一類具有專門為完成數字信號處理任務而優化設計的系統體系結構、硬件和軟件資源的單片可編程處理器件。數字信號處理器是實現數字信號處理任務的一個重要而有效的手段,隨著通信和信息技術的飛速發展,數字信號處理器件在最近20年得到了空前的發展和應用。

  MATLAB是美國MathWorks公司開發的一種科學計算軟件,專門以矩陣的形式處理數據,在科學計算、控制系統、信息處理等多種領域有著廣泛的應用。MATLAB具有強大的計算、分析和可視化功能,但MATLAB語言是解釋執行的,執行速度較慢;而DSP是為了完成實時數字信號處理任務而設計的,算法的高效實現是DSP器件的顯著特點,但是其開發門檻高。如果能把MATLAB和DSP開發工具結合在一起,取長補短,相輔相成,將是DSP設計人員夢寐以求的一種新的開發思想。MathWorks公司和TI公司聯合開發的MATLAB Link for Code Composer Studio(簡稱CCSLink)和Embedded Target for TI T

 

MS320C6000 DSP工具正是這一思想的完美實現。

 

  本文所作研究是以自行研制的DSP教學實驗箱為平臺進行的,其DSP采用TMS320VC5416芯片實現。本文內容安排如下:第 1部分在介紹相關背景知識的基礎上,引入使用MATLAB輔助DSP設計的思想;第2部分介紹了MATALB中實現這一思想的兩種工具;第3部分介紹了工具之一 CCSLink的實現方式及工作原理;第4部分結合實驗平臺給出了CCSLink的應用實例。第五部分對本文作了總結。

  2  MATLAB輔助DSP設計的方法概述

  實現MATLAB輔助DSP設計的方法有兩種,即CCSLink和Embedded Target for TI TMS320C6000 DSP。前者可實現MATLAB與C2000/C5000/C6000 DSP之間的數據交互和程序控制;后者可實現從Simulink模型自動生成DSP目標代碼,但僅支持C6000系列的部分DSP器件。

  考慮到實驗平臺是以C5000 DSP為基礎的,并且第二種工具較容易操作等因素,下面主要研究利用CCSLink輔助DSP設計的方法。

  2.1 Embedded Target for TI TMS320C6000 DSP

  Code Composer Studio(CCS)是TI提供的DSP的集成開發環境。

  對于C6000系列而言,利用工具Embedded Target for TI TMS320C6000 DSP,用戶可以從Simulink模型直接生成針對DSP目標板的可執行文件或者CCS工程文件,實現了MATLAB/Simulink與CCS集成開發環境(IDE)的無縫連接,從而把設計人員從繁雜的DSP編程中解脫出來,將主要的精力放在設計而不是DSP編程上,所以極大地縮短了系統的測試和開發周期,進而保證了所設計系統的高性能。

  2.2 MATLAB Link for Code Composer Studio

  集成在MATLAB6.5或更高版本中的CCSLink工具把MATLAB、TI DSP及其集成開發環境CCS連接在一起,使得我們可以在MATLAB環境下就可以完成對CCS和DSP目標板的操作,包括與目標內存之間的數據交互,檢測處理器的狀態,控制DSP程序的運行等。它提供了MATLAB、CCS和目標DSP板的雙向連接,開發者可以利用MATLAB中強大的可視化、數據處理和分析工具對DSP中的數據進行分析和再處理,以輔助DSP系統設計,這樣就極大地降低了開發人員編寫DSP代碼的難度和工作量,提高了整個DSP系統的性能和可行性。

  我們利用CCSLink提供的相關函數能夠實現MATLAB與目標DSP的存儲器及寄存器間的信息交互,如同操作MATLAB變量一樣來讀、寫TI DSP中的存儲器或寄存器,即整個目標DSP對于MATLAB而言是透明的。CCSLink支持TI的C2000/C5000/C6000等多系列 DSP,應用廣泛。

  3  CCSLink的實現方式及工作原理

  3.1 CCSLink的實現方式

  利用CCSLink即可實現MATLAB、CCS和目標DSP之間的信息交互。CCSLink共提供了3種實現方式:

  1)使用與CCS IDE的連接對象。利用此對象來創建CCS IDE和MATLAB的連接,從MATLAB命令窗中即可運行CCS IDE中的應用程序,查詢目標DSP的狀態信息,修改或讀取目標DSP的存儲器或寄存器中的數據,甚至可以調試DSP程序。其工作原 理見3.2節。

 

  2)使用與RTDX(Real-Time Data Exchange)的連接對象。提供MATLAB和硬件DSP 之間的實時通信通道。利用此連接對象,可以打開、使能、關閉或禁止DSP的RTDX通道,利用此通道可以實時地向硬件目標DSP發送和取出數據而不必停止 DSP上運行的程序。例如把原始數據發送給程序進行處理,并把處理結果取回到MATLAB空間中進行分析。

  RTDX連接對象實際上是CCS連接對象的一個子類,在創建CCS連接對象的同時創建RTDX連接對象,它們不能分別創建。

  3)使用嵌入式對象。在MATLAB環境中創建一個可以代表嵌入在目標C程序中的變量的對象。利用嵌入式對象可直接訪問嵌入在目標 DSP中的存儲器和寄存器中的變量,即把目標C程序中的變量作為MATLAB的一個變量對待。

  3.2 CCSLink的工作原理

  上面的三種方式在具體實現時略有不同,但是其原理相似,不失一般性,我們通過第一種方式——與CCS IDE的連接對象,來介紹CCSLink的工作機理。

  1)選擇目標DSP并創建CCS IDE連接對象

  在MATLAB環境下使

 

用函數ccsdsp并配置相應的屬性名和屬性值即可創建一個CCS IDE連接對象cc:

 

  cc=ccsdsp(‘boardnum’, x, ‘procnum’, y, ‘timeout’, z);

  其中,boardnum、procnum、timeout都是屬性名。分別表示創建連接對象時所使用的目標板編號、DSP處理器編號及全局超時值。

  2)在MATLAB環境下加載CCS工程文件

  projfile=fullfile(matlabroot, ‘toolbox’, ‘tiddk’, …, ‘ccsproject.pjt’);   %取得工程文件

  projpath = fileparts(projfile);  %取得工程文件路徑

  open(cc, projfile);   %加載工程文件,該函數實現把文件filename加載在CCS IDE中

  cd(cc, projpath);    %改變CCS的工作路徑

  3)在MATLAB環境下編譯、連接并下載可執行文件

  創建了CCS IDE連接對象并加載工程文件后,即可通過函數build()編譯和鏈接工程文件,以生成針對目標DSP的可執行文件(.out文件);通過函數 load()下載可執行文件到目標DSP中。具體方法如下:

   build(cc);              %編譯、鏈接工程文件,生成目標DSP可執行文件

  load(cc, ‘ccsproject.out’);     %下載可執行文件到目標DSP,可執行文件名與工程名相同

  4)在MATLAB環境下控制程序運行

  CCSLink提供了3個函數用于控制目標DSP的運行狀態。通過這些函數,在MATLAB下對DSP的控制操作就像在CCS IDE中一樣方便,實際上也確實是這樣進行的。

   halt(cc);         %中斷處理器的運行

  restart(cc);     %復位程序計數器PC,重新執行程序

  run(cc, ‘runtohalt’, 30); %執行程序到斷點處,最后一個參數表示超時時間,此處為30s

  5)在MATLAB環境下對CCS IDE連接對象進行操作

  在MATLAB中可以方便的操作DSP存儲器和寄存器中的數據,包括讀操作和寫操作。下面以讀寫目標DSP存儲器和寄存器中的數據來說明。

  date=read(cc, [256,0], ‘double’, 100);  %從目標存儲器目的地址100H(即十進制數256)處開始,讀取100個雙精度數并賦給MATLAB對象date

  reg=regread(cc, ‘A0’, ‘2scomp’);        %讀取DSP寄存器A0中的數據,并轉化成雙精度數分配給MATLAB對象reg

  write(cc, [256,0], double([1.0 2.0 3.0]));%向目標存儲器100H開始的地址處,寫入三個雙精度數據

  6)關閉CC S IDE連接對象

 

  當一切操作執行完成后,需要刪除CCSDSP對象,以收回系統資源。

  clear cc;         %關閉CCS IDE連接對象

  4  CCSLink應用實例

  通過CCSLink工具,可以使用MATLAB來進行DSP的輔助設計。在此以FIR濾波器為例,介紹CCSLink在DSP設計中的應用。在該實例中,FIR濾波的核心內容由DSP實現,而算法仿真、系數產生、用戶界面、結果驗證等部分由MATLAB輔助完成。

  4.1 FIR濾波器設計

  設輸入信號為x(n),輸出信號為y(n),則FIR濾波器對應的差分方程可表示為:

MATLAB輔助DSP設計的研究與實現公式

  其中,h(k)(k=0,1,2,…,N-1)表示濾波器系數序列,是濾波器設計的關鍵。h(k)可以通過MATLAB工具箱提供的濾波器函數 fir1()和fir2()來獲取:首先通過建立MATLAB/Simulink模型,根據所需設計低通濾波器的性能要求來確定濾波器的階數和截止頻率等參數。本例所設計的FIR低通濾波器參數為:

 

截止頻率(Fc)2kHz,采樣頻率(Fs)8kHz,階數(N)40。然后借助函數 fir1(N, WN)即可返回對應濾波器的系數矩陣,其中N為階數,WN為濾波器的歸一化截止頻率,即WN= 2Fc/Fs,且0≤WN≤1。

 

  4.2 DSP濾波算法實現

  結合MATLAB產生的濾波器系數,就可以編寫DSP濾波主程序了,關鍵代碼如下:

  FIR_TASK:

   STM              #K_FIR_BFFR, BK        ; 設置FIR循環緩沖區的大小  

   LD          *INBUF_P+, -1, A         ; 數據輸入

  FIR_FILTER:

   STL        A, *FIR_DATA_P+%     ; 最新數據替代最舊數據

  RPTZ      A, (K_FIR_BFFR-1)

   MAC       *FIR_DATA_P+0%, *FIR_COFF_P+0%, A ; 乘累加

   STH        A,*OUTBUF_P             ; 數據輸出

  4.3 MATLAB輔助設計

  本設計中,算法仿真、系數產生、用戶界面等部分由MATLAB輔助完成。算法仿真、系數產生方法在4.1中已詳細介紹,本節重點介紹用戶界面部分。本圖形用戶界面可以實現如下功能:修改參數,如濾波參數n和Wn,這種參數選取方法避免了反復修改DSP程序的弊端,可以滿足不同層次使用者的使用;控制操作過程,如加載工程文件、下載可執行文件、運行程序等;繪制 DSP輸入數據的時域及頻域信號;繪制濾波后DSP輸出數據的時域及頻域信號;使用MATLAB提供的濾波函數對輸入數據進行濾波計算,并把所得結果與 DSP輸出信號進行比較,以驗證或改良DSP算法。

  用戶界面的流程圖如圖1所示,主要由圖形界面和回調函數兩大部分組成。其中,圖形界面由文件FIR_BPF.m實現;回調函數總共由6個文件實現,分別是input.m,input2.m,output.m,output2.m,lvbopin.m和 lvbohou.m。

  當輸入帶有干擾的方波信號后,分別查看輸入波形、MATLAB濾波輸出信號、DSP濾波輸出信號,結果如圖2所示。比較 MATLAB濾波輸出信號和DSP濾波輸出信號,據此可以采用修改濾波器系數或DSP程序等措施來改進DSP濾波算法。

用戶圖形界面流程圖

圖1 用戶圖形界面流程圖

實驗結果

圖2 實驗結果        

  5 結束語

  本文探索并實現了利用CCSLink輔助DSP設計的完整過程。同時以FIR濾波器為例,利用CCSLink輔助設計了基于DSP TMS320VC5416的應用系統,該系統具有靈活的參數設置和快速的處理效率,很好地達到了輔助DSP設計的目的;再者,利用MATLAB的GUI工具設計了相應的圖形用戶界面,便于不同技術層次的用戶操作,增強了DSP系統的適用性。

  本文作者創新點:1.發展了利用MATLAB輔助DSP設計的思想,把DSP系統設計中的算法仿真、系數產生、結果驗證、用戶界面等環節交由 MATLAB完成,實現了二者的無縫連接。2.通過MATLAB設計的人機界面,增強了DSP系統的適用性,便于不同技術層次的用戶操作。

  參考文獻:

  [1] 陳永春. 從Matlab/Simulink模型到代碼實現[M]. 北京:清華大學出版社, 2002.

  [2] MATLAB Link for Code Composer Studio Development Tools User’s Guide. MathWorks, 2002.

  [3] 劉劍科,王艷芬

 

,王勝利. MATLAB Link for CCS Development Tools在DSP系統設計中的應用[J]. 信息技術與信息化, 2005, (4).

  [4] 鄒彥,唐東,寧志剛等. DSP原理及應用[M]. 北京:電子工業出版社, 2005.

  [5] 謝良喜,孔建益,王興東等. MATLAB讀入數據的幾種方式探討[J]. 微計算機信息, 2005,(5):135~136.

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲乱码久久| 欧美亚洲视频在线观看| 亚洲五月婷婷| 亚洲茄子视频| 亚洲国产色一区| 亚洲第一天堂av| 亚洲福利视频一区二区| 亚洲第一中文字幕在线观看| 影音先锋国产精品| 亚洲大胆av| 亚洲激情视频在线观看| 亚洲国产视频直播| 亚洲精品视频免费| 99热精品在线观看| 在线视频日韩精品| 亚洲已满18点击进入久久| 亚洲一区在线观看免费观看电影高清| 亚洲午夜高清视频| 亚洲一区二区三区在线看| 亚洲一区日韩| 欧美一区二区三区免费观看| 欧美一区二区三区日韩视频| 亚洲大胆av| 亚洲人成艺术| 一本久道久久久| 亚洲中字在线| 久久岛国电影| 久久亚洲欧美国产精品乐播| 日韩网站在线观看| 亚洲深夜激情| 午夜亚洲视频| 久久激情视频久久| 久热精品在线| 欧美激情亚洲另类| 国产精品igao视频网网址不卡日韩| 欧美亚一区二区| 国产视频亚洲| 影音先锋一区| 亚洲人成人一区二区三区| 国产精品国产馆在线真实露脸| 国产精品久久久久久亚洲调教 | 欧美在线视频免费| 亚洲黄色免费电影| 亚洲午夜电影在线观看| 新片速递亚洲合集欧美合集| 久久久一区二区| 欧美精品亚洲精品| 国产欧美日韩一区二区三区在线观看| 国产字幕视频一区二区| 亚洲免费观看高清完整版在线观看| 亚洲一区二区视频在线观看| 亚洲国产日韩欧美在线图片 | 亚洲欧美日韩国产另类专区| 久久精品视频在线免费观看| 欧美激情综合色| 国产精品尤物| 亚洲激情电影在线| 亚洲欧美视频一区| 日韩天堂在线观看| 久久精品一区二区三区中文字幕| 欧美精品www| 国产日韩在线看| 日韩一本二本av| 久久精品日产第一区二区| 亚洲影院在线| 欧美福利小视频| 国产一区二区看久久| 一区二区三区高清| 久久精品夜色噜噜亚洲a∨| 亚洲一区二区三区高清| 美女视频黄a大片欧美| 国产精品久久久久影院亚瑟| 91久久国产精品91久久性色| 亚洲欧美日本国产专区一区| 99精品福利视频| 久久综合免费视频影院| 国产精品免费网站| 亚洲精品字幕| 亚洲啪啪91| 久久亚洲国产成人| 国产精品亚洲综合| 夜夜嗨av色一区二区不卡| 亚洲国产精品一区二区三区| 欧美一级网站| 国产精品大片免费观看| 亚洲国产精品久久久久久女王| 欧美一区二区三区的| 老司机午夜精品视频在线观看| 99精品视频免费观看视频| 久久精品人人做人人爽| 国产精品日韩欧美综合| 99国产精品99久久久久久| 亚洲日本在线视频观看| 久久网站热最新地址| 国产精品一区二区你懂得| 夜夜嗨av一区二区三区免费区| 亚洲国产欧美一区二区三区久久| 欧美在线观看网址综合| 国产精品成人一区二区三区吃奶| 亚洲裸体视频| 一本色道久久综合亚洲精品高清| 毛片精品免费在线观看| 狠狠综合久久| 欧美在线观看一二区| 久久国产精品久久久久久电车| 国产精品日韩欧美一区| 亚洲性人人天天夜夜摸| 亚洲一区二区三区影院| 欧美日韩亚洲系列| 亚洲乱码一区二区| 夜夜嗨av一区二区三区网站四季av| 欧美国产精品劲爆| 亚洲娇小video精品| 亚洲精品三级| 欧美精品激情在线| 亚洲日本无吗高清不卡| 日韩一级裸体免费视频| 欧美精品少妇一区二区三区| 亚洲人体偷拍| 夜夜嗨一区二区| 欧美日韩一区二区免费在线观看| 亚洲美女少妇无套啪啪呻吟| 亚洲最快最全在线视频| 欧美日韩精品是欧美日韩精品| 亚洲伦理在线观看| 亚洲特色特黄| 国产精品高潮呻吟视频| 亚洲一区二区视频| 欧美在线短视频| 狠狠色香婷婷久久亚洲精品| 亚洲国产精品女人久久久| 蜜桃久久av一区| 亚洲日韩欧美视频一区| 正在播放欧美一区| 国产精品黄色| 欧美伊人久久大香线蕉综合69| 久久看片网站| 亚洲国产精品成人综合色在线婷婷| 亚洲精品一区二区三区在线观看| 欧美巨乳波霸| 一区二区免费看| 欧美一区二区三区男人的天堂| 国产一区成人| 亚洲欧洲日产国产综合网| 欧美一区午夜精品| 国产小视频国产精品| 亚洲一级高清| 久久精品国产久精国产一老狼| 精品不卡视频| 一本综合精品| 国产欧美日韩另类视频免费观看| 亚洲高清视频在线| 欧美人成网站| 午夜欧美大片免费观看| 麻豆精品视频| 一区二区三区色| 久久久久青草大香线综合精品| 亚洲国产日韩一区二区| 亚洲综合精品自拍| 黄色国产精品| 亚洲天堂免费观看| 国产字幕视频一区二区| 99这里只有久久精品视频| 国产精品日韩在线| 亚洲国产综合在线| 欧美先锋影音| 久久精彩视频| 欧美日韩国产a| 欧美在线观看你懂的| 欧美日本韩国| 亚洲免费综合| 欧美激情一区二区三区成人| 亚洲欧美日韩综合| 欧美国产欧美亚洲国产日韩mv天天看完整 | 亚洲免费网址| 欧美成人午夜激情在线| 亚洲在线第一页| 免费中文日韩| 亚洲欧美日韩系列| 欧美喷潮久久久xxxxx| 欧美一区激情视频在线观看| 欧美日韩免费看| 亚洲精品国产精品国自产观看浪潮| 性伦欧美刺激片在线观看| 91久久精品国产91久久| 欧美中文字幕不卡| 日韩视频免费| 欧美www视频| 欧美亚洲午夜视频在线观看| 欧美激情精品久久久久久变态| 午夜日韩在线| 欧美丝袜一区二区三区| 亚洲经典在线| 国产欧美日韩在线观看| 中国av一区| 91久久夜色精品国产九色| 久久久久久久一区| 亚洲一区二区三区激情| 欧美久久久久中文字幕| 亚洲国产综合91精品麻豆|