⛄一、获取代码方式
获取代码方式1:
完整代码已上传我的资源:【湍流】基于matlab傅里叶变换大气湍流随机相位屏【含Matlab源码 2578期】
点击上面蓝色字体,直接付费下载,即可。
获取代码方式2:
付费专栏Matlab物理应用(初级版)
备注:
点击上面蓝色字体付费专栏Matlab物理应用(初级版),扫描上面二维码,付费29.9元订阅海神之光博客付费专栏Matlab物理应用(初级版),凭支付凭证,私信博主,可免费获得1份本博客上传CSDN资源代码(有效期为订阅日起,三天内有效);
点击CSDN资源下载链接:1份本博客上传CSDN资源代码
⛄二、部分源代码
%scr_fft_ini;
close all;
clc;
disp(‘Program [scr_fft_ini] begin …’);
fp=fopen(‘Readme_atmos.txt’,‘w’);
Nx=512;
Ny=Nx;
fprintf(fp,‘\n========================== Phase screen Parameters ============================== \n\n’);
fprintf(fp,‘Size of Total Phase screen Nx :%d: \n’,Nx);
fprintf(fp,‘Size of Total Phase screen Ny :%d: \n’,Ny);
N=Nx;
Na=128;
fprintf(fp,‘Diameter of Telescope on Phase screen Na :%d: \n’,Na);
D=0.6; %(m),diameter of telescope,望远镜直径
fprintf(fp,‘Diameter of Telescope D (m) :%f: \n’,D);
dx=D/Na;
dy=dx; %grid size 相屏间隔,每望远镜口径上网格点
fprintf(fp,‘Size of grid dy=dx (m) :%f: \n’,dx);
L=Nx*dx; %m ,length of phase screen相屏大小,要与外尺度L0相当
fprintf(fp,‘Length of Total phase screen L (m) :%f: \n’,L);
dz=1000; %(m),length of propagation
fprintf(fp,‘Distance between Phase screens dz (m) :%f \n’,dz);
PN=1;
fprintf(fp,‘Number of Phase screens PN :%d \n’,PN);
path=dz*PN; %(m), total path distance of propagation
fprintf(fp,‘Total length of propagation path path (m) :%f \n’,path);
fprintf(fp,‘\n========================== Atmosphere Tubulence Parameters ============================== \n\n’);
wl=0.6328e-6; %(m),wavelength of laser
fprintf(fp,‘wavelength of laser wl (m) :%e \n’,wl);
k=2*pi/wl; %wave number
cn2=2e-17; %m^(-2/3)
fprintf(fp,‘Atmosphere Cn2 (m) :%e \n’,cn2);
L0=10; %(m),out scale of atmospheric turbulence 湍流外尺度
fprintf(fp,‘Length of Outer scale of atmosphere L0 (m) :%f: \n’,L0);
% x0=(-N/2+1:N/2)dx;
% r0_cn2=(0.423k2*cn2*dz)(-3/5) %(m),Fried number
r0_cn2_screen=0.185*(4pi2/(k2cn2dz))^(3/5); %(m),Fried number 0.185 for plane wave and 3.69 for spherical wave
r0=r0_cn2_screen; %(m),Fried number
r0_path=0.185(4pi2/(k2cn2*path))^(3/5) ;
fprintf(fp,‘Atmosphere r0 between phase screens (m) :%f \n’,r0_cn2_screen);
fprintf(fp,‘Atmosphere r0 on total propagation path (m) :%f \n’,r0_path);
Rytov_dI2_screen=1.23cn2k(7/6)*dz(11/6);
Rytov_dI2_path=1.23cn2k(7/6)*path(11/6);
fprintf(fp,‘Atmosphere Rytov variance dI2 between phase screens :%f \n’,Rytov_dI2_screen);
fprintf(fp,‘Atmosphere Rytov variance dI2 on path :%f \n’,Rytov_dI2_path);
FresnelNumber_Nf=D^2/(wl*dz); % Nf=0,means Far Field or FronHoffer zone: Nf>8 means Fresnel zone. Nf=inf, Near Field
fprintf(fp,‘FresnelNumber Nf :%f \n’,FresnelNumber_Nf);
% rf=(dzwl)^(0.5) % rf=(dz/k)^(0.5) %(m) Fresnel length
% ps_var_theory_max=1.3((Ndx)/r0)^(5/3);
% ps_var_theory_min=0.134((N*dx)/r0)^(5/3);
fclose(fp);
save scr_fft_ini.mat;
disp(‘Program [scr_fft_ini] finished.’);
%scr_fft;
return
⛄三、运行结果
⛄四、matlab版本及参考文献
1 matlab版本
2014a
2 参考文献
[1]刘萍.如何理解空气质量分指数(IAQI)计算公式并速算[J].黑龙江环境通报. 2014,38(02)
3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除