Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
LiuRenxi authored and LiuRenxi committed Jun 30, 2022
2 parents 2b7993d + eec7ec5 commit 8e96389
Show file tree
Hide file tree
Showing 55 changed files with 607 additions and 204 deletions.
18 changes: 6 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,7 @@

* [Ch 1: Doc](#ch-1-doc)
* [Ch 2: Light](#ch-2-light)
* [Ch 3: MechineLearning](#ch-3-mechinelearning)
* [Ch 4: Tests](#ch-4-support-vector-machines)
* [Ch 3: MachineLearning](#ch-3-mechinelearning)

---
---
Expand All @@ -17,9 +16,7 @@
本目录主要介绍了程序所用的算法以及必要的程序说明文件。
1. [光束远场传输程序输入参数说明](doc/documentation.md)
* 介绍了光束远场传输模拟程序中所有输入参数的具体含义以及选择范围。
2. [光束远场传输模拟算法]()
* 介绍了聚焦光束远场计算的FFT方法。
3. [基于机器学习的波前相差感知程序说明]()
2. [基于机器学习的波前相差感知程序说明]()
* 介绍了程序所选取的神经网络以及相对应的输入参数。
---
---
Expand All @@ -28,18 +25,15 @@
* 程序各个模块的作用;
* 程序结果展示;
* 程序运行方法。
* <font size=3>光束远场传输程序的测试文档,其中包括`32*32``64*64`,`128*128``256*256`四种网格。需要输入`INPUT.txt`和Zernike系数`.dat`文件。
运行方法:`bash test64.sh`
[具体参数含义](doc/documentation.md)。</font></b>
---
---
## [Ch 3: MechineLearning](mechinelearning/README.md)
## [Ch 3: MachineLearning](machinelearning/README.md)
基于机器学习的波前相差感知程序:运用机器学习的方法由远场光强学习到波前像差对应的Zernike多项式系数。目前参考的网络有:简化后的Xception模型、Xception模型、ResNet模型。
* 程序各个模块的作用;
* 程序结果展示;
* 程序运行方法。
---
---
## [Ch 4: Tests](tests/README.md)
<font size=3>光束远场传输程序的测试文档,其中包括`32*32``64*64`,`128*128``256*256`四种网格。需要输入`INPUT.txt`和Zernike系数`.dat`文件。
运行方法:`bash test64.sh`
[具体参数含义](doc/documentation.md),[程序结果展示](light/README.md))。</font></b>
---
---
76 changes: 76 additions & 0 deletions doc/input Chinese.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
# documentation
## input parameters
`mm`: $mm = log_{2}(n_{grid}))$。

`n_grid`: 网格数。$n_{grid}= 2^{mm}$。

`n1` : 半网格数。 ${n1} = {n_{grid}} / 2 + 1$。

`mgs` : 光束截断指数。 pow( , mgs) = pow( ,truncated beams)。

`a0` : 初始光场光斑半径/m。

`xx0` : 初始光场缓冲区倍数。

`aa0` : 初始光场计算区域/m$aa0 = xx0 * a0$.

`dxy0` : 初始光场网格尺寸/m。$dxy0 = aa0 / n_{grid}$。

`plm` : 波长/m。

`zfh` : 传输距离/m。

`airy` : 理想衍射光斑半径/m。$airy = 1.22 * plm * zfh / (2 * a0)$。

`xxz` : 焦区光场缓冲区倍数。

`aaz` : 焦区光场计算区域/m。$aaz = airy * xxz$。


`dxyz` : 焦区光场网格尺寸/m。$dxyz = aaz / n_grid$。

`minZnkDim` : 多项式最小阶数。

`maxZnkOrder` : 多项式最大阶次(最大为13)。

`rms` : 相位方差。

`eeznk` : 多项式系数方差变化指数。

`Phase_option`: 选择随机相位或者固定相位。"random" 为随机相位。"confirm"为固定相位。

`dir`: 路径。

`aznk_dir`: Zernike系数矩阵文件路径(.dat)。

`num_datas`: 帧数。

`out_inIntensity`: "1" 为输出初始光强, "0" 为不输出。

`out_zernike_coeff`: "1" 为输出Zernike系数, "0" 为不输出。

`out_inPhase`: "1" 为输出加入扰动相位后的光场, "0" 为不输出。

`out_focusing`: "1" 为输出聚焦后的光场, "0" 为不输出。

`out_mdfph1`: "1" 为输出做完第一次坐标变换后的光场, "0" 为不输出。

`out_my_fft2d1`: "1" 为输出作完快速傅里叶变换后的光场, "0" 为不输出。

`out_evol1`: "1" 为输出在倒空间内完成光束传输后的光场, "0" 为不输出。

`out_my_fft2d2`: "1" 为输出做完快速傅里叶逆变换的光场, "0" 为不输出。

`out_mdfph2`: "1" 为输出坐标逆变换后的光场, "0" 为不输出。

`out_outIntensity`: "1" 为输出远场光强, "0" 为不输出。










4 changes: 4 additions & 0 deletions doc/documentation.md → doc/input.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,10 @@

`dir`: path.

`aznk_dir`: Zernike coefficient matrix path.(.dat)

`num_datas`: frame number

`out_inIntensity`: "1" is output inIntensity, "0" is not output.

`out_zernike_coeff`: "1" is output zernike_coeff, "0" is not output.
Expand Down
4 changes: 2 additions & 2 deletions light/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,11 +33,11 @@ date = "220623_0.5"
nsnapshots = 10000 # 指定帧数
distribution = "0.5"
nzernike = 35
intensity_dir = "/home/xianyuer/yuer/num_mechinelearning/deep-light/tests/64_64/dl_outIntensity.dat"
intensity_dir = "/home/xianyuer/yuer/num_machinelearning/deep-light/tests/64_64/dl_outIntensity.dat"
```
同时需要更改
```python
np.save('/home/xianyuer/yuer/num_mechinelearning/deep-light/mechinelearning/0620/data/outIntensity_%d_%s_64_%d'%(nzernike,distribution,nsnapshots),intensity)
np.save('/home/xianyuer/yuer/num_mechinelearning/deep-light/machinelearning/0620/data/outIntensity_%d_%s_64_%d'%(nzernike,distribution,nsnapshots),intensity)
```
运行命令: `python data.py `

Expand Down
187 changes: 0 additions & 187 deletions light/sources/optical_field(备份22.2.11 11%253A09).cpp

This file was deleted.

2 changes: 2 additions & 0 deletions light/tests/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# tests文档
* <font size=3>光束远场传输程序的测试文档,其中包括`32*32``64*64`,`128*128``256*256`四种网格。需要输入`INPUT.txt`和Zernike系数`.dat`文件。
45 changes: 45 additions & 0 deletions light/tests/test/INPUT.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
mm 6 number of grid-point = 2^mm log2(number of grid-point) log2(网格数)

mgs 8 pow( , mgs) = pow( ,truncated beams) !'光束截断指数

a0 0.3 the spot radius of initial fields!'初始光场光斑半径/m
xx0 4.0 Multiple of initial light field buffer area !'初始光场缓冲区域倍数


plm 1e-6 wave length !'波长/m
zfh 3e3 transmission distance !'传输距离/m

xxz 20 multiple of focal light field buffer area!'焦区光场缓冲区倍数


minZnkDim 1 minimum order of a polynomial!'多项式最小阶数
maxZnkOrder 7 maximum degree of polynomial!'多项式最大阶次(最大为13)

rms 1 Phase variance !'相位方差
eeznk 0.3 Polynomial coefficient variance change index !'多项式系数方差变化指数

Phase_option random add for "random" or "confirm"

dir ./ path

aznk_dir ./datazernike_0_220630_gauss_1_35_1.dat
num_datas 1
out_inIntensity 1

out_zernike_coeff 1

out_inPhase 0

out_focusing 0

out_mdfph1 0

out_my_fft2d1 0

out_evol1 0

out_my_fft2d2 0

out_mdfph2 0

out_outIntensity 1
Loading

0 comments on commit 8e96389

Please sign in to comment.