一、實驗目的
掌握fir濾波器的設計方法
二、實驗裝置
計算機、zy13dsp12bd實驗箱、5402evm板。
三、實驗原理
參考教材第七章第二節《fir濾波器的dsp實現方法》。
四、實驗內容
將採集到的訊號經過dsp處理,將fir處理後的波形在ccs中顯示出來。
五、實驗步驟
1、用**機將計算機與zy13dsp12bd實驗箱連線好,並依次開啟實驗箱電源、**機電源,然後執行ccs軟體。
2、新建乙個專案:點選project-new,將專案命名為fir1,並將專案儲存在自己定義的資料夾下,注意資料夾一定要用英文名,不要將資料夾取名為中文名,因為ccs軟體不能識別以中文命名的資料夾。
3、新建乙個原始檔:點選file-new-source file可以開啟乙個文字編輯視窗,點選儲存按鍵,儲存在和專案相同的乙個資料夾下面(fir1),儲存型別選擇*.asm(如果原始檔是c語言編寫的,儲存型別選擇*.
c,本實驗中的例程是使用組合語言編寫的,所以選擇*.asm為儲存型別),我們在這裡將儲存名字命名為 。
4、在專案中新增原始檔:在新建立了乙個原始檔以後,要想使用ccs編譯器對該原始檔進行編譯還需要將原始檔新增到專案中去。新增方法是在工程管理器中右鍵單擊在彈出的選單中選擇add files,然後將剛才建立的檔案新增到該專案中去。
5、編寫源程式:
在工程管理器中雙擊 ,將出現文字編輯視窗,在該文字編輯視窗中輸入如下內容:
* 用線性緩衝區和直接定址方法實現fir濾波器
* n=5,y(n)=h0*x(n)+h1*x(n-1)+h2*x(n-2)+h3*x(n-3)+h4*x(n-4) *
.title ""
.mmregs定義暫存器名稱及對應位址
.def start定義程式入口
分配資料儲存區
l .set 10
.ref sintable
.bss y,1y
xn .usect "xn",1 ;x(n)
xnm1 .usect "xn",1 ;x(n-1)
xnm2 .usect "xn",1 ;x(n-2)
xnm3 .usect "xn",1 ;x(n-3)
xnm4 .usect "xn",1 ;x(n-4)
h0 .usect "h0",1 ;h0
h1 .usect "h0",1 ;h1
h2 .usect "h0",1 ;h2
h3 .usect "h0",1 ;h3
h4 .usect "h0",1 ;h4
beforefir .usect "beforefir",l
afterfir .usect "afterfir",l
參數列data
tableword 1*32768/10 ;h0=0.1注:除以10是為了
word -3*32768/10 ;h1=-0.3 ;把引數變成純小數
word 5*32768/10 ;h2=0.5乘以32768表示把
word -3*32768/10 ;h3=-0.3 ;小數點移到最高位後面
word 1*32768/10 ;h4=0.1
text
start: ssbx frct小數乘法
把參數列複製到資料儲存區的h0-h4
stm #h0,ar1h0指標賦給ar1
rpt #4下一條指令重複5次
mvpd #table,*ar1逐項複製參數列,相當於執行下列操作:
par=table,*ar=*par,ar=ar+1,par=par+1
stm #xn+1,ar1把x(1)--x(n-4)賦初值0
rpt #3
st #0,*ar1+
stm #xn+4,ar3ar3=#xnm4
stm #h0+4,ar4ar4=#h4
stm #y,ar1
ld #beforefir,dp
stm #beforefir,ar1
rptl-1)
mvpd #sintable,*ar1+
ld #xn,dp使資料頁指向xn
stm #beforefir,ar5
stm #afterfir,ar6
mvdk *ar5+,@xn
fir1: ld @xnm4,t ;x(n-4)--->t
mpy @h4,ah4*x(n-4)---->a
ltd @xnm3x(n-3)--->t
x(n-3)--->x(n-4)
mac @h3,aa+h3*x(n-3)--->a
ltd @xnm2x(n-2)--->t
x(n-2)--->x(n-3)
mac @h2,aa+h2*x(n-2)--->a
ltd @xnm1x(n-1)--->t
x(n-1)--->x(n-2)
mac @h1,aa+h1*x(n-1)--->a
ltd @xnx(n)--->t
x(n)--->x(n-1)
mac @h0,aa+h0*x(n)--->a
sth a,@y儲存y(n)
mvkd @y,*ar6+
bd fir1
mvdk *ar5+,@xn
end6、編寫鏈結配置檔案如下:
-o-m-e start
memory
sections
7、編寫中斷向量表檔案
參照實驗一,可不作修改。
8、建立檔案檔案內容如下:
def sintable
sect "sintable"
sintable:
word 32767,0,0,0,0,0
9、對專案進行編譯和鏈結:
把依次新增到專案後,點選project-compile file,在專案編譯成功之後點選project-build選項對該專案進行鏈結,生成*.out檔案。
10、裝載可執行檔案:
要讓程式**在dsp內部執行必需將生成的*.out檔案裝載到dsp內部,裝載方法是點選:file-load programe再選擇生成的檔案就可以將程式裝載到dsp的內部儲存器中。
11、執行程式並檢視結果:
由於單位脈衝響應的輸出結果(afterfir段)分配在空間0x2015處,所以:
a) 點選view——graph——time/frequence,出現「graph property dialog」,按下圖所示設定,然後點選ok,即會出現乙個圖形視窗。
b) 開啟檔案在其倒數第二行處設定斷點(即在mvdk *ar5+,@xn處)。
c) 按f12執行程式(注意不要直接執行程式)。此時即可看到如下圖所示的結果,且圖形不斷閃爍(在更新)。
單位脈衝響應輸出結果
一、實驗目的
1、 了解卷積演算法的原理。
2、 學會編寫卷積演算法和呼叫ccs自帶的dsplib庫中的convol()函式。
3、 掌握dsplib庫函式的呼叫。
二、實驗裝置
計算機、zy13dsp12bd實驗箱、5402evm板。
三、實驗原理
1、若lti系統對的響應為h(n),h(n)稱為系統的單位脈衝響應,則由時不變特性可得出系統對的響應為h(n-k);系統對的響應為,即離散時間lti系統對輸入x(n)的響應為
此式稱為卷積和,通常記為
2、dsplib庫
在c:\ti\c5400\dsplib\include\中列出所有dsplib庫函式的原型,在程式中呼叫這些庫函式時必須包括該標頭檔案,即在主程式中加入下面**:
#include ""
並將或者加入到工程檔案中,針對超過64kw(64k*16bit)的大編譯模式。
在中給出以下方面的一些函式原型:
a) 實數或者複數的fft演算法;
b) 數字濾波和卷積;
c) 自適應濾波
d) 相關濾波
e) 數字函式
f) 三角函式
g) 矩陣運算
h) 雜項如資料格式轉換等。。
在ti的技術文件中詳細介紹了c5400的dsplib庫函式的具體用法。
四、實驗內容和步驟
1、 開電,執行ccs軟體,開啟專案檔案編譯執行並**。
2、 設定斷點,再點選「執行」按鈕,如下圖所示。這裡的卷積演算法是在程式中編寫的。
3、 點選view->graph->time/frquence開啟圖形屬性對話方塊,如下設定。採用雙綜觀察2路訊號輸入變數x_real 和h_real。觀察點數為100點,型別為float型。
4、 再設定單綜觀察1路訊號的輸出y_real.觀察的點數為100點,型別為float型。
5、 點選「ok」後,可以看到如下波形。
左邊一副圖中顯示的是輸入訊號x_real和h_real,右邊一副圖顯示的是x_real和h_real卷積後的結果。
實驗五實驗六指導書
實驗五 matlab實現dft matlab為計算資料的離散快速傅時葉變換,提供了一系列豐富的數學函式,主要有fft ifft fft2 ifft2和czt等。當所處理的資料的長度為2的冪次時,採用基 2演算法進行計算,計算速度會顯著增加。所以,要盡可能使所要處理的資料長度為2冪次或者用添零的方式來...
實驗六精餾實驗
對於雙組分混合液的蒸餾,若已知汽液平衡資料,測得塔頂流出液組成xd 釜殘液組成xw,液料組成xf及回流比r和進料狀態,就可用 法在y x圖上,或用其他方法求出理論塔板數nt。精餾塔的全塔效率et為理論塔板數與實際塔板數n之比,即 影響塔板效率的因素很多,大致可歸結為 流體的物理性質 如粘度 密度 相...
實驗六 實驗報告
實驗目的 學習了photoshop軟體各部分功能後,能運用軟體結合自己的設計理念,製作乙個綜合性作品。實驗內容 利用實驗材料,運用photoshop軟體,製作乙個體現自己設計理念的綜合性實驗作品。實驗步驟 1.開啟四幅 12 3 4 將各個 都複製乙個圖層 2.選擇 4,選擇磁性套索工具選出人物及懸...