實驗五 實驗六

2022-11-28 15:51:02 字數 4794 閱讀 2737

一、實驗目的

掌握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,選擇磁性套索工具選出人物及懸...