《數字信號處理與DSP實現技術》課后習題與參考答案 - 下載本文

5、已知FIR濾波器的系統函數為

H(z)??(???.?z??????.?z????.?z???z??)

求其單位脈沖響應h(n),判斷是否具有線性相位,求其幅度特性函數和相位特性函數。

6、用矩形窗設計一個線性相位低通FIR濾波器,要求過渡帶寬度不超過?/?rad。希望逼近的理想低通濾波器頻率響應函數為:Hd(ej??e?j??,?????c)??

??,?c????(1)求出理想低通濾波器的單位脈沖響應hd(n);

(2) 求出加矩形窗設計的低通FIR濾波器的單位脈沖響應h(n)的表達式,確定?與N的關系。

7、用窗設計法設計一個線性相位FIR低通濾波器,要求通帶截止頻率為?/?rad,過渡帶寬為??/??rad,阻帶最小衰減為45dB。

(1)選擇合適的窗函數及其長度,求出h(n)的表達式; (2)用MATLAB繪出FIR的頻譜特性。 解:

8、分別用矩形窗、漢寧窗、漢明窗、Blackman、Kaise(β=8.5)窗設計10階(N=11)FIR數字濾波器,使得其頻譜特性滿足:

??,?????.?? |H(ej?)|????,?.?????繪出濾波器單位取樣響應和頻率特性。

9、采用頻率采樣法和Blackman窗函數設計一個FIR低通數字濾波器,取樣響應長度為32,截止頻率取?c?0.3?。 解:

10、采用頻率采樣法和Blackman窗函數設計一個10階FIR高通數字濾波器,截止頻率取?c?0.3?。

第8章 TMS320C55x DSP處理器思考題

1.C55x CPU包括哪些功能單元?

2.C55x內部總線有哪些?各有什么作用? 3.C55x的CPU包括哪幾個狀態寄存器?

4.C55x的CPU在讀取程序代碼和讀寫數據時有什么不同? 答:

5.C55x的堆棧有哪些種類?涉及到的寄存器有哪些? 6.C55x對中斷是如何處理的? 7.C55x有哪些尋址方式?

8.閱讀下列程序,給程序加上注釋,指出該程序的功能。 (1)mov *AR0+,AC0

add *AR0+,AC0 mov AC0,T0

(2)mpym *AR0+,*AR1+,AC0

mpym *AR0+,*AR1+,AC1

26

add AC1,AC0

mpym *AR0+,*AR1+,AC1 add AC1,AC0 mov AC0,T0

9.C55x的哪些指令最適合于完成以下運算 (1)

?xi?0L?1i?0L?1iyi

(2)

?(xL?1i?0ii?yi)2

(3)

?h[x(n?i)?x(n?L?1?i)]

10.什么是段指針?有何用途? 11.什么是命令文件?有何用途?

12.標號和注釋有什么差別?各自的作用是什么? 13.MEMORY和SECTIONS指令的作用是什么? 14.偽指令的作用是什么?

15.什么是初始化段和末初始化段?

參考答案

1. C55x芯片的CPU包含5個功能單元,分別為:指令緩沖單元(I單元);程序流單元(P單元);地址-數據流單元(A單元);數據運算單元(D單元);存儲器接口單元(M單元)。

2.C55x芯片內部含有12組獨立總線,分別為:程序地址總線(PAB):1組,24位;程序數據總線(PDB):1組,32位;數據讀地址總線(BAB、CAB、DAB):3組,24位;數據讀總線(BB、CB、DB):3組,16位;數據寫地址總線(EAB、FAB):2組,24位;數據寫總線(EB、FB):2組,16位。具體功能如下表

總 線 PAB PB CAB、DAB CB、DB BAB 寬 度 24位 32位 每組24位 每組16位 24位 功 能 讀程序的地址總線,每次從程序空間讀時,傳輸24位地址 讀程序的數據總線,從程序存儲器傳送4字節(32位)的程序代碼給CPU 這兩組讀數據的地址總線,都傳輸24位地址。DAB在數據空間或I/O空間每讀一次時傳送一個地址,CAB在兩次讀操作里送第二個地址 這兩組讀數據的數據總線,都傳輸16位的數值給CPU。DB從數據空間或I/O空間讀數據。CB在讀長類型數據或讀兩次數據時送第二個值 這組讀數據的地址總線,在讀系數時傳輸24位地址。許多用間接尋址模式來讀系數的指令,都要使用BAB總線來查詢系數值 這組讀數據的數據總線,從內存傳送一個16位數據值到CPU。 BB不和外存連接。BB傳送的數據,由BAB完成尋址某些專門的指令,BB 16位 在一個周期里用間接尋址方式,使用BB、CB和DB來提供3個16位的操作數。經由BB獲取的操作數,必須存放在一組存儲器里,區別于CB和DB可以訪問的存儲器組 EAB、FAB EB、FB 每組24位 每組16位 這兩組寫數據的地址總線,每組傳輸24位地址。EAB在向數據空間或I/O空間寫時傳送地址。FAB在雙數據寫時,傳送第二個地址 這兩組寫數據的數據總線,每組都從CPU讀16位數據。EB把數據送到數據空間或I/O空間。FB在寫長類型數據或雙數據寫時傳送第二個值 27

3.C55x的CPU包括4

27

個狀態寄存器,分別為ST0_55、 ST1_55 、ST2_55、 ST3_55。

4.當CPU讀取程序代碼時,使用24位地址訪問相關字節;而CPU讀寫數據時,使用23位地址訪問相關的16位字。兩種情況下地址總線上均為24位,只是數據尋址時地址總線上的最低位強制填充0。 5.C55x支持兩個16位堆棧,即數據堆棧和系統堆棧,涉及到的寄存器如下表 寄存器 XSP SP XSSP SSP SPH 含 義 擴展數據堆棧指針 數據堆棧指針 擴展系統堆棧指針 系統堆棧指針 XSP和XSSP的高位域部分 指令訪問 是MMR,可通過專用指令訪問 不是MMR,只能通過專用指令訪問 是MMR,可通過專用指令訪問 是MMR,可通過專用指令訪問 注意:寫XSP或XSSP都會影響SPH的值 訪 問 屬 性 不是MMR(存儲器映射寄存器),只能通過專用 6.DSP處理中斷的步驟如下:

(1)接收中斷請求。軟件和硬件都要求DSP將當前程序掛起。(2)響應中斷請求。CPU必須響應中斷,如果是可屏蔽中斷,響應必須滿足某些條件。如果是不可屏蔽中斷,則CPU立即響應。(3)準備進入中斷服務子程序。CPU要執行的主要任務有:①完成當前指令的執行,并沖掉流水線上還未解碼的指令;②自動將某些必要的寄存器的值保存到數據堆棧和系統堆棧;③從用戶實現設置好的向量地址獲取中斷向量,該中斷向量指向中斷服務子程序。(4)執行中斷服務子程序。CPU執行用戶編寫的ISR。ISR以一條中斷返回指令結束,自動恢復步驟(3)中自動保存的寄存器值。 7.C55x芯片通過以下三種尋址方式訪問數據空間、存儲器映射寄存器、寄存器位和I/O空間。①絕對尋址方式:通過在指令中指定一個常數地址完成尋址;②直接尋址方式:使用地址偏移量尋址;③間接尋址方式:使用指針完成尋址。 8.(1)mov *AR0+,AC0 ;將AR0指向的數據放到累加器AC0中,AR0加1

add *AR0+,AC0 ;將AR0指向的數據與累加器AC0相加,同時AR0寄存器加1 mov AC0,T0 ;將累加器AC0的值寫入T0寄存器 整體程序實現16位加法功能。 (2)mpym *AR0+,*AR1+,AC0

;將寄存器AR0、AR1指向的數值相乘放到累加器ACO,同時寄存器AR0、AR1加1 mpym *AR0+,*AR1+,AC1 ;

;將寄存器AR0、AR1指向的數值相乘放到累加器AC1,同時寄存器AR0、AR1加1 add AC1,AC0

;將累加器AC1與AC0相加,數值放到ACO mpym *AR0+,*AR1+,AC1 ;

;將寄存器AR0、AR1指向的數值相乘放到累加器AC1,同時寄存器AR0、AR1加1 add AC1,AC0

;將累加器AC1與AC0相加,數值放到ACO mov AC0,T0

;將累加器AC0的值寫入T0寄存器 整體程序實現y??axi?13ii功能。

9.C55x的哪些指令最適合于完成以下運算 (1)

?xi?0L?1i?0L?1iyi 適合指令:mpym,add,mov

(2)

?(xi?yi)2 適合指令:squr,add,sub,mov

28

(3)

?h[x(n?i)?x(n?L?1?i)] 適合指令:mpym,add,mov

ii?0L?110.匯編器為每個段分配一個程序指針,這些程序指針稱為段指針(SPCs),一個SPC指向一個段的當前地址初始時,匯編器設置每個SPC為0,當匯編器在段中填充代碼和數據時,SPC跟著增加,如果重新開始匯編一個段,匯編器會記得該段SPC的原來值,并繼續增加SPC。

11.鏈接命令文件用來為鏈接器提供鏈接信息,可將鏈接操作所需的信息放在一個文件中,這在多次使用同樣的鏈接信息時,可以方便地調用。

12.①標號必須從語句的第1列寫起,其后的冒號“:”可任選 ;標號為任選項,若不使用標號,則語句的第一列必須是空格、星號或分號;標號是由字母、數字以及下劃線和美元符號等組成,最多可達32個字符;標號分大小寫,且第一個字符不能是數字;在使用標號時,標號的值是段程序計數器SPC的當前值。②注釋可位于句首或句尾,位于句首時,以“*”或“;”開始,位于句尾時,以分號“;”開始;注釋可單獨一行或數行;注釋是任選項。③標號是供本程序或其它程序調用,注釋用來說明指令功能,便于用戶閱讀。 13.MEMORY指令允許用戶定義一個目標系統的存儲器映射,可以命名存儲器的各個部分,并且指定開始地址和大小。SECTIONS指令告訴鏈接器合成輸入段為輸出段,并且告訴鏈接器把這些輸出段放在存儲器的某個位置。

14.偽指令用于處理匯編和連接過程,是匯編語言源程序的重要組成部分,但是最后產生的目標文件不包括它們。 15.初始化段包含可執行代碼或者初始化數據,當程序被裝載時,它們就被放到處理器存儲空間里。未初始化段是指保留一定的存儲器空間,一段程序可以在運行過程中使用這個空間,用來生成和存儲變量:

第9章 數字信號的DSP處理器實現思考題

1、C語言作為DSP的開發語言有哪些優勢? 2、小存儲模式和大存儲器模式有什么不同? 3、Pragma編譯預處理命令有什么用途? 4、關鍵字interrupt有什么作用?

5、如何用C語言訪問DSP的I/O空間? 6、小存儲器模式和大存儲器模式有何區別? 7、Inline關鍵字的作用是什么? 8、運用雙線性變換法基于C語言設計一個IIR低通濾波器,其中通帶截止頻率ω=0.4π通帶最大衰減αp=3dB;阻帶最小衰減αs=15dB;阻帶截止頻率ωs=0.5π。

29

29





pk10冠军百期错一 广西快乐十分20选5个中4个 米多多棋牌游戏脚本 京香julia番号 财神捕鱼送27 乐享麻将圈贵州捉鸡麻将 安徽快三走势图怎么看 华东15选5今晚胆号预测 排球比分规则介绍 炒股新手 好玩的捕鱼游戏 北京28预测神测在线 中国福彩快乐双彩走势图 哇嘎黄色片在线播放 云南11选五5开奖结果前三组 多乐彩开奖直播 吉祥长春麻将