- 51
- 0
- 约2.69千字
- 约 4页
- 2018-11-25 发布于河南
- 举报
实验九 Rake接收机仿真
实验九Rake接收机仿真实验目的了解Rake接收机原理。比较3种合并算法性能。实验内容编写MATLAB程序,实现Rake接收机。修改SNR观察误码率变化。实验代码clear all;Numusers=1;Nc=16;ISI_Length=1;EbN0db=[0:1:30];Tlen=8000;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);wal2=[1 1;1 -1];wal4=[wal2 wal2;wal2 wal2*(-1)];wal8=[wal4 wal4;wal4 wal4*(-1)];wal16=[wal8 wal8;wal8 wal8*(-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);for i=1:Numusers x0=s_initial(i,:).*wal16(8,:); x1=x0.; s_spread(i,:)=(x1(:)).;endray1(1:2:2*Tlen*Nc-1)=s_spread(1:Tlen*Nc);ray1(2:2:2*Tlen*Nc)=ray1(1:2:2*Tlen*Nc-1);ray2(ISI_Length+1:2*Tlen*Nc)=ray1(1:2*Tlen*Nc-ISI_Length);ray2(2*ISI_Length+1:2*Tlen*Nc)=ray1(1:2*Tlen*Nc-2*ISI_Length);for nEN=1:length(EbN0db) en=10^(EbN0db(nEN)/10); sigma=sqrt(32/(2*en)); demp=power_unitary_factor1*ray1+power_unitary_factor2*ray2+power_unitary_factor3*ray3+(rand(1,2*Tlen*Nc)+randn(1,2*Tlen*Nc)*i)*sigma; dt=reshape(demp,32,Tlen); wal16_d(1:2:31)=wal16(8,1:16); wal16_d(2:2:32)=wal16(8,1:16); rdata1=dt*wal16_d(1,:).; wal16_delay1(1,2:32)=wal16_d(1,1:31); rdata2=dt*wal16_delay1(1,:).; wal16_delay2(1,3:32)=wal16_d(1,1:30); wal16_delay2(1,1:2)=wal16_d(1,31:32); rdata3=dt*wal16_delay2(1,:).; p1=rdata1*rdata1; p2=rdata2*rdata2; p3=rdata3*rdata3; p=p1+p2+p3; u1=p1/p; u2=p2/p; u3=p3/p; rd_m1=real(rdata1*u1+rdata2*u2+rdata3*u3); rd_m2=(real(rdata1+rdata2+rdata3))/3; u=[u1,u2,u3]; maxu=max(u); if(maxu==u1) rd_m3=real(rdata2); else if(maxu==u2) rd_m3=real(rdata2); else rd_m3=real(rdata3); end end r_Data1=sign(rd_m1); r_Data2=sign(rd_m2); r_Data3=sign(rd_m3); Bit_Error_Number1=length(find(r_Data1(1:Tlen)~=s_initial(1:Tlen))); Bit_Error_Rate1(nEN)=Bit_Error_Number1/Tlen; Bit_Error_Number2=length(fin
原创力文档

文档评论(0)