資源描述:
《m序列產(chǎn)生及自相關(guān)和互相關(guān)函數(shù)曲線.doc》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、1、m序列產(chǎn)生及自相關(guān)和互相關(guān)函數(shù)曲線functionPN=makem(x)%m序列產(chǎn)生函數(shù)ss1=num2str(x);ss2=dec2bin(base2dec(ss1,8));%先把八進制轉(zhuǎn)換為十進制,再把十進制轉(zhuǎn)換為二進制G=2^(length(ss2)-1)-1;%最大周期sd=[];forj=1:(length(ss2)-2)sd=[sd0];endsd=[sd1];%寄存器初始狀態(tài)000...01PN=[];forj=1:GPN=[PNsd(length(sd))];%m序列輸出的第一位onenum=[];forjj=1:length(ss2)ifstr2num(ss2(j
2、j))==1onenum=[onenumjj-1];%存儲二進制反饋系數(shù)里面“1”的位置-1,即進行異或的位置endendtemp=sd(onenum(2));forjj=3:length(onenum)%根據(jù)“1”的位置進行異或運算temp=xor(temp,sd(onenum(jj)));endforjj=length(ss2)-1:-1:2%移位(序列后一位值等于前一位值)sd(jj)=sd(jj-1);endsd(1)=temp;%序列第一位等于反饋出來的值endfunctionmandzi(ss)%m序列曲線及自相關(guān)函數(shù)曲線繪圖函數(shù)ss1=num2str(ss);ss2=de
3、c2bin(base2dec(ss1,8));%轉(zhuǎn)換為二進制G=2^(length(ss2)-1)-1;%最大周期PN=makem(ss);%調(diào)用函數(shù)計算m序列pp=(-2).*PN+1;%0→11→-1pp2=[];fortao=-(G-1):G-1pp1=circshift(pp,[0,tao]);pp2=[pp2sum(pp.*pp1)/G];%計算自相關(guān)函數(shù)endsubplot(2,1,1)stem(PN)gridon;title(['使用生成多項式(',num2str(ss),')8=(',ss2,')2產(chǎn)生的m序列'])subplot(2,1,2)tao=-(G-1):G-
4、1;plot(tao,pp2)gridon;title('自相關(guān)函數(shù)曲線')functionhuxg(x,y)%m序列互相關(guān)繪圖函數(shù)x1=num2str(x);x2=dec2bin(base2dec(x1,8));%轉(zhuǎn)換為二進制G1=2^(length(x2)-1)-1;%最大周期y1=num2str(y);y2=dec2bin(base2dec(y1,8));%轉(zhuǎn)換為二進制G2=2^(length(y2)-1)-1;%最大周期ifG1~=G2error('周期不同,無法計算')returnendpn1=makem(x);%分別調(diào)用函數(shù)計算出m序列pn2=makem(y);pp=[];
5、fortao=-(G1-1):G1-1pn1tao=circshift(pn1,[0,tao]);%計算互相關(guān)函數(shù)%pp=[ppsum(pn2.*pn1tao)/G1];pp=[ppsum(pn2.*pn1tao)];endtao=-(G1-1):G1-1;plot(tao,pp)gridon;title(['反饋系數(shù)(',num2str(x),')8和(',num2str(y),')8的互相關(guān)函數(shù)曲線'])2、Rake接收機仿真clearall;clcNumusers=1;Nc=16;%擴頻因子ISI_Length=1;%每徑延時為ISI_Lengh/2EbN0db=[0:1:30]
6、;%信噪比,單位dBTlen=8000;%數(shù)據(jù)長度Bit_Error_Number1=0;%誤比特率初始值Bit_Error_Number2=0;Bit_Error_Number3=0;power_unitary_factor1=sqrt(6/9);%每徑功率因子power_unitary_factor2=sqrt(2/9);power_unitary_factor3=sqrt(1/9);s_initial=randsrc(1,Tlen);%數(shù)據(jù)源wal2=[11;1-1];%產(chǎn)生walsh矩陣wal4=[wal2wal2;wal2wal2*(-1)];wal8=[wal4wal4;w
7、al4wal4*(-1)];wal16=[wal8wal8;wal8wal8*(-1)];s_spread=zeros(Numusers,Tlen*Nc);%擴頻ray1=zeros(Numusers,2*Tlen*Nc);ray2=zeros(Numusers,2*Tlen*Nc);ray3=zeros(Numusers,2*Tlen*Nc);fori=1:Numusersx0=s_initial(i,:).'*wal16(8,:);x1=x