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);