⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rake.asv

📁 在单一天线接收和发送的UWB中Rake接收机BER的性能的仿真
💻 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 + -