直接序列擴頻通信_第1頁
直接序列擴頻通信_第2頁
直接序列擴頻通信_第3頁
直接序列擴頻通信_第4頁
直接序列擴頻通信_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

MATLAB仿真直接序列擴頻通信摘要直接序列擴頻通信系統(tǒng)(DS-CDMA)因其抗干擾性強、隱蔽性好、易于實現(xiàn)碼分多址(CDMA)、抗多徑干擾、直擴通信速率高等眾多優(yōu)點,而被廣泛應(yīng)用于許多領(lǐng)域中。針對頻通信廣泛的應(yīng)用,本文用MATLAB工具箱中的SIMULINK通信仿真模塊和MATLAB函數(shù)對直接序列擴頻通信系統(tǒng)進行了分析和仿真,使其更加形象和具體。關(guān)鍵字:擴頻通信m序列g(shù)old正交序列matlab仿真引言直接序列擴頻(DSSS—DirectSequenceSpreadSpectrum)技術(shù)是當(dāng)今人們所熟知的擴頻技術(shù)之一。這種技術(shù)是將要發(fā)送的信息用偽隨機碼(PN碼)擴展到一個很寬的頻帶上去,在接收端,用與發(fā)端擴展用的相同的偽隨機碼對接收到的擴頻信號進行相關(guān)處理,恢復(fù)出發(fā)送的信息。它是二戰(zhàn)期間開發(fā)的,最初的用途是為軍事通信提供安全保障,是美軍重要的無線保密通信技術(shù)。這種技術(shù)使敵人很難探測到信號。即便探測到信號,如果不知道正確的編碼,也不可能將噪聲信號重新匯編成原始的信號。有關(guān)擴頻通信技術(shù)的觀點是在1941年由好萊塢女演員HedyLamarr和鋼琴家GeorgeAntheil提出的?;趯︳~雷控制的安全無線通信的思路,他們申請了美國專利#2.292.387。不幸的是,當(dāng)時該技術(shù)并沒有引起美國軍方的重視,直到十九世紀(jì)八十年代才引起關(guān)注,將它用于敵對環(huán)境中的無線通信系統(tǒng)。直序擴頻解決了短距離數(shù)據(jù)收發(fā)信機、如:衛(wèi)星定位系統(tǒng)(GPS)、3G移動通信系統(tǒng)、WLAN(IEEE802.11a,IEEE802.11b,IEE802.11g)和藍牙技術(shù)等應(yīng)用的關(guān)鍵問題。擴頻技術(shù)也為提高無線電頻率的利用率(無線電頻譜是有限的因此也是一種昂貴的資源)提供幫助。直接序列擴頻DS-SS是直接用具有高碼率的擴頻碼序列在發(fā)送端去擴展信號的頻譜。而在收端,用相同的擴頻碼序列去進行解擴,把展寬的擴頻信號還原成原始的信息。

DS-CDMA通信系統(tǒng)原理在實驗中,我們采用;兩種擴頻碼進行仿真。M序列和正交Gold序列,擴頻后的數(shù)據(jù)通過脈沖成型濾波器后通過信道同時到達接收端,在接收端分別對不同用戶信息數(shù)據(jù)進行解擴,恢復(fù)各個用戶的原始信息。仿真設(shè)計步驟1、m序列的DS-CDMA在AWGN下的性能的仿真。2、正交Gold序列的DS-CDMA在AWGN下的性能的仿真。3、對比兩個擴頻碼在AWGN信道下的性能曲線,分析哪種擴頻碼更適合在

AWGN信道中傳輸,傳輸衰減最小,對比m序列和正交Gold序列的抗干擾能力。實驗仿真運行結(jié)果E11JQ榆駐丑咚E11JQ榆駐丑咚從圖中可以看出,由于正交Gold序列在完全同步時,它們的互相關(guān)值為0,因此其BER性能并不隨著用戶數(shù)的增加而惡化。在信噪比為2、4、6時誤比特率基本相同。由圖可以看出來當(dāng)誤比特率仿真時候小于10-3時結(jié)果就會有一定的偏差。但還是可以看出正交Gold序列比M序列的性能要好。所以,初步得出結(jié)論:正交Gold序列在AWGN信道下的抗干擾能力更強,衰減比,序列要小。

對比圖4-1和圖4-3,顯然M序列在瑞利衰落信道下的性能要比能過AWGN信道下的性能要差總結(jié)對于本仿真而言,已基本完成了設(shè)計任務(wù)書的設(shè)計和研究目的,通過用MATLAB對DS-CDMA系統(tǒng)的仿真調(diào)試、結(jié)果分析,讓我組熟悉7DS-CDMA的工作原理,加深了對擴頻通信的認識,并深刻的了解PN碼在不同信道的衰落情況。通過仿真結(jié)果中波形的直觀方式,更讓我們了解到了系統(tǒng)衰減的規(guī)律。但是在本設(shè)計中也存在著缺陷與不足1、在本設(shè)計中過程中可能由于程序過于復(fù)雜,信息本身所占用的帶寬偏大,用來傳輸信息的帶寬相對不夠大,造成結(jié)果并不明顯,信息衰減嚴(yán)重。2、在設(shè)計中只考慮到加性高斯信道所帶來的干擾,在實際通信信道卻是復(fù)雜多變,存在著各種各樣的情況,所以最后的接收信號是在很簡單的干擾下得出。要想應(yīng)用于實際中,必須加入各種噪聲來考慮,以實現(xiàn)真實系統(tǒng)的設(shè)計。

3、實驗中,我們選擇加大傳輸帶寬,來彌補其他干擾帶來的影響,可能會造成消耗過大,浪費帶寬的結(jié)果,實際應(yīng)用中是不實用的。只能作為仿真,進行研究。即使如此,在本次設(shè)計的整個過程中,以上的結(jié)果已經(jīng)令我們受益匪淺。通信系統(tǒng)的性能分析和仿真,隨著通信技術(shù)、信息技術(shù)和計算機技術(shù)的發(fā)展以及網(wǎng)絡(luò)系統(tǒng)的大量應(yīng)用,顯得越來越重要。參考文獻劉學(xué)勇,編著.通信系統(tǒng)建模與仿真(電子工業(yè)出版社)鄧薇,編著.MATALB函數(shù)速查手冊(人民郵電出版社)【美】WilliamC.Y.Lee,著移動通信工程理論和應(yīng)用(第二版)(人民郵電出版社)王華奎,李艷萍等編著.移動通信原理與技術(shù)(清華大學(xué)出版社)程序%1.函數(shù)mseq用于產(chǎn)生m序列:function[mout]=mseq(n,taps,inidata,num)%****************************************************************%說明:函數(shù)mseq用于產(chǎn)生num個階數(shù)為n的m序列%n:m序列的階數(shù)n%taps:反饋寄存器的連接位置%inidata:寄存器的初始值序列%num:輸出的m序列的個數(shù)%mout:輸出的m序列,如果num>1,則每一行為一個m序列%****************************************************************ifnargin<4%輸入?yún)?shù)判斷num=1;endmout二zeros(num,2An-1);%寄存器輸出值的初始化,全0

fpos二zeros(n,1);fpos(taps)=1;forii=1:2八n-1%反饋寄存器連接位置的初始化%反饋寄存器連接位置endmout(1,ii)二inidata(n);temp二mod(inidata*fpos,2);inidata(2:n)=inidata(1:n-1);inidata(1)二temp;%寄存器的輸出值%計算反饋數(shù)據(jù)%寄存器移位一次%更新第1個寄存器的值ifnum>1列forii=2:nummout(ii,:)二shift(mout(ii-1,:),1);end%如果要輸出多個m序列,生成其他m序%shift函數(shù)完成序列的循環(huán)移位,上一個序列向右循環(huán)移位end%2.函數(shù)goldseq用于產(chǎn)生gold序列function[gout]=goldseq(m1,mout二zeros(num,2An-1);%寄存器輸出值的初始化,全0fpos二zeros(n,1);fpos(taps)=1;forii=1:2八n-1%反饋寄存器連接位置的初始化%反饋寄存器連接位置endmout(1,ii)二inidata(n);temp二mod(inidata*fpos,2);inidata(2:n)=inidata(1:n-1);inidata(1)二temp;%寄存器的輸出值%計算反饋數(shù)據(jù)%寄存器移位一次%更新第1個寄存器的值ifnum>1列forii=2:nummout(ii,:)二shift(mout(ii-1,:),1);end%如果沒有指定生成的Gold序列個數(shù),默%根據(jù)Gold序列生成方法生成Gold序列num=1;endgout二zeros(num,length(m1));forii=1:numgout(ii,:)二xor(m1,m2);m2二shift(m2,1);end%函數(shù)shift用于完成循環(huán)移位function[outregi]=shift(inregi,shiftr)%****************************************************************

%inregi:輸入序列%shiftr:循環(huán)右移的位數(shù)%outregi:輸出序列%****************************************************************v二length(inregi);outregi二inregi;shiftr二rem(shiftr,v);ifshiftr>0outregi(:,1:shiftr)二inregi(:,v-shiftr+1:v);outregi(:,1+shiftr:v)=inregi(:,1:v-shiftr);elseifshiftr<0outregi(:,1:v+shiftr)二inregi(:,1-shiftr:v);outregi(:,v+shiftr+1:v)=inregi(:,1:-shiftr);end%3.直接序列擴頻主程序代碼function[ber]=dscdma(user,seq)%user:同時進行擴頻通信的用戶數(shù)%seq:擴頻碼1:M-序列2:Gold序列%ber:該用戶數(shù)下的誤碼率%輸入序列的長度%輸出序列初始化為輸入序列%求余,使移位的值在[0,v]之間%循環(huán)移位把最后shiftr位移到前shiftr位%完成剩余的移位3:正交Gold序列%****************************初始化部分*****************************sr=256000.0;nSymbol=10000;發(fā)送的符號數(shù)M=4;br二sr*log2(M);graycode=[0132];則EbNo=0:2:10;圍%符號速率%每種信噪比下%4-QAM調(diào)制%比特速率%Gray編碼規(guī)%Eb/No變化范%**************************脈沖成形濾波器參數(shù)**************************delay二10;時延Fs=8;數(shù)rolloff二0.5;rrcfilter二rcosine(1,Fs,'fir/sqrt',rolloff,delay);%升余弦濾波器%濾波器過采樣%升余弦濾波器滾降因子%設(shè)計根升余弦濾波器%**********************擴頻碼產(chǎn)生參數(shù)**********************同時進行擴頻通信的用戶數(shù)擴頻碼1:M-序列2:Gold序列3:正交Gold序列同時進行擴頻通信的用戶數(shù)擴頻碼1:M-序列2:Gold序列3:正交Gold序列該用戶數(shù)下的誤碼率%符號速率%每種信噪比下發(fā)送的符號%****************************初始化部分*****************************sr=256000.0;nSymbol=10000;%4-QAM調(diào)制%比特速率%Gray編碼規(guī)則%Eb/No變化范數(shù)M=4;br=sr*log2(M);graycode=[0132];EbNo=0:2:10;圍%**************************脈沖成形濾波器參數(shù)**************************delay時延Fs數(shù)%符號速率%每種信噪比下發(fā)送的符號%4-QAM調(diào)制%比特速率%Gray編碼規(guī)則%Eb/No變化范delay時延Fs數(shù)rolloff10;8;0.5;rrcfilter=rcosine(1,Fs,'fir/sqrt',rolloff,delay);%升余弦濾波器%濾波器過采樣%升余弦濾波器滾降因子%設(shè)計根升余弦濾波器%**********************擴頻碼產(chǎn)生參數(shù)**********************%用戶數(shù)%user=user1;stage=3;ptap1=%用戶數(shù)stage=3;ptap1=[13];器連接方式ptap2=[23];器連接方式regi1=[111];初始值regi2=[111];初始值%m序列的階數(shù)%m序列1的寄存%m序列2的寄存%m序列1的寄存器%m序列2的寄存器%M-序列%Gold序列%********************擴頻碼的生成*********************%M-序列%Gold序列code=mseq(stage,ptap1,regi1,user);case2

ml=mseq(stage,ptap1,regi1);m2=mseq(stage,ptap2,regi2);code=goldseq(m1,m2,user);%正交Gold序%正交Gold序m1=mseq(stage,ptap1,regi1);m2=mseq(stage,ptap2,regi2);code=[goldseq(m1,m2,user),zeros(user,1)];endcode=code*2-1;clen=length(code);衰落信道參數(shù)%****************************************************衰落信道參數(shù)%信道采樣時間間隔%每種信噪比下的符號傳輸時間%多普勒頻移[Hz]ts=1/Fs/sr/clen;t=(0:nSymbol*Fs*clen-1+2*delay*Fs)*ts;fd=160;****************************h=rayleigh(fd,t);%****************************仿真開始forindx=1:length(EbNo)indx%產(chǎn)生各個用戶的發(fā)射數(shù)據(jù)%Gray編碼%%信道采樣時間間隔%每種信噪比下的符號傳輸時間%多普勒頻移[Hz]****************************%產(chǎn)生各個用戶的發(fā)射數(shù)據(jù)%Gray編碼%4-QAM調(diào)制%擴頻data1=graycode(data+1);data1=qammod(data1,M);[out]=spread(data1,code);%通過脈沖成形濾波器%計算每個用戶信號功率%用戶數(shù)大于1時,所有用戶數(shù)據(jù)相加out1二rcosflt(out.',sr,Fs*sr,'filter',rrcfilter);spow=sum(abs((out1)).A2)/nSymbol;if%通過脈沖成形濾波器%計算每個用戶信號功率%用戶數(shù)大于1時,所有用戶數(shù)據(jù)相加elseout1=out1.';end%*****************************通過瑞利衰落信道******************************%out1=h.*out1;%********************************接收端*********************************sigma=sqrt(0.5*spow*sr/br*10A(-EbNo(indx)/10));%根據(jù)信噪比計算高斯白噪聲方差y=[];forii=1:usery(ii,:)=out1+sigma(ii).*(randn(1,length(out1))+j*randn(1,length(out1)));%加入高斯白噪聲(AWGN)%y(ii,:)=y(ii,:)./h;%假設(shè)理想信道估計endy=rcosflt(y.',sr,Fs*sr,'Fs/filter',rrcfilter);y=downsample(y,Fs);forii=1:usery1(:,ii)=y(2*delay+1:end-2*delay,ii);end%通過脈沖成形濾波器進行濾波%降采樣yd=despread(y1.',code);demodata=qamdemod(yd,M);demodata=graycode(demodata+1);射[err,ber(indx)]=biterr(data,demodata,log2(M));%數(shù)據(jù)解擴%4-QAM解調(diào)%Gray編碼逆映%統(tǒng)計誤比特率End%擴頻函數(shù)function[out]=spread(data,code)%****************************************************************%說明:函數(shù)spread用于將輸入數(shù)據(jù)序列和擴頻序列擴頻%data:輸入數(shù)據(jù)序列%code:擴頻碼序列%out:擴頻后的輸出數(shù)據(jù)序列%****************************************************************switchnargincase{0,1}error('缺少輸入?yún)?shù)');end[hn,vn]=size(data);[hc,vc]=size(code);ifhn>hc序列,提示錯誤error('缺少擴頻碼序列');end%如果輸入?yún)?shù)個數(shù)不對,提示錯誤%如果擴頻碼數(shù)小于輸入的待擴頻的數(shù)據(jù)out=zeros(hn,vn*vc);%初始化輸出序列forii=1:hnout(ii,:)=reshape(code(ii,:).'*data(ii,:),1,vn*vc);%將擴頻后的數(shù)據(jù)排成行矢量的形式end%信號解擴functionout=despread(data,code)%****************************************************************%說明:函數(shù)despread用于將輸入數(shù)據(jù)序列和擴頻序列解擴%data:輸入數(shù)據(jù)序列%code:解擴使用的擴頻碼序列%out:解擴后的輸出數(shù)據(jù)序列%****************************************************************switchnargin%如果輸入?yún)?shù)個數(shù)不對,提示錯誤case{0,1}error('缺少輸入?yún)?shù)');end[hn,vn]=size(data);[hc,vc]=size(code);out=zeros(hc,vn/vc);%初始化輸出序列forii=1:hcxx二reshape(data(ii,:),vc,vn/vc);out(ii,:)=code(ii,:)*xx/vc;end%函數(shù)rayleigh用于產(chǎn)生瑞利衰落信道function[h]=rayleigh(fd,t)%該程序利用改進的jakes模型來產(chǎn)生單徑的平坦型瑞利衰落信道%YahongR.ZhengandChengshanXiao"ImprovedModelsfor%theGenerationofMultipleUncorrelatedRayleighFadingWaveforms"%IEEECommuletters,Vol.6,NO.6,JUNE2002%輸入變量說明:%fd:信道的最大多普勒頻移單位Hz%t:信號的抽樣時間序列,抽樣間隔單位s%h為輸出的瑞利信道函數(shù),是一個時間函數(shù)復(fù)序列%假設(shè)的入射波數(shù)目N=40;wm=2*pi*fd;%每象限的入射波數(shù)目即振蕩器數(shù)目N0=N/4;%信道函數(shù)的實部Tc=zeros(1,length(t));%信道函數(shù)的虛部Ts=zeros(1,length(t));%歸一化功率系數(shù)P_nor=sqrt(1/N0);%區(qū)別個條路徑的均勻分布隨機相位theta=2*pi*rand(1,1)-pi;forii=1:N0%第i條入射波的入射角alfa(ii)=(2*pi*ii-pi+theta)/N;%對每個子載波而言在(-pi,p

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論