weixin_47696437 2022-06-04 20:46 采纳率: 85.3%
浏览 174
已结题

布拉格光栅MATLAB反射谱仿真不会修改代码

问题遇到的现象和发生背景

matlab7.0

问题相关代码,请勿粘贴截图

function FBG_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=1e-9*linspace(1308,1312,500);
kappa_L=5;
kappa=kappa_L/L;%交流耦合系数
F=[1 0;0 1];
for num=1:500
    f=tansmit_fiber(L,kappa,num,n_eff,lambda,lambda_Brag);
    f=f*F;
    r3(num)=f(2,1)/f(1,1);
    R3(num)=(abs(-r3(num)))^2;%反射率
end
subplot(2,1,1)
plot(lambda*1e9,R3,'r');
hold on
subplot(2,1,2)
plot(lambda*1e9,1-R3,'b')
hold on

end

?%传输矩阵的功能函数
function [f] =tansmit_fiber(L,kappa,num,n_eff,lambda,lambda_Brag)
?
delta(num)=2pi n_eff *(1./lambda(num)-1./lambda_Brag);
s(num)=sqrt(kappa.^2-delta(num).^2);
?
s11(num)=cosh(s(num)L)-i(delta(num)/s(num))*sinh(s(num)L);%w传输矩阵元
s12(num)=-i
(kappa/s(num))*sinh(s(num)L);
s21(num)=i
(kappa/s(num))*sinh(s(num)*L);
s22(num)=cosh(s(num)L)+i(delta(num)/s(num))*sinh(s(num)*L);
f=[s11(num) s12(num);s21(num) s22(num)];

end

运行结果及报错内容

要求出现

img

img

img

参考网址
https://www.renrendoc.com/paper/200567888.html
https://blog.csdn.net/qq_59747472/article/details/123156666

我的解答思路和尝试过的方法

不会修改

我想要达到的结果

运行

  • 写回答

1条回答 默认 最新

  • 胸毛男 2022-06-04 21:12
    关注

    函数说,有些地方要用1i表示复数 函数应该改为

    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);%w传输矩阵元
    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
    
    

    这里折射率没有定义啊,随便定义一些值,中心波长550吧,长度4mm

    %-------------变量定义-------------------------------
     
        % n_eff ----------------光栅有效折射率
        % L     ----------------光栅长度
        % lambda_Brag ----------光栅中心波长
        % kappa ----------------光波模式互耦合系数
        % delta ----------------模间失谐量
     
    %----------------------------------------------------
    n_eff = 1.34;
    lambda_Brag=550;
    L=4;
    disp('输入的参数如下');
    disp('光栅有效折射率为:');disp(n_eff);
    disp('布拉格光栅的中心波长为');disp(lambda_Brag);
    disp('布拉格光栅的长度为:');disp(L);
    lambda=1e-9*linspace(1308,1312,500);
    kappa_L=5;
    kappa=kappa_L/L;%交流耦合系数
    F=[1 0;0 1];
    for num=1:500
        f=tansmit_fiber(L,kappa,num,n_eff,lambda,lambda_Brag);
        f=f*F;
        r3(num)=f(2,1)/f(1,1);
        R3(num)=(abs(-r3(num)))^2;%反射率
    end
    subplot(2,1,1)
    plot(lambda*1e9,R3,'r');
    hold on
    subplot(2,1,2)
    plot(lambda*1e9,1-R3,'b')
    hold on
    
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    1人已打赏

报告相同问题?

问题事件

  • 系统已结题 6月13日
  • 已采纳回答 6月5日
  • 创建了问题 6月4日

悬赏问题

  • ¥15 远程桌面文档内容复制粘贴,格式会变化
  • ¥15 关于#java#的问题:找一份能快速看完mooc视频的代码
  • ¥15 这种微信登录授权 谁可以做啊
  • ¥15 请问我该如何添加自己的数据去运行蚁群算法代码
  • ¥20 用HslCommunication 连接欧姆龙 plc有时会连接失败。报异常为“未知错误”
  • ¥15 网络设备配置与管理这个该怎么弄
  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题