function Q = CalculateQ( t,R1,R2,n1,n2,n3,m, lambdaf )
dl=0.00005;%dl需要根据Q值变化做调整,调整方法看figure1
lambda1=lambdaf-dl;
lambda2=lambdaf+dl;
lambda=linspace(lambda1,lambda2,10000);
k=2*pi./lambda;
SS=length(k);
Fm=ones(SS,1);
a1=besselj(m,n1.*R1.*k);
a2=n1*(besselj(m-1,n1.*R1.*k)-besselj(m+1,n1.*R1.*k))/2;
b1=besselj(m,n2.*R1.*k);
b2=n2*(besselj(m-1,n2.*R1.*k)-besselj(m+1,n2.*R1.*k))/2;
b3=besselj(m,n2.*R2.*k);
b4=n2*(besselj(m-1,n2.*R2.*k)-besselj(m+1,n2.*R2.*k))/2;
c1=besselh(m,n2.*R1.*k);
c2=n2*(besselh(m-1,n2.*R1.*k)-besselh(m+1,n2.*R1.*k))/2;
c3=besselh(m,n2.*R2.*k);
c4=n2*(besselh(m-1,n2.*R2.*k)-besselh(m+1,n2.*R2.*k))/2;
fm1=besselh(m,n3.*R2.*k);
fm2=n3*(besselh(m-1,n3.*R2.*k)-besselh(m+1,n3.*R2.*k))/2;
for i=1:SS
AA=[-a1(i),b1(i),c1(i),0;-a2(i),b2(i),c2(i),0;0,b3(i),c3(i),-fm1(i);0,b4(i),c4(i),-fm2(i)];
BB=[0;0;-a1(i);-a2(i)];
% x=AA\BB;
[L,U]=lu(AA);
x=U\(L\BB);
Fm(i)=x(4);
end
d=abs(Fm).^2;
dd=abs(d-max(d)/2);
B= find(diff(sign(diff(dd)))==2)+1;
halfright=lambda(B(2));
halfleft=lambda(B(1));
Q=lambdaf/(halfright-halfleft);
figure(1)
plot(lambda,d)
hold on
%红点和蓝点对应半峰宽位置
plot(halfright,d(B(2)),'O','MarkerSize',8,'MarkerEdgeColor','r','MarkerFaceColor','r');
hold on
plot(halfleft,d(B(1)),'O','MarkerSize',8,'MarkerEdgeColor','b','MarkerFaceColor','b');
hold off
ylabel('散射场强度')
xlabel('wavelength (\mum)')
end
没有合适的资源?快使用搜索试试~ 我知道了~
回音壁微腔matlab计算程序.rar
共4个文件
m:4个
需积分: 50 51 下载量 167 浏览量
2019-11-19
10:28:15
上传
评论 5
收藏 2KB RAR 举报
温馨提示
回音壁微腔matlab计算程序 包括计算谐振波长,计算Q值和计算场分布,主程序包含腔的结构参数,计算的结构为三层介质的微管腔
资源推荐
资源详情
资源评论
收起资源包目录
回音壁微腔matlab计算程序.rar (4个子文件)
回音壁微腔matlab计算程序
main.m 371B
plotfield.m 1KB
Calculatewavelength.m 866B
CalculateQ.m 1KB
共 4 条
- 1
资源评论
硅光设计
- 粉丝: 265
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功