哪位大神能帮我看看程序,运行不出来

2019-07-17 13:12发布

仿真光纤光栅反射谱,但总是有错误,实在是不会了,请教大神
%-----------------传输矩阵的功能函数------------------------------
function [f] =tansmit_fiber(L,kappa,num,n_eff,lambda,lambda_Brag)
delta(num)=2*pi*n_eff*(1./lambda(num)-1./lambda_Brag);
s(num)=sqrt(kappa.^2-delta(num).^2);
s11(num)=cosh(s(num)*L)-1i*(delta(num)/s(num))*sinh(s(num)*L);
s12(num)=-1i*(kappa/s(num))*sinh(s(num)*L);
s21(num)=1i*(kappa/s(num))*sinh(s(num)*L);
s22(num)=cosh(s(num)*L)+1i*(delta(num)/s(num))*sinh(s(num)*L);
f=[s11(num) s12(num);s21(num) s22(num)];
end
function fiber TransferMatix(n_eff,L,lambda_Brag)
%-------------变量定义-------------------------------      
% n_eff ----------------光栅有效折射率         
% L     ----------------光栅长度         
% lambda_Brag ----------光栅中心波长
% kappa ----------------光波模式互耦合系数         
% delta ----------------模间失谐量      
%----------------------------------------------------     
disp('输入的参数如下');
disp('光栅有效折射率为:');disp(n_eff);
disp('布拉格光栅的中心波长为');disp(lambda_Brag);
disp('布拉格光栅的长度为:');disp(L)
lambda=linspace(1540,1560,5000);  
k=(1.2*pi./lambda)*10^(-3);s=sqrt(k.^2-delta.^2);
delta=3*pi*(lambda-1550)./(1550^2);
y1=(sinh(2e6*s).^2)./(cosh(2e6*s).^2-(delta.^2./k.^2));
subplot(2,1,1);plot(z,y1,'r');  
xlabel('波长(nm)'),ylabel('反射率');
title('FBG反射谱');grid;  
y2=1./(cosh(2e6*s).^2+(delta.^2./s.^2).*sinh(2e6*s).^2);
subplot(2,1,2);plot(z,y2,'b');  
xlabel('波长(nm)'),ylabel('透射率');
title('FBG透射谱');grid;

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
houjue
1楼-- · 2019-07-17 18:07
 精彩回答 2  元偷偷看……
rosedays
2楼-- · 2019-07-17 22:32
你这个程序中Delta参数是?function fiber TransferMatix(n_eff,L,lambda_Brag)这个是你要编辑的调用函数??
function [f] =tansmit_fiber(L,kappa,num,n_eff,lambda,lambda_Brag)?这个函数怎么没有使用?
however1241
3楼-- · 2019-07-17 23:46
这个真心不会啊~~~~~
aini1143762172
4楼-- · 2019-07-18 05:26
谢谢,楼主分享

一周热门 更多>