北郵通原GMSK實驗_第1頁
北郵通原GMSK實驗_第2頁
北郵通原GMSK實驗_第3頁
北郵通原GMSK實驗_第4頁
北郵通原GMSK實驗_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

通信原理實驗報告“GMSK調制器”系統(tǒng)實驗指導老師韓玉芬目錄一、實驗內容 3二、實驗思路 3三、實驗原理分析 43.1GMSK調制器工作原理和相位路徑的計算 43.2數字信號處理方法實現(xiàn)GMSK調制器 7四、實驗步驟 8五、軟件實現(xiàn) 95.1仿真眼圖流程 95.2g(t)信號產生 95.3φ(t)函數的實現(xiàn)及及相位路徑的畫圖 105.4正弦表和余弦表的生成 145.5量化前的眼圖繪制 145.6正(余)弦表的均勻量化及Bin文件的生成 165.7量化后的眼圖 205.8mif文件的生成 21六、硬件部分 226.1地址邏輯設計 226.2CLOCKMGDF模塊 236.3ADDRLOGIC模塊 246.4整體的仿真波形圖 266.5mif文件及相應電路邏輯 27七、實驗結果展示 297.1bin文件方法 297.2MIF文件方法 317.3結果分析 31八、拓展部分——眼圖的功率譜密度 31九、實驗總結及心得體會 錯誤!未定義書簽。十、參考文獻 34因而在具體計算時,取g(t)的截短長度為5T,就可達到足夠精度。BT=0.3的高斯濾波器矩形脈沖響應如圖2所示:圖2BT=0.3的高斯濾波器矩形脈沖響應在KT≤t≤(K+1)T時,圖3表示不歸零矩陣脈沖序列通過BT=0.3的高斯濾波器的相響應示意圖。 圖3BT=0.3的高斯濾波器矩形脈沖序列響應示意圖3.2數字信號處理方法實現(xiàn)GMSK調制器在算得后,可得出值。首先將的值離散化,固化在ROM中。由隨機數據{bn}形成ROM表的地址,根據地址取出ROM中的相應的基帶信號離散值,然后利用D/A將其數模變換成模擬基帶信號,再由正交調制器將基帶頻譜搬移至載頻上。本實驗的電路原理框圖如圖4:圖4用數字化方法實現(xiàn)GMSK的原理框圖?為得到的余弦表和正弦表,必須將基帶信號離散化,即抽樣、量化。根據隨機信號功率譜估計仿真方法,對不同采樣速率、不同量化電平值的GMSK基帶信號進行譜估計,最后選用采樣速率為每比特抽8個樣,每個樣值量化編碼為10比特(Q=10)。在采樣速率fs=8fb=2.166664MHz的情況下,由于存在采樣造成的副主瓣,影響了功率譜特性,因此必須在D/A轉化后加低通濾波器來抑制高頻分量,選用3dB帶寬的330KHZ的6階貝塞爾函數低通濾波器,數/模變換后的基帶信號經低通濾波器后的功率譜滿足GSM05.05建議的要求。四、實驗步驟仔細閱讀實驗原理后,推導gt編寫GMSK高斯濾波器的矩形脈沖響應gt編寫計算?t編寫計算cos?t及sin?t將余弦和正弦碼表中的每個樣值的10bit碼字,按照地址邏輯進行存放,并用matlab程序實現(xiàn)得到ROM存儲的基本波形表,利用信號源產生的偽隨機序列{an}經預編碼后得到{bn},經過地址邏輯運算由ROM中順序取出cos?t及把得到的正余弦表進行數字量化,寫入BIN文件,下載到硬件系統(tǒng)中,通過示波器觀察實際硬件實現(xiàn)的GMSK信號眼圖。將bin文件用matlab轉換為mif文件,并導入到quartus連接好電路生成ROM模塊,后燒錄入FPGA,觀察示波器上的GMSK信號眼圖。五、軟件實現(xiàn)5.1仿真眼圖流程圖5:眼圖仿真流程5.2g(t)信號產生首先編寫q(t)函數,g(t)通過調用q(t)函數實現(xiàn),其代碼如下:①functiony=q(x)%調用erfc函數實現(xiàn)Q(t)y=erfc(x./(sqrt(2)))./2;end②functiongt=g(t)%調用Q(t)函數實現(xiàn)g(t)T=3.6923*10^-6;B=0.3/T;alpha=(1/B)*sqrt((log(2)/2));gt=(1/(2*T))*(q(sqrt(2)*pi*(t-T/2)/alpha)-q(sqrt(2)*pi*(t+T/2)/alpha));end繪制g(t)的函數和結果如下:③T=3.6923*10^-6;t=linspace(-1,1,20000);fori=1:20000y(i)=g(t(i)*2.5*T);endplot(t,y),title('BT=0.3截斷長度為5T的g(t)'),xlabel('時間t(*2.5T)'),ylabel('g(t)')圖6BT=0.3高斯濾波器矩形脈沖響應5.3φ(t)函數的實現(xiàn)及及相位路徑的畫圖計算相位路徑φ(t圖7相位路徑正余弦表流程圖具體在計算時,將φ(t)分解為兩個部分其中但在以下Ph(t,b,L)函數中,參數t不是絕對時間,而是絕對時間除以T的倍數,如1/8,1等數。計算時可寫成兩個積分,但由于積分的函數相同,只是上下限不同,故程序中寫為一個積分,調用了matlab中的quad函數。函數如下:①functionphase=Ph(t,b,L)%計算phi(t);這里t是與T的相對時間T=3.6923*10^-6;ph=0;%初始化相位fori=-2:2%循環(huán)疊加求出phi(0)+deltaphi(t),ph=ph+quad(@g,-2.5*T,t*T-i*T-T/2)*pi*b(i+3);%此處是phi的積分公式endphase=ph+L*pi/2;%得到相位phi(t)end下面驗證相位路徑ph(t,b,l)的正確性,采用繪制出相位路徑圖方法,代碼如下:②a=randint(1,1024);%隨機產生0/1序列ab=2*a-1;%經預編碼和電平變換后得到序列bscreen=40;path=zeros(1,80);%初始路徑長度fori=1:screentemp=[b(1),b(2),b(3),b(4),b(5)];%賦初值LL=0;%LL表示絕對的LL=0;%模4后的Lfork=1:10forj=1/8:1/8:1path((k-1)*8+j*8)=Ph(j,temp,L)+(LL-L)*pi/2;%加上因為模4而帶來的相位上的損失endLL=LL+temp(1);%得到連續(xù)相位,l為不模4的L=mod(LL,4);%因為寫的函數Phi是要輸入模4的L的,所以也要同時求出forkk=1:4temp(kk)=temp(kk+1);%移位,得到新的temptemp(5)=b((i-1)*10+k+5);%給temp(5)賦值,得到完整的temp,作為次輸入endendplot(path);holdon;endholdoff;由MATLAB畫出的圖像如下:其中圖2是將進入循環(huán)時的輸入相同情況的路徑圖,更為明顯。 圖8相位路徑圖圖9相位路徑圖5.4正弦表和余弦表的生成計算出的b(n)有2種狀態(tài),L有4個象限,在采樣速率fs下每比特采樣8次,故有1024個點,代碼中對應數組phi(1024)。代碼中用到3重循環(huán),最外層是32種狀態(tài)的循環(huán),第二層是象限的循環(huán),最內層是采樣次數的循環(huán)。最后用計算出的phi值進行余弦、正弦的運算,得到兩個表存正弦和余弦值。其代碼如下:①clear;phi(1024)=0;%大小為1024的數組用于存放存phibn(5)=0;%T=3.6923*10^-6;fori=0:1:31bn=de2bi(i,5);%將十進制轉換為二進制bn=seqreverse(bn);forii=1:5%得到輸入序列bnbb(ii)=2*bn(ii)-1;endforj=0:1:3%4個象限fork=0:1:7%采樣8次phi(i*32+j*8+k+1)=Ph(k/8,bb,j);%計算phiendendendendcos_table=cos(phi);sin_table=sin(phi);5.5量化前的眼圖繪制原理為:首先產生足夠長的0,1序列,經預測編碼及變化后得到bn序列,作為Ph函數的輸入,初始化循環(huán)次數,象限數,及路徑等,設立兩級循環(huán)計算每次輸入情況下的相位值(注意此處連續(xù)相位),進行采樣八次畫出一條正弦值的圖,然后移位bn數組及改變其他輸入量,重新畫出下一次的正弦值的圖,循環(huán)多次在屏幕上畫出一個眼圖,其代碼實現(xiàn)如下:①a=randint(1,1024);%等概率生成0/1b=2*a-1;screen=40;%刷屏screengmsk=zeros(1,80);%初始化pathtemp=[b(1),b(2),b(3),b(4),b(5)];%賦初值%LL表示絕對的LL=0;%模4后的Lfori=1:screenfork=1:10forj=1/8:1/8:1%采樣8次gmsk((k-1)*8+j*8)=sin(Ph(j,temp,L));%不用加上因為模4而帶來的相位上的損失endL=mod(L+temp(1),4);%因為寫的函數Phi是要輸入模4的L的,所以也要同時求出forkk=1:4%移位,得到新的temptemp(kk)=temp(kk+1);temp(5)=b((i-1)*10+k+5);%給temp(5)賦值,得到完整的tempendendplot(gmsk);title('GMSK基帶正弦信號眼圖');holdon;endholdoff;繪圖如下:圖10量化前GMSK基帶余弦,正弦信號眼圖5.6正(余)弦表的均勻量化及Bin文件的生成對正(余)弦表的量化范圍為[-1,1],且每個樣值量化為10bit,故量化為1024個電平。若采用均勻量化,則量化間隔為,其誤差較小,不足以對整個編解碼產生不可恢復的影響,且考慮到其實現(xiàn)簡單的因素,所以采用均勻量化,既能滿足實驗對精確度的要求,又將運算復雜度降低到了能夠接受的程度。具體步驟如下:1)對正(余)弦表中1024個點的每個樣值進行10bit量化。2)實驗板上只有插接8KB的ROM,所以ROM的數據位只有8位,共有3塊ROM。存儲方式是:ROM1存儲量化值的低8位;ROM3存儲量化值的低8位;ROM2存儲和的高兩位;由于ROM每次讀8位,所以存儲也要按此方式,其代碼如下①M=1024;%量化delta=2/M;quancos=zeros(1,8*1024);quansin=zeros(1,8*1024);quansc=zeros(1,8*1024);forn=1:1024qcos=floor((cos(phi(n))+1)/delta);%量化后的cosqsin=floor((sin(phi(n))+1)/delta);%量化后的sincosh=floor(qcos/256);%cos高兩位cosl=floor(mod(qcos,256));%cos低8位quancos(n*8-7)=cosl;sinh=floor(qsin/256);sinl=floor(mod(qsin,256));quansin(n*8-7)=sinl;end②cosfile=fopen('cosl.bin','w');%寫入bin文件fwrite(cosfile,quancos);fclose(cosfile);sinfile=fopen('sinl.bin','w');fwrite(sinfile,quansin);fclose(sinfile);scfile=fopen('sc.bin','w');fwrite(scfile,quansc);fclose(scfile); 圖11SIN低八位bin表圖12COS低八位bin表 圖13SIN和COS的高位5.7量化后的眼圖繪制原理與量化前眼圖原理相同,區(qū)別在于繪制時正弦和余弦值要通過查表得到,其代碼實現(xiàn)和繪制眼圖如下:①M=1024;delta=2/M;cos_table_lh(1024)=0;sin_table_lh(1024)=0;forn=1:1024qcos=floor((cos(phi(n))+1)/delta);%量化后的coscos_table_lh(n)=qcos*delta-1;qsin=floor((sin(phi(n))+1)/delta);%量化后的sinsin_table_lh(n)=qsin*delta-1;enda=randint(1,1024);%等概率生成0/1b=2*a-1;screen=40;%刷屏screengmsk=zeros(1,80);%初始化pathtemp=[b(1),b(2),b(3),b(4),b(5)];%賦初值L=0;%模4后的Lc(5)=0;fori=1:screenfork=1:10temp(5)=b((i-1)*10+k+5);%給temp(5)賦值,得到完整的tempforj=0:1:7%采樣8次forx=1:5if(temp(x)==-1)c(x)=0;elsec(x)=1;endendn=16*c(1)+8*c(2)+4*c(3)+2*c(4)+c(5)+1;%第n個狀態(tài)gmsk((k-1)*8+j+1)=cos_table_lh((n-1)*32+L*8+j+1);%endL=mod(L+temp(1),4);%因為寫的函數Phi是要輸入模4的L的,所以也要同時求出forkk=1:4%移位,得到新的temptemp(kk)=temp(kk+1);endendplot(gmsk);title('量化后GMSK基帶余弦信號眼圖');holdon;endholdoff;圖14量化后GMSK基帶余弦信號、正弦信號圖5.8mif文件的生成fori=1:8192data(i)=quansc(i);endfid=fopen('/Users/zhouliang/Desktop/GMSK/sc.mif','w');fprintf(fid,'WIDTH=8;\n');fprintf(fid,'DEPTH=1024;\n');%指定數值的個數,即ROM的深度(本工程用256個)fprintf(fid,'ADDRESS_RADIX=UNS;\n');%指定地址的數制(UNS:無符號數。推薦UNS)fprintf(fid,'DATA_RADIX=DEC;\n');%指定數據基數(DEC:十進制(有符號數),推薦DEC)fprintf(fid,'CONTENTBEGIN\n');%固定格式%在讀不同的文件時需要改變number=[0:8191];data_temp=[number;data];fprintf(fid,'%d:%d;\n',data_temp);fprintf(fid,'END;\n');%固定格式fclose(fid);六、硬件部分6.1地址邏輯設計地址邏輯可以由偽隨機序列{an}經預編碼之后得到{bn},再經地址邏輯運算形成,電路設計可分為時鐘分頻,偽隨機序列的產生,地址邏輯的生成3部分。預編碼及10位地址碼產生電路的原理為:圖15預編碼及10位地址碼產生電路原理圖由圖中可以看出,實驗板上的13MHz晶振產生的頻率經過分頻器后可產生信號A5、A4、A3的頻率,分別為fb、2fb、4fb,fb=270.833KHz為碼元速率。fb作為M序列發(fā)生器的輸入時鐘,產生偽隨機序列DATA。在上圖的下方,由DATA經過兩個D觸發(fā)器74LS74(狀態(tài)方程Qn+1=D),延時一個周期T后與DATA的下一個值相異或,完成預編碼dn=an⊕an-1之后,dn在經74LS74得到bn(如圖中部),由端口B進入移位寄存器74LS164。74LS164是一種8位移位寄存器芯片,只能單向移位,在A端口取“1”時,移位方式是:B->Q0,Q0->Q1,Q1->Q2,Q2->Q3,Q3->Q4,分別代表A8,A9,A10,A11,A12。Q4移出后進入圖中加減計數器前面的D觸發(fā)器,輸出bk-3作為加減計數器74LS169的輸入。74LS169是一種可預置4位二進制可逆計數器,這里只用到了輸出的低兩位。根據芯片手冊,當bk-3=1時,為加計數;當bk-3=0時,為減計數。這樣,就可以控制相位在00~11之間變化。此部分電路地址邏輯電路框圖如圖所示圖16地址邏輯電路框圖CLK是時鐘脈沖發(fā)生器,DATA為偽隨機序列輸出信號;A5、A4、A3為8個采樣值的邏輯地址碼;A6、A7為兩位象限邏輯地址碼,對應L從0到3;A8、A9、A10、A11、A12為信息地址碼。6.2CLOCKMGDF模塊①時鐘分頻,生成8個抽樣值邏輯地址碼,并輸出偽隨機序列DATA;②碼元速率fb為270.833khz,抽樣速率為8fb。抽樣地址A5,A4,A3從000到111變化,因此A5,A4,A3頻率依次為fb,2fb,4fb③查表可得(223-1)M序列的反饋函數為Q0n+1=Q4n+Q22n。同時為防止進入全0狀態(tài)LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_ARITH.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYCLOCKMGDFISPORT( CLK:INSTD_LOGIC; A3:OUTSTD_LOGIC;A4:OUTSTD_LOGIC;A5:OUTSTD_LOGIC; DATA:OUTSTD_LOGIC);ENDENTITYCLOCKMGDF;ARCHITECTUREMOFCLOCKMGDFISSIGNALTMP:STD_LOGIC_VECTOR(2DOWNTO0);--暫存000~111變化SIGNALQ:STD_LOGIC_VECTOR(22DOWNTO0);BEGINP1:PROCESS(CLK) BEGINIF(CLK'EVENTANDCLK='0') THENTMP<=TMP+'1'; IFQ(22DOWNTO0)="00000000000000000000000"THEN Q(0)<='1';--防止進入全零狀態(tài) ELSE Q<=Q(21DOWNTO0)&(Q(4)XORQ(22)); ENDIF; DATA<=Q(22);--產生偽隨機序列 A3<=TMP(0);--頻率4fb A4<=TMP(1);--頻率2fb A5<=TMP(2);--頻率fb ENDIF;ENDPROCESSP1;ENDM;仿真波形為圖17CLOCKMGDF模塊仿真波形圖6.3ADDRLOGIC模塊ADDRLOGIC模塊用于生成兩位象限地址碼A6,A7以及五位信息地址碼

A8~A12。其中:1)輸入端口為時鐘信號CLOCK(fb=270.833kHz)。2)A6、A7兩位二進制數表示L,00~11即0~3象限,由TMPB(4)的值決定遞增或遞減。3)A8、A9、A10、A11、A12代表電路中的移位寄存器。VHDL代碼如下LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_ARITH.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYADDRLOGICISPORT(CLK:INSTD_LOGIC;DATA:INSTD_LOGIC;A6:OUTSTD_LOGIC;A7:OUTSTD_LOGIC;A8:OUTSTD_LOGIC;A9:OUTSTD_LOGIC;A10:OUTSTD_LOGIC;A11:OUTSTD_LOGIC;A12:OUTSTD_LOGIC);ENDADDRLOGIC;ARCHITECTUREADDRESSOFADDRLOGICISSIGNALTMPL:STD_LOGIC_VECTOR(1DOWNTO0);SIGNALTMPB:STD_LOGIC_VECTOR(4DOWNTO0);BEGINPROCESS(CLK,DATA)BEGINIF(CLK'EVENTANDCLK='0')THENIFTMPB(4)='0'THENTMPL<=TMPL-'1';ELSETMPL<=TMPL+'1';ENDIF;TMPB<=TMPB(3DOWNTO0)&DATA;A6<=TMPL(0);A7<=TMPL(1);A8<=TMPB(0);A9<=TMPB(1);A10<=TMPB(2);A11<=TMPB(3);A12<=TMPB(4);ENDIF;ENDPROCESS;ENDADDRESS;仿真波形圖如下: 圖18ADDRLOGIC仿真波形圖6.4整體的仿真波形圖 圖19系統(tǒng)總體仿真波形圖可看出仿真結果與電路設計相符:DATA為0,1隨機;A5-A3從000-111連續(xù)變化;A8-12以為順序為新值,A12決定加減計數器工作方式;A12為0,A6,A7減計數,A12為1,A6,A7加計數。6.5mif文件及相應電路邏輯在實際操作中,我們使用mif作為虛擬ROM,使用EP1C3T100C8作為主控芯片,mif中存儲的是按10bit量化的cos和sin的量化值,由于尋址部分不需要再考慮空出的三條地位地址線,我們在存量化值得時候不需要空出7個0。同時由于這塊板子的晶振是48MHz的,所以在前面還加了一個分頻的模塊,將48MHz的時鐘分頻為2MHz的時鐘。圖20總體電路邏輯mif文件為圖21COS的mif文件圖22SIN的mif文件七、實驗結果展示7.1bin文件方法1)用編程器將量化后的碼表的二進制bin文件下載到8*1024的三片ROM,插在GMSK通信系統(tǒng)實驗箱上,注意芯片的位置和方向;將GMSK通信系統(tǒng)實驗箱的JTAG接口與計算機相連。將雙路穩(wěn)壓電源調整至16V。接通電源后,用示波器觀察正弦經低通濾波器LPF后的輸出波形如下圖所示圖23實驗結果由于bin文件方法我是第一天晚上驗收的,老師的板子也是在這天很晚才調好的,驗收前我就按照大家說的把采樣時候循環(huán)的0:1:7改成了1:1:8,又將存儲sin和cos高位的bin表(sc)的高位和低位換了一下,于是第一次燒錄bin表出現(xiàn)了第一個錯誤的眼圖,后面再一檢查發(fā)現(xiàn)原本的bin表是正確的,于是又將高位的bin表的高低位換了回來,于是出現(xiàn)了第二個正確的眼圖,這也驗證了本來bin表的正確性;由于這次驗收的時候已經很晚了,實驗室只剩我們5位同學,所以才會忙中出錯第一次沒有成功,不過好在我們堅持到最后,成為了第一批驗收bin表成功的同學,當然這里十分感謝韓老師陪我們5個到11點,十分感謝!7.2MIF文件方法 圖24實驗結果7.3結果分析示波器上觀察到了眼圖,從眼圖的張開程度可觀察碼間干擾和加性噪聲對接收基帶信號波形的影響,從而可估計出系統(tǒng)的性能。若不經過低通濾波器直接觀察眼圖,可以明顯看到波形上的鋸齒,說明波形存在高頻部分,主要是由于采樣和量化誤差引起的。在經過低通濾波之后,波形平滑很多,更加接近matlab量化前仿真的波形。八、拓展部分——眼圖的功率譜密度思路:仿真功率譜密度與仿真眼圖類似,都是使用偽隨機序列提供地址邏輯,最后生成的值運用編寫的t2f函數進行傅立葉變換,再平方,運用對數刻度將其plot即可仿真功率譜密度。functionS=fly(s,fs)%s代表輸入信號,S代表s的頻譜,fs是采樣頻率N=length(s);%樣點總數T=1/fs*N;%觀察時間f=[-N/2:(N/2-1)]/T;%頻率采樣點tmp1=fft(s)/fs;tmp2=N*ifft(

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論