www.pudn.com > RAKE.rar > RAKE.m


%在RAKE下的BER性能 
%by LinJiaqing 
%-------------------------------------------------------- 
clc 
clear 
%--------------------参数-------------------------------- 
pow=-30;fc=50e9;Ts=20e-9;Ns=2;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;G=0; 
b=1000; 
exno=[0 3 6 9]; 
%-----------------------二进制源-------------------------- 
 data_in=rand(1,b)>0.5; 
 q=waitbar(0,'运算中'); 
for i=1:length(data_in) 
    waitbar(i/length(data_in),q); 
    a(1:1)=data_in(:,i); 
[THcode,Stx,ref]=ljq_transmitter_2PPM_TH(pow,fc,numbits,Ts,Ns,Np,Tc,Nh,Tm,tau,dPPM,G,a); 
%---------------信道处理--------------------------------------- 
c0=10^(-47/20);d=2;gamma=1.7; 
[rx,ag]=ljq_pathloss(Stx,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 LinJiaqing(硬判决)'); 
%title('BER--Ex/N0曲线                   by LinJiaqing(软判决)'); 
legend('L=2,Prake','S=2,Srake','L=8,Prake','S=8,Srake','Arake'); 
grid on;