?? rake.asv
字號:
%在RAKE下的BER性能
%by LinJiaqing
%--------------------------------------------------------
clc
clear
%--------------------參數--------------------------------
pow=-30;fc=50e9;Ts=60e-9;Ns=1;Np=2;Tc=1e-9;Nh=5;Tm=0.5e-9;
tau=0.2e-9;dPPM=0.5e-9;ts=1e-9;numbits=1;numbit=1;
b=1000;
exno=[0 3 6 9];
%-----------------------二進制源--------------------------
bits=rand(1,b)>0.5;
data_in=bits;
q=waitbar(0,'運算中');
for i=1:length(data_in)
waitbar(i/length(data_in),q);
a(1:1)=data_in(:,i);
[Stx,ref]=ljq_transmitter_2PPM_TH(pow,fc,numbits,Ts,Ns,Np,Tc,Nh,Tm,tau,dPPM,a,);
%---------------信道處理---------------------------------------
c0=10^(-47/20);d=2;gamma=1.7;
[rx,ag]=ljq_pathloss(1,c0,d,gamma);
%-------------IEEEUWB信道-------------------------------------
TMG=ag^2;
[h0,hf,OT,ts,X]=ljq_IEEEUWB(fc,TMG);
%hf=hf(1:length(hf)./3);
%--------------noise------------------------------------------
numpulses=numbits*Ns;
SRX0=Stx.*ag;
[RX,noise]=ljq_Gnoise(SRX0,exno,numpulses);
SRX=conv(Stx,hf);
SRX=SRX(1:length(Stx));
RX(1,:)=SRX+noise(1,:);
RX(2,:)=SRX+noise(2,:);
RX(3,:)=SRX+noise(3,:);
RX(4,:)=SRX+noise(4,:);
%--------------------------rakeselector---------------------
L=2;
S=2;
[G,T,NF,rake1,rakeA,rake_1]=ljq_rakeselector(hf,fc,ts,L,S);
L=8;
S=8;
[G,T,NF,rake1,rakeB,rake_2]=ljq_rakeselector(hf,fc,ts,L,S);
%--------------------------PPMcorrmask_R-------------------------
[mask1]=ljq_3PPMcorrmask_R(ref,fc,numpulses,dPPM,rake1);
[maskA]=ljq_3PPMcorrmask_R(ref,fc,numpulses,dPPM,rakeA);
[mask_1]=ljq_3PPMcorrmask_R(ref,fc,numpulses,dPPM,rake_1);
[maskB]=ljq_3PPMcorrmask_R(ref,fc,numpulses,dPPM,rakeB);
[mask_2]=ljq_3PPMcorrmask_R(ref,fc,numpulses,dPPM,rake_2);
%---------------------------PPMreceiver-----------------------
HDSD=1;
%HDSD=2;
[RXbits1]=ljq_PPMreceiver(RX,mask1,fc,numbits,Ns,Ts,HDSD);
[RXbits2]=ljq_PPMreceiver(RX,maskA,fc,numbits,Ns,Ts,HDSD);
[RXbits3]=ljq_PPMreceiver(RX,mask_1,fc,numbits,Ns,Ts,HDSD);
[RXbits4]=ljq_PPMreceiver(RX,maskB,fc,numbits,Ns,Ts,HDSD);
[RXbits5]=ljq_PPMreceiver(RX,mask_2,fc,numbits,Ns,Ts,HDSD);
data_out1(:,i)=RXbits1;
data_out2(:,i)=RXbits2;
data_out3(:,i)=RXbits3;
data_out4(:,i)=RXbits4;
data_out5(:,i)=RXbits5;
end
close(q)
%-----------------------------------------------------------------
N=length(exno);
[ABER]=ljq_ruling(data_in,data_out1,N,b);
[BBER]=ljq_ruling(data_in,data_out2,N,b);
[CBER]=ljq_ruling(data_in,data_out3,N,b);
[DBER]=ljq_ruling(data_in,data_out4,N,b);
[EBER]=ljq_ruling(data_in,data_out5,N,b);
%--------------------------畫圖------------------------------
semilogy(exno,CBER,'-*',exno,BBER,'--o',exno,EBER,'--+',exno,DBER,'-->',exno,ABER,'--');
X=xlabel('Ex/N0/dB--信噪比');
Y=ylabel('Prb/誤比特率');
%title('BER--Ex/N0曲線 by caiguofa(硬判決)');
title('BER--Ex/N0曲線 by caiguofa');
legend('L=2,Prake','S=2,Srake','L=8,Prake','S=8,Srake','Arake');
grid on;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -