clear;
%----------------constants-------------------
c=1;
%-------------things to change---------------
l_start=0; %start OAM
lam=1.5; %Wavelength
A=0.5; %Amplitude
N=100; %
t_stop=10; %Amount of timesteps
z_range=2*lam; %Length of z values
%--------------------------------------------
k=2*pi/lam;
w=k*c;
k_vector=[1 0 0]*k;
%---------vector x--------
z_value=linspace(0,z_range,N); %z on x-axis in plot
L_z=length(z_value);
r=A*ones(1,N);
%----- --------- -------
t_steg=lam/(2*2*pi*c); %Not to big timesteps
t_vector=0:t_steg:t_stop;
%------------------------
z_antal=z_range/lam;
steg=zeros(1,z_antal); %s? att den plana v?gen upprepas
%d? den passerar utanf?r bild.
t=1;
n=1;
l=l_start;
while t<=t_stop
while l<=l_start+3
if l==0 %Plane wave
clf;
subplot(2,2,n);
hold on;
axis([0 z_range -2 2 -2 2]);
view(51,30);
axis fill;
axis square;
grid on;
%light;
z_value_tmp=z_value; %Z_value
PHI_vector=linspace(0,2*pi,N);
L_PHI=length(PHI_vector);
R=ones(1,L_PHI);
[x_value y_value]=pol2cart(PHI_vector,R);
temp=ones(1,L_z);
z_value=temp*w*t_vector(t)/k;
clear temp;
for p=1:z_antal
z_value_p=z_value+(p-1)*lam;
if z_value_p>=(steg(1,p)+1)*z_range
steg(1,p)=steg(1,p)+1;
end
z_value_p=z_value_p-2*steg(p)*lam;
m=1;
while m<L_z %Plottar Phasplanes
X=[z_value_p(m) ;z_value_p(m) ;z_value_p(m+1);z_value_p(m+1) ];
Y=[0 ;y_value(m) ;y_value(m+1);0 ];
Z=[0 ;x_value(m) ;x_value(m+1);0 ];
fill3(X,Y,Z,'y');
m=m+1;
alpha(1);
end
end %for loop
z_value=z_value_tmp;
else
subplot(2,2,n);
hold on;
axis([0 z_range -2 2 -2 2]);
view(51,30);
axis fill;
axis square;
grid on;
light;
material shiny;
l_steg=0;
while l_steg<l
temp=ones(1,L_z);
PHI_start=l_steg*2*pi/l*temp;
PHI_vector=PHI_start+k*z_value/l-w*t_vector(t)/l;%£¿£¿£¿£¿£¿
L_PHI=length(PHI_vector);
R=ones(1,L_PHI);
[x_value y_value]=pol2cart(PHI_vector,R);
clear temp;
m=1;
while m<L_z %%Plottar Phasplanes
X=[z_value(m) ;z_value(m) ;z_value(m+1);z_value(m+1) ];
Y=[0 ;y_value(m) ;y_value(m+1);0 ];
Z=[0 ;x_value(m) ;x_value(m+1);0 ];
fill3(X,Y,Z,'y')
m=m+1;
end
l_steg=l_steg+1;
end %while l_steg...
end %else satsen
l=l+1;
n=n+1;
end %while l.
%Film(:,t)=getframe(gcf);
hold off;
n=1; %?terst?llning av r?knare
t=t+1; %Tidsstegning
pause(0.1);
l=l_start;
end
Matlab领域
- 粉丝: 3w+
- 资源: 3766
最新资源
- 获取光敏电阻测量值并探索运动检测算法Matlab代码.rar
- 基于 Potts 模型的向量值图像多标签图像分割Matlab代码.rar
- 基于 YCbCr 颜色模型的基于图像处理的森林火灾探测Matlab代码.rar
- 基于局部最大值和最小值分析的连续时间动力学系统的分岔图Matlab代码.rar
- 基于色度的道路跟踪系统 Matlab 代码.rar
- 计算阿特金森循环的各种压力和温度Matlab代码.rar
- 基于运动估计的 3D 视频去噪的简单时间滤波器Matlab代码.rar
- 计算第二类斯特林数Matlab代码.rar
- 计算二元系统液体和蒸汽成分以及闪蒸过程中的温度Matlab代码.rar
- 计算点云的振荡剪切指数的函数Matlab代码.rar
- 静态霍夫曼编码和解码;用于文本压缩的自适应 Huffman 编码和解码Matlab代码.rar
- 将具有延迟的连续时间模型转换为具有扩展状态向量的离散状态空间模型Matlab代码.rar
- 检测彩色图像中的人脸Matlab代码.rar
- 使用 FCD 方法实时高精度地跟踪棋盘格图案中的光学畸变Matlab代码.rar
- 使用 GAUSS-SEIDEL 方法进行潮流分析的程序Matlab代码.rar
- 使用 lsqnonlin 的光束法平差Matlab代码.rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈