freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

軟件無線電信道處理的dsp實現(xiàn)畢業(yè)論文-資料下載頁

2025-07-05 16:40本頁面

【導(dǎo)讀】水面,日益受到國內(nèi)外相關(guān)通信廠商的重視。它使得通信體制具有很好的通用性、靈活性和可配置性,并使系統(tǒng)互聯(lián)和升級變得容易。同頻段的數(shù)字濾波器,通過濾波器進行不同信道信息的接收處理。果達到軟件無線電的信道處理要求。件無線電自從1992年由JooMitola提出以來,在最近幾年取得了引人注目的進展,塊組成,不同的通信功能采用更新軟件的方式加以實現(xiàn)。經(jīng)濟效益、推動社會和技術(shù)的進步。中的采樣定理、數(shù)字濾波器理論、不同頻段FIR濾波器的設(shè)計方法。通過近20年的發(fā)展,移動通信己成為通信領(lǐng)域最活躍、市場份額最高的產(chǎn)業(yè),也成為國際上市場競爭最激烈的部分。面對多種通信體制并存、各種標(biāo)準(zhǔn)層出不。面對這個問題,國際上已經(jīng)進行了大量的研究。的方案,它將成為未來無線通信設(shè)備設(shè)計的核心所在。之間的作戰(zhàn),因此多種通信體制的互聯(lián)互通要求成了日益突出的矛盾。高度靈活性、開放性的新一代無線通信系統(tǒng)。

  

【正文】 雜。與此同時,市場對基于 DSP 的產(chǎn)品需求越來越大,競爭也越來越激烈,因此對開發(fā)效率的要求也越來越高。對于開發(fā)者,要想在有限的開發(fā)周期內(nèi)充分利用 DSP 器件的每個 MIPS,有效的開發(fā)工具至關(guān)重要。 Code Composer Studio(CCS)是 TI公司推出的一個集成性 DSP軟件開發(fā)工具。在一個開放式的插件 (plugin )結(jié)構(gòu)下, CCS 內(nèi)部集成了以下的軟件工具 : (1)C54x 代碼產(chǎn)生工具 (2)軟件模擬器 (Simulator ) (3)實時基礎(chǔ)軟件 DSP/BIOS (4)主機與目標(biāo)機之間的實時數(shù)據(jù)交換軟件 RTDX (5)實時分析 (realtime analysis)和數(shù)據(jù)可視化 (data visualization capabilities )軟件 代碼產(chǎn)生工具 (Code Generate Tools)構(gòu)成了 CCS 集成開發(fā)環(huán)境的基礎(chǔ)部件。下面分別介紹編譯器、匯編優(yōu)化器、連接器和其他一些工具。 一、 編譯器 C54x 的 C編譯器對 符合 ANSI 標(biāo)準(zhǔn)的 C 代碼進行編譯,生成匯編代碼。 C 編譯器內(nèi)外分為語法分析器 (Paraser ) , C 優(yōu)化器 (Optimizer)和代碼產(chǎn)生器 (Code Generator ) 3 部分。 (1)語法分析器的功能是對 C 代碼進行預(yù)處理,進行語法檢查,然后產(chǎn)生一個中間文件 (.if)作為 C 優(yōu)化器或代碼產(chǎn)生器的輸入。語法分析器還對宏、文件包含和條件編譯等進行處理。 (2) C 優(yōu)化器對語法分析器的輸出文件進行優(yōu)化,目的是縮短代碼長度和提高代碼執(zhí)行效率,并生成 .opt 文件。(3)代碼產(chǎn)生器利用語法分析器和優(yōu)化器產(chǎn)生的中間文件 生成匯編代碼 (.asm )。 二、 匯編優(yōu)化器 匯編優(yōu)化器的作用是對用戶編寫的線性匯編代碼 (.sa )進行優(yōu)化。匯編優(yōu)化器是 芯片 代碼產(chǎn)生工具內(nèi)極具特色的一部分,它在 DSP 業(yè)界首創(chuàng)了對線性匯編代碼自動進行優(yōu)化的技術(shù)。 對于性能要求很高的場合,用戶需要用線性匯編對關(guān)鍵的 C代碼進行改寫,然后采用匯編優(yōu)化器進行優(yōu)化,最大限度的提高代碼效率。 線性匯編語言是為了簡化 芯片 匯編語言編程而設(shè)計的,它不是一個獨立的編程語言。與 C54x 標(biāo)準(zhǔn)匯編語言相比,采用線性匯編不需要考慮以下因素 : ( 1) 并行指令安排 ( 2) 指令延遲 ( 3) 寄存器使用 三、 匯編器 匯編器產(chǎn)生可重新分配地址的機器語言目標(biāo)文件。匯編器產(chǎn)生的代碼是 TI的 COFF 文件格式。匯編代碼內(nèi)除了 C54x 機器指令外,還可以有匯編偽指令(asse。tuber directive)。 四、 連接器 連接器的作用是接受可重新分配地址的目標(biāo)文件 (.obj)作為輸入,生成可執(zhí)行的目標(biāo)文件 (.out )。其主要功能是根據(jù)用戶定義的數(shù)據(jù)和程序存放地址,把匯編器生成的浮動地址代碼和數(shù)據(jù)映射到用戶系統(tǒng)的實際地址空間。 濾波器的 CCS 實現(xiàn)原理 ??16 第一、 FIR 濾波器中 1?z 的實現(xiàn) 。 圖 33 為橫截型 FIR 濾波器的結(jié)構(gòu)圖。由于 FIR 濾波器沒有反饋回路,因此它是無條件穩(wěn)定系統(tǒng),其單位沖激響應(yīng) h(n)是一個有限長序列。 由圖 33可見, FIR 濾波算法實際上是一種乘法累加運算。它不斷地輸入樣本 x(n),經(jīng)延時 (z1? ),做乘法累加,再輸出濾波結(jié)果 y(n)。 . FIR 濾波器的結(jié)構(gòu)圖 C54x 片內(nèi)沒有 I/O 資源, CPU 通過外部譯碼可以尋址 64K I/O 單元。有兩條指令實現(xiàn)輸入和輸出 : PORTR PA, Smem:將 PA 的端口內(nèi)容送數(shù)據(jù)存儲器 Smem PORTW Smem, PA。將地址 Smem 的數(shù)據(jù)存儲器內(nèi)容送端口 PA 這兩條指令至少要 2個字和 2個機器周期。如果 I/O 設(shè)備是慢速器件,則需要插入等待狀態(tài)。此外,當(dāng)利用長偏移間接尋址或絕對尋址 Smem 時 ,還要增加 1個字和 1 個機器周期。 實現(xiàn) FIR運算的關(guān)鍵環(huán)節(jié)是實現(xiàn) z1? ,常用的方法是用 線性緩沖區(qū)法實現(xiàn) z1?和用循環(huán)緩沖區(qū)法實現(xiàn) z1? 。 Z1 1Z 1Z …… h(N1)…… h(1) h(0) h(N) y(n) ( 1) 用線性緩沖區(qū)法實現(xiàn) z1? 線性緩沖區(qū)法又稱延遲線法,其特點是 :對于N 級的 FIR 濾波器,在數(shù)據(jù)存儲器中開辟一個稱之為滑窗的 N個單元的緩沖區(qū),存放最新的 N 個輸入樣本 :從最老的樣本開始,每讀一個樣本后,將此樣本向下移位,讀完最后一個樣本后,輸入最新樣本至緩沖區(qū)的頂部。 在這里,我們先用 N=6 的線性緩沖區(qū)存儲器來說明。如圖 所 示,圖中線性緩沖區(qū)頂部是存儲器的低地址單元,底部為高地址單元。在圖 中,當(dāng) 第一次執(zhí)行 ? ? ? ?inxanyi ?? ?時,由 ARx 指向線性緩沖區(qū)的底部,并開始取數(shù)、運算。每次乘法累加運算之后,還要將該數(shù)據(jù)向下 (高地址 )移位。 y(n)求得以后,從 I/O 口輸入一個新數(shù)據(jù) x(n+1)至線性緩沖區(qū)的頂部 (低地址 )單元,再將 ARx指向底部高地址單元,開始第二次執(zhí)行 ? ? ? ?inxanyi i ???? ?? 1!50, 如圖 34 所示。之后,再計算 y(n+2)...。 對存儲器的延時操作是通過使用 存儲器延時指令 DELAY 實現(xiàn)的,它可以將數(shù)據(jù)存儲單元中的內(nèi)容向較高地址的下一單元傳送。實現(xiàn) z1? 的 DSP 運算指令為 : DELAY Smem (Smem? Seme+1,即將數(shù)據(jù)存儲器單元的內(nèi)容送下一高地址單元 DELAY *AR2 :AR2 指向源地址,即將 AR2 所單元內(nèi)容復(fù)制到下一高地址單元中 延時指令與其它指令相結(jié)合,可以在同樣的機器周期內(nèi)附加完成這些數(shù)據(jù) 傳送操作。例如下面指令 : 延時指令與其它指令相結(jié)合 ,可以在同樣的機器周期內(nèi)附加完成這些數(shù)據(jù) 傳送操作。例如下面指令 : LT+DELAY? LTD 指令:單數(shù)據(jù)存儲器的值裝入 T寄存器并送下一單元延時 MAC+DELAY? MACD 指令:操作數(shù)與程序存儲器值相乘 后累加并送下一單元延時 用線性緩沖區(qū)實現(xiàn) z1? 的優(yōu)點是,新老數(shù)據(jù)在存儲器中存放的位置直接明 了 ( 1) 用循環(huán)緩沖區(qū)法實現(xiàn) z1? 循環(huán)緩沖 區(qū)法的特點是 :對于 N 級的 FIR 濾波器在數(shù)據(jù)存儲器中開辟一個稱之為滑窗的 N個單元的緩沖區(qū),滑窗中存放最新的 N 個輸入樣本 :每次輸入新的樣本時,以新樣本改寫滑窗中的最老的數(shù)據(jù),而滑窗中的其它數(shù)據(jù)不需要移動 。利用卡片 BK(循環(huán)緩沖區(qū)長度 )寄存器對滑窗進行間接尋址,循環(huán)緩沖區(qū)地址首尾相鄰。下面以 N=6 的 FIR 濾波器循環(huán)緩沖區(qū)為例,說明循環(huán)緩沖區(qū)中數(shù)據(jù)是如何尋址的。 6級循環(huán)緩沖區(qū)的結(jié)構(gòu)如圖 35所示,循環(huán)緩沖區(qū)頂部為低地址單元。 當(dāng)?shù)谝淮螆?zhí)行完 ? ? ? ?inxanyi i ?? ??50之后,間接尋址的輔助器 ARx 指向x(n5)。然后,從 I/O 口輸入數(shù)據(jù) x(n+1)。將原來存放 x(n5)的數(shù)據(jù)存儲器單元改寫為 x(n+1)。接著,進行第二次乘法累加運算 ? ? ? ??? ????50 11 i i inxany,最后 ARx 指向 x(n4)。 然后,從 I/O 口輸入數(shù)據(jù) x(n+2),將原來存放 x(n4)的數(shù)據(jù)存儲器單元改寫為 x(n+2)。之后,再進行第 3次乘法累加運算 y(n+2),最后 ARx 將指向 x(n3)。然后,從 I/O 口輸入數(shù)據(jù) x(n+3),將原來存放 x(n3)的數(shù)據(jù)存儲單元改寫為x(n+3)。依次循環(huán)進行。 從上面的數(shù) 據(jù)更新可見,雖然循環(huán)緩沖區(qū)中新老數(shù)據(jù)不很直接明了,但是利用循環(huán)緩沖區(qū)實現(xiàn) z’的突出優(yōu)點是它不需要移動數(shù)據(jù),不存在一個機器期中要求能一次讀和一次寫的數(shù)據(jù)存儲器,因而可以將循環(huán)緩沖區(qū)定位在數(shù)據(jù)存儲器的任何位置 (線性緩沖區(qū)要求定位在 DARAM )。所以,在這里采用循環(huán)緩沖區(qū)法實現(xiàn)濾波器中的 z1? 。 實現(xiàn)循環(huán)緩沖區(qū)間接尋址的關(guān)鍵是使 N 個循環(huán)緩沖區(qū)單元首尾相鄰。要做到這一點,必須利用 BK(循環(huán)緩沖區(qū)長度 )寄存器實現(xiàn)按模間接尋址。可用的指令包括 : *ARx+% :增量、按模修 正 ARx:addr=ARx,ARx=circ(ARx+1) *ARx% :減量、按模修正 ARx:addr=ARx,ARx=circ(ARx1) *ARx+% :增 AR0、按模修正 ARx:addr=ARx,ARx=circ(ARx+AR0) *ARx0% :減 AR0、按模修正 ARx:addr=ARx,ARx=circ(ARxAR0) *+ARx(lk)%:減 AR0、按模修正 ARx:addr=circ(ARx+lk),ARx=circ(ARx+lk) 其中,符號 ” circ” 指按照循環(huán)緩沖區(qū)長度 BK 寄 存器中的值 (如 FIR 濾波器中的N 值 ),對 (ARx+1), (ARx1), (ARx+ARO), (ARxARO)或 (ARx+lk)值取模。這樣,就能保證循環(huán)緩沖區(qū)的指針 ARx 始終指向循環(huán)緩沖區(qū),實現(xiàn)循環(huán)緩沖區(qū)頂部和底部單元相鄰。 例如, (BK) =N=6}.(AR1)=0060h,用 *ARx+%間接尋址。第一次間接尋址后,AR1 指向數(shù)據(jù)存儲單元 0061h。第二次間接尋址后指向 0062h。到第 6 次間接尋址后指向 0066h。再按 BK中的值 6 取模, AR1 又回到 0060h。 為了使循環(huán)尋址正常進行,除了 用循環(huán)緩沖區(qū)長度寄存器 (BK)來規(guī)定循環(huán)緩沖區(qū)的大小外,循環(huán)緩沖區(qū)的起始的 N 個最低有效位必須為 0。 N值滿足 N2 R,R為循環(huán)緩沖區(qū)的長度。 第二,出入信號的產(chǎn)生。 在用 CCS 實現(xiàn)軟件無線電 FIR 濾波器時,先需要用C 語言產(chǎn)生一個方波信號數(shù)據(jù)文件 ,該方波信號持續(xù)一段時間為高電平,持續(xù)一段時間為低電平。當(dāng) CCS 程序?qū)ζ溲h(huán)連續(xù)讀取時,就可得到連續(xù)輸入的方波信號。其 C 語言程序 為 : include” ” include Void main(void) { FILE*fw。 Int i,j,t。 If((fw=fopen(“ ” ,” wt” ))==NULL) cout” The file “ ” was not opened” endl。 else { for(i=0。i1024。i++) { j=i%20。 if(j10) t=9000。 else t=9000。 fprintf(fw,” 0x%04x\n” ,t)。 } fclose(fw)。 } } 在這里使用 Microsoft Visual C++ 編譯環(huán)境下運行該程序,可得 1024個數(shù)據(jù),其方波為 10 個點的低電平信號,如此循環(huán)交替進行就得 到方波,其輸出數(shù)據(jù)文件如圖 36 所示。圖中只截取了 1024 點的一個周期的數(shù)據(jù)。同時,運行該程序后會在當(dāng)前工程目錄下產(chǎn)生 文件,打開該文件,刪除所有數(shù)據(jù)得到一個空的數(shù)據(jù)文件,另存為文件 fir ,作為數(shù)據(jù)輸出文件使用。 方波數(shù)據(jù)圖 第三、 FIR 濾波器程序的實現(xiàn)。 首先,需要編寫 、 程序。在這里,我們利用循環(huán)緩沖區(qū)和雙操作數(shù)尋址方法實現(xiàn) FIR 濾波器,采用 中所設(shè)計出的濾波器進行 濾波 :相當(dāng)于軟件無線電中的信道帶寬為 45MHz105MHz。編寫 程序如下 : .title “ ” ;給匯編程序取名 .mmregs ;定義存儲器映像寄存器 .def start ;定義標(biāo)號 start 的起始位置 .bss new_data,1 ;濾波器出入單元 .bss y,1 ;濾波器輸出單元 xn .usect “ xn” ,19 ;自定義 5 個單元空間的數(shù)據(jù)段 xn a0 .usect “ a0” ,19 ;自定義 5 個單元空間的數(shù)據(jù)段 a0 .data table .word 0 .word 81*32768/10000 .word 0 .word 193*32768/10000 .word 0 .word 2698*32768/10000 .word 0 .word 3995*32768/10000 .word 0 .word 2698*32768/10000 .word 0
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1