QPSK調制解調課設完整版.doc_第1頁
QPSK調制解調課設完整版.doc_第2頁
QPSK調制解調課設完整版.doc_第3頁
QPSK調制解調課設完整版.doc_第4頁
QPSK調制解調課設完整版.doc_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

. 2012專業(yè)綜合課程設計 通信專業(yè) 姓名:* 班級:0902402 學號:090240212 題目:利用matlab設計并仿真數字通信系統(tǒng)一、題目要求利用matlab軟件設計并仿真下面的無線通信系統(tǒng)fedcba數字信源QPSK調制調制帶通濾波QPSK解調信宿載波本地載波要求:1、輸入信號為比特流形式,比特速率通常為100kbps數量級。2、載波頻率自定。通常為MHz數量級。3、信道為多徑信道(仿真中2徑即可),信道中噪聲為加性高斯白噪聲。4、信噪比自行設定。5、畫出圖中各點波形。6、畫出系統(tǒng)誤碼率與接收端信噪比SNR的關系(蒙特卡洛仿真)。7、在給定信噪比情況下,分析多徑延時大小對系統(tǒng)性能有沒有影響? 畫出系統(tǒng)誤碼率與多徑延時大小之間的關系。2、 設計過程 1)概念理解: QPSK即四進制移向鍵控(Quaternary Phase Shift Keying),它利用載波的四種不同相位來表示數字信息,由于每一種載波相位代表兩個比特信息,因此每個四進制碼元可以用兩個二進制碼元的組合來表示。兩個二進制碼元中的前一個碼元用a表示,后一個碼元用b表示。 2)調制: QPSK信號可以看作兩個載波正交2PSK信號的合成,下圖表示 QPSK正交調制器。二進制數據序列極性NRZ電平編碼器分離器原理分析:由randint函數產生一個1x20的二進制隨機矩陣,作為基帶信號data;然后轉換成極性碼(極性NRZ電平編碼器);然后按奇偶次序抽出隨機數后組成1x10的矩陣(分離器);將這兩個矩陣中碼元寬度增大為原來的2倍(采用增加點數);如圖在a路Idata與余弦載波相乘,b路同理;最后代數相加,此時便產生QPSK調制信號作為輸出。 3)解調:解調原理圖如下所示。 1(t) 同相信道 門限0接受信號sr(t)LPF filterLPF filter 2(t) 正交信道 門限0 原理分析:同相支路和正交支路分別采用相干解調方式解調,得到和,經過低通濾波器(LPF)抽樣判決和并/串交換器,將上下支路得到的并行數據恢復成串行數據demodata(1x20),此過程在復接器實現,此時便得到QPSK解調信號(應該和基帶信號一樣)。4) 高斯信道:應題目要求,通過無線信道傳輸的調制信號會加入高斯噪聲,使用awgn(si,SNR)函數來實現;實現多徑信道,將延時后的信號s1加到未延時信號s0合并作為輸出信號即可。5) 帶通濾波器(BPF): 使用butter(N ,wp1,wp2,)和filter函數實現,其中的參數通過計算公式可知 Wp1=2*delta_t*(fc-f); Wp2=2*delta_t*(fc+f);三、仿真結果及分析 圖一 隨機產生一個1x20的二進制隨機矩陣data,圖中基帶每個碼元由抽樣間隔delta_t間隔的離散點構成,總共2000個點(即每個碼元由100個點構成),I/Q路信號的碼元應該為原來的2倍,所以每個碼元由200個點構成,這樣長度才能和原序列等長。 實現的部分代碼如下:data=randint(1,nb); % 調用一個隨機函數(0 or 1),輸出到一個1*100的矩陣datanrz=data.*2-1; % 變成極性碼data1=zeros(1,2000); % 創(chuàng)建一個1*nb/delta_T的零矩陣%將基帶信號變換成對應波形信號data0=zeros(1,2000); % 創(chuàng)建一個1*nb/delta_T的零矩陣for q=1:nb data0(q-1)*100+1:q*100)=data(q); % 將非極性碼變成對應的波形信號end % 串并轉換,將奇偶位數據分開idata=datanrz(1:ml:(nb-1); % 將奇偶位分開,因此間隔m1為2idata0=zeros(1,2000); % 創(chuàng)建一個1*nb/delta_T的零矩陣for q=1:nb/2 idata0(2*(q-1)*100+1:2*q*100)=idata(q); % 將其碼元寬度擴展成為原來碼元的2倍end qdata=datanrz(2:ml:nb);qdata0=zeros(1,2000); for q=1:nb/2 qdata0(2*(q-1)*100+1:2*q*100)=qdata(q);end 圖二:部分代碼如下:% QPSK信號的調制%for ii=1:N a(ii)=cos(2*pi*fc*t(ii); endidata1=idata0.*a; % 奇數位數據與余弦函數相乘,得到一路的調制信號for jj=1:N b(jj)=-sin(2*pi*fc*t(jj);endqdata1=qdata0.*b; % 偶數位數據與余弦函數相乘,得到另一路的調制信號s0=idata1+qdata1; % 將奇偶位數據合并,s即為QPSK調制信號%延遲信號%delay=0.0019;for ii0=1:N a_dl(ii0)=cos(2*pi*fc*t(ii0)+delay); endidata1_dl=idata0.*a_dl; % 奇數位數據與余弦函數相乘,得到一路的調制信號for jj0=1:N b_dl(jj0)=-sin(2*pi*fc*t(jj0)+delay);endqdata1_dl=qdata0.*b_dl; % 偶數位數據與余弦函數相乘,得到另一路的調制信號 s1=idata1_dl+qdata1_dl; % 將奇偶位數據合并,s即為QPSK調制信號% 高斯信道 si=s0+s1;圖三: 通過帶通濾波器(PLF)后,上下的毛刺(即高斯噪聲)得到了很好的濾除,但是和圖二中的調制信號相比,有點兒失真。部分代碼如下:% 高斯信道 si=s0+s1;sk=awgn(si,SNR); % 通過高斯信道之后的信號%butter數字帶通濾波器B,A=butter(4,0.08,0.12,bandpass);sr=filter(B,A,sk);圖四: 在通過同相支路和正交支路分別采用相干解調方式解調后,得到和,其中包絡為低頻,在經過低通濾波器后(LPF)后,能很好的濾除高頻部分(載波),得到低頻部分,和圖一的I/Q路信號對比,基本不失真;然后進行抽樣判決和并/串交換器,將上下支路得到的并行數據恢復成串行數據demodata(1x20),此時便得到QPSK解調信號,基本保持不失真。 部分代碼如下: %解調部分 idata_lpf=sr.*a; % 這里面其實隱藏了一個串并轉換的過程qdata_lpf=sr.*b; % 對應的信號與正余弦信號相乘 %低通濾波器%W,M=butter(4,0.03365,low);idata2=filter(W,M,idata_lpf);qdata2=filter(W,M,qdata_lpf);idata3=zeros(1,nb/2);% 建立1*nb/2數組,以存放解調之后的信號qdata3=zeros(1,nb/2);% 抽樣判決的過程,與0作比較,data=0,則置1,否則置0for n=1:nb/2 if sum(idata2(n-1)*200+1:n*200)=0 idata3(n)=1; else idata3(n)=0; endif sum(qdata2(n-1)*200+1:n*200)=0 qdata3(n)=1; else qdata3(n)=0; end end % 將判決之后的數據存放進數組demodata=zeros(1,nb); %解調信號demodata(1:ml:(nb-1)=idata3; % 存放奇數位demodata(2:ml:nb)=qdata3; % 存放偶數位%為了顯示,將它變成波形信號(即傳輸一個1代表單位寬度的高電平)demodata1=zeros(1,2000); % 創(chuàng)建一個1*nb/delta_T的零矩陣for q=1:nb demodata1(q-1)*100+1:q*100)=demodata(q); % 將極性碼變成對應的波形信號end%圖五: 系統(tǒng)誤碼率與接收端信噪比SNR的關系(蒙特卡洛仿真)。本實驗將SNR=0:6設為大循環(huán),里面包含一個for循環(huán)(10000次);每當循環(huán)10000次,統(tǒng)計誤碼數p(h),計算出誤碼率perror;隨著信噪比的增大,誤碼率呈現下降趨勢,在SNR=5,6時,基本誤碼率為0。部分代碼如下:for SNR=0:6 % 信噪比for f=1:500 . . end10000次% 誤碼率計算for v=1:length(data); if data(v)=demodata(v); p(h)=p(h)+1; endend end perror(y)=p(h)/10000; y=y+1; h=h+1;End figure(8) SNR=0:6;plot(SNR,perror);title(誤碼率和信噪比的關系);axis(0 6 0 0.008);圖六:誤碼率和延時的關系:在一個周期內,可以看出00.2.1.21.4之間呈現上升趨勢,這是因為誤碼率隨著延時在一定范圍的增大而增大,而在整個02內,具有周期性變化,周期為1/fc。部分代碼如下:clc;y=1;h=1; dd=1;SNR=3.6; %此處涉信噪比為3.6MINtime=0;MAXtime=50*1e-7;delay_t=1e-7;p=zeros(1,50);perror=zeros(1,50);for delay=MINtime:delay_t:MAXtime-delay_t for. . End %在SNR=3.6,每取定一個delay,就得出一個誤碼率Endfigure(9)delay=MINtime:delay_t:MAXtime-delay_t;stem(delay,perror);title(PERROR&DELAY); axis(MINtime MAXtime 0 0.01);四、實驗小結1)設計缺點:用了for循環(huán)的方式一增加點數實現對I/Q路信號的碼元寬度進行拓寬,可以參考ceil函數;低通濾波器的截止頻率并沒有設置為2*delta_t*f,因為這樣誤碼率非常大,所以設置了一個比其稍大的參數;最后的誤碼率和延時的關系圖由于取點(n=20)較少,所以并沒有很好的反映出他們的關系。2)設計優(yōu)點:程序進一步優(yōu)化后,再取大量點時運行速度較為理想;誤碼率實現了10*(-4)級的理想化;判決時通過使用sum(.)與0的比較來更為準確的做出判決,減小了誤碼率,若采用中點取點(如:0200,在100處來判決),這樣偶然誤差較大,從而譯碼器準度不高。 3)學到了什么:在短短的2周內,基于matlab對QPSK的信號調制解調過程有了更為清晰的理解,怎么去實現產生隨機矩陣,怎么去按奇偶抽取點數,怎么增大碼元寬度,怎么模擬高斯信道,怎么產生多徑信道,以及對BPF,LPF的簡單使用,怎么更好的實現判決.都有了初步的入門,加深了對通信原理的某一部分的理解吧! 附總代碼:clc;y=1;h=1; p=zeros(1,7);perror=zeros(1,7);for SNR=0:6 % 信噪比 for f=1:500% 初始化參數T=1e-5; % 基帶信號寬度,也就是頻率fc=5/T; % 載波頻率ml=2; % 調制信號類型的一個標志位nb=20; % 傳輸的比特數delta_T=T/100; % 采樣間隔fs=1/delta_T; % 采樣頻率t=0:delta_T:nb*T-delta_T; % 限定t的取值范圍N=length(t); % 采樣數 % 調制部分% 基帶信號的產生data=randint(1,nb); % 調用一個隨機函數(0 or 1),輸出到一個1*100的矩陣datanrz=data.*2-1; % 變成極性碼data1=zeros(1,2000); % 創(chuàng)建一個1*nb/delta_T的零矩陣%將基帶信號變換成對應波形信號data0=zeros(1,2000); % 創(chuàng)建一個1*nb/delta_T的零矩陣for q=1:nb data0(q-1)*100+1:q*100)=data(q); % 將非極性碼變成對應的波形信號end % 串并轉換,將奇偶位數據分開idata=datanrz(1:ml:(nb-1); % 將奇偶位分開,因此間隔m1為2idata0=zeros(1,2000); % 創(chuàng)建一個1*nb/delta_T的零矩陣for q=1:nb/2 idata0(2*(q-1)*100+1:2*q*100)=idata(q); % 將其碼元寬度擴展成為原來碼元的2倍end qdata=datanrz(2:ml:nb);qdata0=zeros(1,2000); for q=1:nb/2 qdata0(2*(q-1)*100+1:2*q*100)=qdata(q);end % QPSK信號的調制%for ii=1:N a(ii)=cos(2*pi*fc*t(ii); endidata1=idata0.*a; % 奇數位數據與余弦函數相乘,得到一路的調制信號for jj=1:N b(jj)=-sin(2*pi*fc*t(jj);endqdata1=qdata0.*b; % 偶數位數據與余弦函數相乘,得到另一路的調制信號s0=idata1+qdata1; % 將奇偶位數據合并,s即為QPSK調制信號%延遲信號%delay=0.0019;for ii0=1:N a_dl(ii0)=cos(2*pi*fc*t(ii0)+delay); endidata1_dl=idata0.*a_dl; % 奇數位數據與余弦函數相乘,得到一路的調制信號for jj0=1:N b_dl(jj0)=-sin(2*pi*fc*t(jj0)+delay);endqdata1_dl=qdata0.*b_dl; % 偶數位數據與余弦函數相乘,得到另一路的調制信號s1=idata1_dl+qdata1_dl; % 將奇偶位數據合并,s即為QPSK調制信號% 高斯信道 si=s0+s1;sk=awgn(si,SNR); % 通過高斯信道之后的信號%butter數字帶通濾波器B,A=butter(4,0.08,0.12,bandpass);sr=filter(B,A,sk); %解調部分 idata_lpf=sr.*a; % 這里面其實隱藏了一個串并轉換的過程qdata_lpf=sr.*b; % 對應的信號與正余弦信號相乘 %低通濾波器%W,M=butter(4,0.03365,low);idata2=filter(W,M,idata_lpf);qdata2=filter(W,M,qdata_lpf);idata3=zeros(1,nb/2);% 建立1*nb/2數組,以存放解調之后的信號qdata3=zeros(1,nb/2);% 抽樣判決的過程,與0作比較,data=0,則置1,否則置0for n=1:nb/2% A1(n)=sum(idata2(n-1)/delta_T+1:n/delta_T); if sum(idata2(n-1)*200+1:n*200)=0 idata3(n)=1; else idata3(n)=0; endif sum(qdata2(n-1)*200+1:n*200)=0 qdata3(n)=1; else qdata3(n)=0; end end % 將判決之后的數據存放進數組demodata=zeros(1,nb); %解調信號demodata(1:ml:(nb-1)=idata3; % 存放奇數位demodata(2:ml:nb)=qdata3; % 存放偶數位%為了顯示,將它變成波形信號(即傳輸一個1代表單位寬度的高電平)demodata1=zeros(1,2000); % 創(chuàng)建一個1*nb/delta_T的零矩陣for q=1:nb demodata1(q-1)*100+1:q*100)=demodata(q); % 將極性碼變成對應的波形信號end% 誤碼率計算for v=1:length(data); if data(v)=demodata(v); p(h)=p(h)+1; endend end perror(y)=p(h)/10000; y=y+1; h=h+1;end

溫馨提示

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

評論

0/150

提交評論