Matlab 径向偏振光角谱衍射代码.pdf

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

Matlab径向偏振光角谱衍射代码--第1页

Matlab径向偏振光角谱衍射代码

径向偏振光方向与普通偏振光方向不同,它的电矢量沿着光波的

径向偏振,而普通偏振光电矢量则垂直于光波的传播方向和光波的振

动方向。在进行角谱衍射时,要计算径向偏振光的干涉图案,需要编

写Matlab代码,以下是编写径向偏振光角谱衍射代码的步骤:

1.定义参数

首先,定义光的波长(lambda)和一个常数(k):

lambda=0.5;%次数

k=2*pi/lambda;%波数

2.定义样品

样品通常是一个二维晶格,我们可以通过定义一个矩阵来表示样

品,例如:

n=100;%样品尺寸

a=0.1;%晶格常数

Matlab径向偏振光角谱衍射代码--第1页

Matlab径向偏振光角谱衍射代码--第2页

d=a/2;%晶格间距

[x,y]=meshgrid((-n/2:n/2-1)*d);

s=sin(2*pi*a/d*x).*sin(2*pi*a/d*y);

其中,meshgrid函数用于创建一个网格,使得每个像素的坐标都

可以通过x和y的矩阵索引来访问。sin函数表示晶格的曲面。

3.计算径向偏振光的单位向量

对于径向偏振光,我们需要计算它的电矢量,即一个与光波传播

方向垂直的向量。设光波传播方向的单位向量为k_hat,在径向偏振光

方向的单位向量为e_hat,我们可以用下面的代码计算e_hat:

k_hat=[001];%光波传播方向单位向量

e_hat=[(x.^2-y.^2)./((x.^2+y.^2).^2);...

-2.*x.*y./((x.^2+y.^2).^2);...

0.*x];%径向偏振光方向单位向量

e_hat=e_hat./sqrt(sum(e_hat.^2));%单位化

其中,分子是径向偏振光的振动方向,通过除以分母使其单位化。

Matlab径向偏振光角谱衍射代码--第2页

Matlab径向偏振光角谱衍射代码--第3页

4.计算入射波的相位和幅度

我们需要计算入射波的相位和幅度以及电场,可以使用下面的代

码:

t=0;%初始时间

eta=pi/4;%初始相位

E=s.*exp(1i*(k_hat*x(:)+k_hat*y(:))*k+eta)*e_hat(:);

其中,x(:)和y(:)将矩阵展开为一维向量。

5.计算干涉形成的衍射图案

最后,我们可以通过傅里叶变换计算干涉形成的衍射图案,使用

下面的代码:

E=reshape(E,n,n,3);

E_fft=fftshift(fft2(E));

I=

abs(E_fft(:,:,1)).^2+abs(E_fft(:,:,2)).^2+abs(E_fft(:,:,3)).^

2;

Matlab径向偏振光角谱衍射代码--第3页

Matlab径向偏振光角谱衍射代码--第4页

其中,E_fft是入射场的傅里叶变换,I是干涉形成的衍射图案。

这个代码片段可以应用于许多不同的径向偏振实验,比如双晶衍

您可能关注的文档

文档评论(0)

195****7930 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档