www.gusucode.com > MATLAB编程接收端进行接收功率谱分布的分析源码程序 > code/main.m
% led=[0.25 0.25 2.5; % 1.25 0.25 2.5; % 0.25 1.25 2.5; % 1.25,1.25,2.5]; %LED灯的位置坐标% led=[0.6 0.6 2.5; 0.9 0.6 2.5; 0.5 1 2.5; 1 1 2.5]; %系统的具体参数% halftheta=60; launchpower=70; Rp=0.5; q=1.602189e-19; B=100e6; Ibg=5100e-6; I2=0.562; k=1.382e-23; Tk=295; yita=112e-8; A=1e-4; I3=0.0868; G=10; gm=30e-3; tao=1.5; gama=0.54; roomheight=2.5; length=31; x1=linspace(0,1.5,length); y1=linspace(0,1.5,length); [X1 Y1]=meshgrid(x1,y1); Z1=2.1.*ones(length,length); %高度分层信息% height=[2.5 2.4 2.3 2.2 2.1 2 1.9 1.8 1.7 1.6 1.5 1.4 1.3 1.2 1.1 1.0 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0]; thermal=sqrt((8.*pi.*k.*Tk.*yita.*A.*I2.*B.^2)/G+(16.*(pi).^2.*k.*Tk.*tao.*(yita).^2.*A.^2.*I3.*B.^3)/gm); for g=1:1:31 for j=1:1:31 fov1=fov(X1(g,j),Y1(g,j),Z1(g,j)); rec1(g,j)=directpower(led(1,:),X1(g,j),Y1(g,j),Z1(g,j),launchpower,2.5-Z1(g,j)); rec2(g,j)=directpower(led(2,:),X1(g,j),Y1(g,j),Z1(g,j),launchpower,2.5-Z1(g,j)); rec3(g,j)=directpower(led(3,:),X1(g,j),Y1(g,j),Z1(g,j),launchpower,2.5-Z1(g,j)); rec4(g,j)=directpower(led(4,:),X1(g,j),Y1(g,j),Z1(g,j),launchpower,2.5-Z1(g,j)); rec(g,j)=rec1(g,j)+rec2(g,j)+rec3(g,j)+rec4(g,j); shot(g,j)=sqrt(2.*q.*Rp.*rec(g,j).*B+2.*q.*Ibg.*I2.*B); %考虑系统的噪声影响,热噪声及其散粒噪声% nos1(g,j)=normrnd(0,shot(g,j),1,1); nos2(g,j)=normrnd(0,thermal,1,1); receive1=directpower(led(1,:),X1(g,j),Y1(g,j),Z1(g,j),launchpower,2.5-Z1(g,j))+nos1(g,j)+nos2(g,j); receive2=directpower(led(2,:),X1(g,j),Y1(g,j),Z1(g,j),launchpower,2.5-Z1(g,j))+nos1(g,j)+nos2(g,j); receive3=directpower(led(3,:),X1(g,j),Y1(g,j),Z1(g,j),launchpower,2.5-Z1(g,j))+nos1(g,j)+nos2(g,j); receive4=directpower(led(4,:),X1(g,j),Y1(g,j),Z1(g,j),launchpower,2.5-Z1(g,j))+nos1(g,j)+nos2(g,j); receive(g,j)=receive1+receive2+receive3+receive4; [fov2 t]=find(fov1<=70); [r c]=size(fov2); if(c<3) receive(g,j)=inf; end; receive_db(g,j)=10.*log10(1000.*receive(g,j)); end; end; %接受功率谱图% mesh(X1,Y1,receive_db);