




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
PAGEPAGE1軟件無線電實驗報告基于FPGA的直接序列擴(kuò)頻發(fā)射機(jī)的設(shè)計姓名:學(xué)號:聯(lián)系電話:班級:指導(dǎo)老師:完成時間:2010-07-03目錄摘要2正文一、項目名稱2二、項目描述2三、實驗要求3四、實驗設(shè)備與仿真環(huán)境4五、總體設(shè)計與系統(tǒng)框圖4六、各模塊設(shè)計與仿真1)時鐘模塊52)待發(fā)射模塊設(shè)計73)卷積模塊設(shè)計104)擴(kuò)頻模塊設(shè)計.135)極性變換與內(nèi)插模塊設(shè)計156)基帶濾波模塊設(shè)計16七、系統(tǒng)聯(lián)調(diào)仿真17八、MATLAB仿真18九、實驗總結(jié)與體會20【摘要】擴(kuò)展頻譜通信系統(tǒng)(SpreadSpectrumCommunicationSystem)是指將待傳輸信息的頻譜用某個特定的擴(kuò)頻函數(shù)擴(kuò)展后成為寬頻帶信號,送入信道中傳輸,接收端再利用相應(yīng)手段將其解擴(kuò),從而獲取傳輸信息的通信系統(tǒng)。擴(kuò)頻信號是不可預(yù)測的偽隨機(jī)的寬帶信號;它的帶寬遠(yuǎn)大于欲傳輸信息(數(shù)據(jù))帶寬;具有類似于噪聲的隨機(jī)特性等。直接序列擴(kuò)頻(DSSS)是擴(kuò)頻通信方式中的一種,實現(xiàn)簡單,應(yīng)用廣泛?!菊摹恳?、項目名稱本文以Altera公司的FPGA為硬件平臺,以MAX-PLUSII為設(shè)計工具,實現(xiàn)直接基于FPGA的直接序列擴(kuò)頻發(fā)射機(jī)的設(shè)計序列擴(kuò)頻(DSSS)發(fā)射機(jī),頂層采用圖形設(shè)計方式,各模塊是基于VerilogHDL設(shè)計的。本設(shè)計中待發(fā)射信息是以循環(huán)讀ROM的方式讀取,信道編碼采用(2,1,7)卷積碼,擴(kuò)頻模塊采用擴(kuò)頻長度255的kasami碼,極性變換模塊為3bit二、項目描述量化模式,內(nèi)插模塊為每兩比特間插入7bit,輸出濾波為16階的FIR濾波器。文中給出了本設(shè)計實現(xiàn)的系統(tǒng)整體方框圖,VerilogHDL代碼實現(xiàn)及其仿真結(jié)果。仿真結(jié)果表明本設(shè)計精確度高,穩(wěn)定且輸出無毛刺。三、實驗要求(1)用QUARTUS或者M(jìn)AXPLUS軟件實現(xiàn)直接序列擴(kuò)頻發(fā)射機(jī)基帶部分硬件描述語言程序設(shè)計。要求有時序仿真的結(jié)果。(2)自己根據(jù)信號流圖設(shè)計。先估計所用資源的多少,選取合適的芯片。(3)芯片請選用ALTERA公司系列芯片。(4)按正規(guī)實驗報告格式撰寫,并上交打印后的文稿,要附程序。四、實驗設(shè)備與仿真環(huán)境整個試驗過程要用到的實驗設(shè)備主要是一臺PC機(jī)以及相關(guān)的軟件,主要的開發(fā)環(huán)境是Altera公司的Quartus軟件,并使用Matlab軟件進(jìn)行仿真檢驗。五、總體設(shè)計與系統(tǒng)框圖將整個系統(tǒng)劃分為如下幾個模塊:時鐘模塊,這個模塊將為其它各個模塊提供時時鐘信號;待發(fā)射模塊,在時鐘的控制下將待發(fā)射信息采用循環(huán)方式讀取ROM中的待發(fā)射信息,而ROM中存儲固定的200bit信息;卷積模塊的作用是對發(fā)射出來的信息進(jìn)行卷積方式的信道編碼,這樣可以提高信號的抗干擾能力;擴(kuò)頻模塊采用直接序列擴(kuò)頻的調(diào)制方式對卷積輸出的信碼進(jìn)行數(shù)字調(diào)制;極性變換與內(nèi)插模塊是對調(diào)制后的信息碼進(jìn)行處理來提高譯碼的準(zhǔn)確性;最后的濾波模塊對基帶信號進(jìn)行基帶成型濾波。各模塊之間的信號流向如下圖所示:六、各模塊設(shè)計與仿真1)時鐘模塊根據(jù)信號流程圖,發(fā)現(xiàn)整個系統(tǒng)所需要的時鐘有8Khz、16Khz、4.08Mhz、16.32Mhz。為了能讓各個模塊之間的信號實現(xiàn)更好的同步,設(shè)計思想如下:8Khz、16Khz、4.08Mhz的時鐘由32.64Mhz的時鐘信號產(chǎn)生,其中8K=32.64M/4080、16K=32.64M/2040,4.08M=32.64M/8,而32.64M時鐘信號由65.28M時鐘信號分頻而來,32.64M=65.28M/2。該模塊代碼如下:modulefenpin(reset,clk6528,clk3264,clk408,clk16,clk8);inputclk6528,reset; outputclk3264,clk408,clk16,clk8;regclk3264,clk408,clk16,clk8;reg[2:0]count1; reg[10:0]count2;reg[11:0]count3;always@(posedgeclk6528) clk3264<=~clk3264; always@(posedgeclk3264) begin if(!reset) begin count1<=0; count2<=0; count3<=0; end else begin count1<=count1+1; count2<=count2+1; count3<=count3+1; if(count1==7) begin count1<=0; clk408<=~clk408; end if(count2==2039) begin count2<=0; clk16<=~clk16; end if(count3==4079) begin count3<=0; clk8<=~clk8; end end endendmodule其仿真結(jié)果圖如下所示:(因為頻率的跨度大,所以分開觀察仿真圖)下圖可觀察65.28Mhz、32.64Mhz、4.08Mhz時鐘信號間的關(guān)系:下圖為16Khz與8Khz時鐘信號之間的關(guān)系:最后生成symbolfile供頂層設(shè)計用。調(diào)試過程中遇到的問題:軟件使用不是很熟悉,對于8Khz和16Khz時鐘信號的觀察總是沒有結(jié)果,因為endtime總是不能到幾十us的范圍,怎么也沒有結(jié)果。上網(wǎng)查了資料,主要是默認(rèn)的endtime沒有設(shè)置好,系統(tǒng)默認(rèn)的為1us,需要修改,tools下可以修改參數(shù)。初次仿真的時候總是存在很大的時延,程序也沒有問題,不知道怎么修改,請教同學(xué),說是仿真模式?jīng)]有選對,試了一下,果然是模式的問題。2)待發(fā)射模塊設(shè)計該模塊有兩個小模塊組成:send與myrom模塊。本模塊設(shè)計時是將待發(fā)射的信息存于固定的ROM中,Quartus中是在.mif文件中。通過地址指定發(fā)射信息的位置,然后在時鐘的控制下,循環(huán)讀取存在ROM中的200bit信息。讀取信息的算法如下:modulesend(reset,clk8,address);inputreset,clk8;output[7:0]address;reg[7:0]address;always@(negedgeclk8,negedgereset)beginif(!reset)address[7:0]<=8'b00000000;elsebeginif(address[7:0]==8'b11111001)address[7:0]<=8'b00000000;elseaddress[7:0]<=address[7:0]+1;endendendmodule該模塊仿真圖如下:(0到249的地址)該模塊的框圖如下所示:而待發(fā)射信息存于LPM_ROM0中如下所示:dss_sendrom模塊時序仿真(SimulationmodeTiming)結(jié)果如下:(存在時延)前48位數(shù)據(jù):01001010、01100110、10100100、01001010、10010100、10101000,仿真輸出結(jié)果與原始ROM中的數(shù)據(jù)一致。最后生成symbolfile供頂層設(shè)計用。調(diào)試過程中遇到的問題:存儲器一開始還不會使用,只能得到初始化的mif如下:不知道怎么得到待發(fā)射數(shù)據(jù)。請教同學(xué),才知道只要直接點擊修改即可。3)卷積模塊設(shè)計卷積模塊是整個系統(tǒng)中的一個主要模塊,本模塊采用(2,1,7)卷積來實現(xiàn)卷積編碼。卷積編碼原理框圖如下所示生產(chǎn)多項式為(133,171),相應(yīng)的表達(dá)式如下:C0<=cov_in^temp[1]^temp[3]^temp[4]^temp[6];//卷積碼的低位C1<=cov_in^temp[3]^temp[4]^temp[5]^temp[6];//卷積碼的高位卷積后是并行的兩位輸出,設(shè)計時需要進(jìn)行并串轉(zhuǎn)換,使輸出為串行輸出,控制輸出的時鐘頻率應(yīng)該是輸入時鐘頻率的兩倍。相應(yīng)代碼如下所示:moduleconv217(in,reset,clk16,clk8,outs,outc0,outc1);inputin,clk8,reset,clk16;outputouts,outc0,outc1;reg[5:0]temp;regouts,flag,outc0,outc1;always@(posedgeclk8) begin temp[0]<=in; temp[5:1]<=temp[4:0]; end always@(posedgeclk8)begin outc0<=temp[0]^temp[2]^temp[3]^temp[5]^in; outc1<=temp[2]^temp[3]^temp[4]^temp[5]^in; endalways@(posedgeclk16,negedgereset) begin if(!reset) flag<=0; else begin if(flag==0) begin outs<=outc0; flag=~flag; end else begin outs<=outc1; flag=~flag; end end endendmodule代碼相應(yīng)的功能在代碼注釋中已指明,ylq是一個標(biāo)志,用它來指示是輸出并行的低位C0還是高位C1。為了更好的觀察并行輸出結(jié)果與并串轉(zhuǎn)換后的串行輸出結(jié)果之間的關(guān)系,將C0、C1和cov_out一起輸出。dss_covolution217模塊功能仿真結(jié)果如下:最后生成symbolfile供頂層設(shè)計用。調(diào)試過程中遇到的問題:得不到卷積輸出,其輸出結(jié)果只有開頭幾個數(shù)據(jù),之后部分全部為零。仔細(xì)想應(yīng)該是輸入in沒有設(shè)置好。一開始的設(shè)置仿真結(jié)果如下:發(fā)現(xiàn)in輸入跟時鐘信號是一樣的,得出的卷積結(jié)果自然不正確。2)需要修改in的輸入值,但是軟件使用還不熟悉,請教同學(xué)幫忙才修改好。得到最后正確的結(jié)果。4)擴(kuò)頻模塊設(shè)計這個模塊的設(shè)計是整個系統(tǒng)的一個關(guān)鍵設(shè)計,設(shè)計中采用了一下機(jī)制使得PN碼與信息碼保持相位對齊,并且沒有毛刺。這里的PN碼是以255位為單位進(jìn)行循環(huán)的,采用一個8bit的計數(shù)器,使得每一個周期開始的時候(也就是計數(shù)器為0的時候),與PN碼作異或運算的都是一位新的信碼,而這一位信碼采樣在PN一個周期的中部,即計數(shù)器為127的時候。經(jīng)過仿真驗證,這種機(jī)制既能使得PN碼和信碼保持對齊,又有效的消除了這一模塊可能產(chǎn)生的毛刺。該部分的代碼如下:modulekuopin(reset,clk408,ins,outk,count);inputreset,clk408,ins;outputoutk,count;regoutk1,outk;reg[3:0]m1;reg[7:0]m2;reg[7:0]count;regtemp1,temp2;always@(negedgeclk408,negedgereset) if(!reset) begin m1[3:0]<=4'b0101; m2[7:0]<=8'b10100101; temp1<=0; temp2<=0; count<=0; end else begin m1<=m1>>1; m2<=m2>>1; m1[3]<=m1[1]^m1[0]; m2[7]<=m2[0]^m2[2]^m2[3]^m2[4]; outk1<=m1[0]^m2[0]; count<=count+1; if(count==8'd127) temp1<=ins; elseif(count==8'd254) count<=0; elseif(count==0) begin outk<=!(temp1^outk1); temp2<=temp1; end else outk<=!(temp2^outk1); endendmodule仿真結(jié)果圖如下所示:我們可以看出時序仿真結(jié)果與前面功能仿真相比,波形上會有毛刺,同時還有延時。最后生成symbolfile供頂層設(shè)計用。5)極性變換與內(nèi)插模塊設(shè)計為了進(jìn)行數(shù)字信號處理,需要對0、1碼字進(jìn)行級性變換,即將1變?yōu)?1,0變?yōu)?。然后進(jìn)行3bit量化,將1變?yōu)?11,0變?yōu)?01。而該部分采用了3bit并行輸出,因此比特率不改變。在內(nèi)插過程中,每一個碼片插入7個0,比特率增大為原來的8倍。這樣處理可以減少譯碼誤差。該模塊實現(xiàn)代碼如下:moduleconv_insert(clk3264,ink,outdata);inputclk3264,ink;output[2:0]outdata;reg[2:0]outdata;reg[2:0]count;always@(posedgeclk3264)beginif(count==0)begin if(ink==1) outdata<=3'b111; else outdata<=3'b001; end else outdata<=3'b000; count<=count+3'b001;endendmodule時序仿真:可以看出存在一點毛刺,時延。最后生成symbolfile供頂層設(shè)計用。6)基帶濾波模塊設(shè)計此模塊使用了老師提供的代碼。在次,省略該模塊的設(shè)計過程。它的symbolfile如下:七、系統(tǒng)聯(lián)調(diào)仿真在對系統(tǒng)各模塊設(shè)計仿真完之后,需要將各個模塊級聯(lián)起來進(jìn)行綜合的調(diào)試。在這個層次,采用圖形輸入設(shè)計方法,新建一個.bdf文件,然后將前面各個模塊生成的symbolfile框圖輸入到上述文件。系統(tǒng)框圖如下:保存頂層文件,然后進(jìn)行仿真,其中功能仿真結(jié)果如下:將結(jié)果以有符號十進(jìn)制形式顯示。調(diào)試中遇到的問題:級聯(lián)的時候總是遇到編譯不成功的問題,自己修改了下之前各級的程序,編譯總算成功,但是仿真的時候輸出為零。請教同學(xué)幫忙,才知道主要問題出在conv127、conv_insert與fir這3級,這三級的輸入輸出設(shè)計到數(shù)組形式的數(shù)據(jù)。一開始的時候自己把所有數(shù)組形式的輸入輸出都該為一般的形式,編譯成功,但是沒有輸出結(jié)果。后來講數(shù)組形式的輸入輸出修改回來,再重新修改了下程序,級聯(lián)編譯成功,同時有了輸出顯示。八、.MATLAB仿真為了驗證系統(tǒng)最
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 保育員考試題庫及答案
- 保安考試題及答案2019
- 安全知識測評試題及答案
- 安全員b試題及答案
- 安全試題及答案春節(jié)
- 2025年廢棄礦井資源再利用技術(shù)路徑與產(chǎn)業(yè)技術(shù)創(chuàng)新戰(zhàn)略聯(lián)盟研究報告
- 2025年婦幼醫(yī)療保健服務(wù)體系建設(shè)中的社會影響力評估報告001
- 安全急救常識試題及答案
- 2025年深遠(yuǎn)海風(fēng)電場建設(shè)標(biāo)準(zhǔn)報告:海上風(fēng)能資源評估與工程規(guī)范
- 特殊路基設(shè)計培訓(xùn)課件
- 小紅書運營方案
- 傳媒公司掛靠合同(樣本)
- 中藥奄包-外源性熱敷療法課件
- 七年級地理全冊知識點歸納匯總
- 造價咨詢作難點解決辦法及措施
- 工廠供電課程設(shè)計-某塑料制品廠全廠總配變電所及配電系統(tǒng)設(shè)計
- 商務(wù)禮儀3-2辦公室禮儀 中職高職《商務(wù)禮儀》教學(xué)教案
- 灌腸操作評分標(biāo)準(zhǔn)
- 員工獎懲簽認(rèn)單
- 體能訓(xùn)練概論(NSCA)
- 《羽毛球》課程思政教學(xué)案例(一等獎)
評論
0/150
提交評論