• 大小: 3KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-01-04
  • 语言: Matlab
  • 标签: MATLAB仿真  

资源简介

本程序可以实现对激光多次散射的仿真计算,非常方便

资源截图

代码片段和文件信息

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%蒙特卡洛仿真
%N:仿真实验光子数
%L:仿真基线长度
%thgma:消光系数
%theta_trans:发射机发散角
%theta_rthv:接收机视场角
%g:非对称因子
%PP:散射光子数占接受光子数的百分比
%num_of_scat:限定最大散射次数
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function [PPT]=MonteCarlo2(NLthgmatheta_transtheta_rthvgdnum_of_scat)%


num_of_photon = 0;%光子计数器初始化
num_of_scath = zeros(1num_of_scat+1);%多次散射到达接收机的光子数

for i=1:1:N
    
    P=zeros(13num_of_scat+2);%存放每个散射点位置
    D=zeros(13num_of_scat+1);
    P(::1) = [000];%初始位置
    theta_0 = acos(1 - rand*(1-cos(theta_trans)));%初始条件抽样
    phi_0 = 2*rand*pi;
    D(::1) = [sin(theta_0)*cos(phi_0)sin(theta_0)*sin(phi_0)cos(theta_0)];%初始方向

    l = -(1/thgma)*log(rand);%自由路程抽样
    P(::2) = P(::1)+l.*D(::1);%第一个散射点位置
    %test_2=acos(P(112)/sqrt(P(112)

评论

共有 条评论