# SimMoLFil
A **Mode-Locked Fiber Laser (MoLFil)** simulator.
## General info
This project simulates pulses generation and evolution in mode-locke fiber lasers.
The pulse evolution in fiber is calcuated by solving GNLSE using Interaction Picture Method Algorithm [[1](https://ieeexplore.ieee.org/abstract/document/6153336)].
The [original codes](https://github.com/SeveNOlogy7/SimMoLFil/tree/e5cd7787960a503ebab0ab7e6fc6a859b3413667) of this project were written for this paper [[2](https://www.osapublishing.org/oe/abstract.cfm?uri=oe-25-4-4414)], which contains only a minimum amount of the whole codes used.
The project is currently under development.
## Technologies
The project is created with:
* MATLAB version: 2018b
## Examples
mainP1.m: run a simulation and produce results of Point 1 of Figure 2 in [[2](https://www.osapublishing.org/oe/abstract.cfm?uri=oe-25-4-4414)].
## Works in progress
A simple data flow graph (DFG) presentation of Mode-Locked Fiber Laser Models to seperate
layout and connection of optical components from their implementation.
A DFG presentation can be built into some evaluatable object by a Builder.
Imaging you can simply write somthing like
```MATLAB
model = defind some model use DFG
evaluaion = model.build(Some Builder)
evaluaion(Some simulation settings)
```
In this way, it is easy to evaluate a same model with
* different simulation settings (more points, fine step, etc.),
* different algorithms to simulate some specific kind of optical components (better gain model, multimode pulse simulation, etc.),
* and even tools written in other language.
All these can be done by adding a new Builder class to generate the evaluatable.
Also, it turns out to be clear that, the idea of DFG presentation is not only suitable for Mode-locked fiber laser models, but also for Cascaded Fiber Supercontinuum Generation models.
### Examples of current DFG design
Following are codes that generate a Cascaded Fiber Supercontinuum model.
```MATLAB
% Define a fiber component
fiber = component.Fiber();
% Create some "Node"s that performs Fiber operation
% SMF stands for single mode fiber
SMF1 = simulation.Fiber("SMF1", fiber);
SMF2 = simulation.Fiber("SMF2", fiber);
SMF3 = simulation.Fiber("SMF3", fiber);
% Create a input Node
In = simulation.Input("In");
% Now simply put the Nodes together
% Think it like:
% Out = In -> SMF1 -> SMF2 -> SMF3
% It is injecting a input (like a powerful laser pulse) through three cascaded fiber sections
% No "->" operator in Matlab, so it end up like this
Out = In + SMF1 + SMF2 + SMF3;
% Generate some human-readable statement presentation of the model
statements = Out.statements()
```
The statements will contain a multiline string:
```MATLAB
t0 = In.Input()
t1 = SMF1.Fiber[fiber=component.Fiber](t0)
t2 = SMF2.Fiber[fiber=component.Fiber](t1)
t3 = SMF3.Fiber[fiber=component.Fiber](t2)
```
These staments show what any builders of the DFG model should implement to make the DFG an evaluable.
### Codes Arrangement
* **simulation package** contains codes that help reuse a few MATLAB syntax to present a MoLFil Model in DFG
and simply build the MoLFil Model to
* Human readable statements
* Evaluation object, given a specific Builder implementation
* **component package** contains optical components packed in classes.
And some helper methods to calculate parameters for those components.
### Todos
- [x] DFG generation
- [x] DFG build process
- [x] A pure MATLAB Builder implementation using existing codes in SimMLFL
- [x] DFG Evaluation Class
- [x] flow control operations
- [ ] Fill component package with concrete classes
- [x] components need for F8L
- [ ] more components
- [ ] Docs
- [ ] Examples
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
该项目模拟了锁模光纤激光器中脉冲的产生和演化。通过使用相互作用图像法算法求解GNLSE来计算光纤中的脉冲演化,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用~ 该项目模拟了锁模光纤激光器中脉冲的产生和演化。通过使用相互作用图像法算法求解GNLSE来计算光纤中的脉冲演化,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用~ 该项目模拟了锁模光纤激光器中脉冲的产生和演化。通过使用相互作用图像法算法求解GNLSE来计算光纤中的脉冲演化,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用~ 该项目模拟了锁模光纤激光器中脉冲的产生和演化。通过使用相互作用图像法算法求解GNLSE来计算光纤中的脉冲演化,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用~
资源推荐
资源详情
资源评论
收起资源包目录
锁模光纤激光器仿真.zip (60个子文件)
SimMoLFil-main
Examples
mainP1.m 7KB
LICENSE 1KB
.gitignore 670B
SimMolFil
GNLSE
Solver
Linearoperator_w.m 338B
Raman_response_w.m 913B
IP_CQEM_FD.m 7KB
NonLinearoperator_w.m 1KB
Ultility
plot_model.m 757B
Plot_ML_result.m 3KB
fwzm.m 602B
rand_sech.m 709B
fwhm.m 595B
xcorr_normal.m 134B
Coupler
coupler.m 315B
Filter
filter_BPF.m 430B
filter_gauss.m 675B
+simulation
Show.m 438B
Constants.m 264B
Coupler.m 426B
Feedback.m 202B
Recurrence.m 711B
Const.m 233B
Fiber.m 386B
Filter.m 243B
Model.m 7KB
Input.m 298B
Join.m 247B
+builder
Builder.m 810B
Evaluation.m 8KB
Operation.m 4KB
Configuration.m 2KB
Amplifier
AmpSimp
AmpSimpNonoise.m 638B
filter_lorentz_tf.m 673B
testcodes
test_onetrip_gain.m 1019B
test_Pin_Pout.m 493B
test_fzero.m 250B
test_gain_saturated.m 374B
AmpSimpNoise.m 2KB
gain_saturated3.m 496B
gain_saturated2.m 577B
AmpStable
AmpTBV.m 1KB
AmpParaCal.m 2KB
EqualAmpSimpPara.m 861B
cal_AmpSimpPara.m 3KB
TEST
AmpReaborption.m 3KB
AmpStableTest.m 3KB
AmpStableMain.m 4KB
AmpGainWCal.m 489B
AmpGain.m 2KB
Spectra
GetGuassianSpectrum_w.m 246B
GetYbSpectrum.m 883B
GetYbSpecturm_w.m 478B
unittests
run_all_tests.m 126B
DFGTest.m 7KB
EvaluationTest.m 10KB
+component
Coupler.m 809B
Fiber.m 3KB
Filter.m 1KB
ActiveFiber.m 3KB
README.md 4KB
共 60 条
- 1
资源评论
梦回阑珊
- 粉丝: 5199
- 资源: 1681
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功