Skip to content

Latest commit

 

History

History
executable file
·
123 lines (87 loc) · 6.29 KB

README.md

File metadata and controls

executable file
·
123 lines (87 loc) · 6.29 KB

Code examples and supporting data for the paper

M. W. Matthès, Y. Bromberg, J. de Rosny and S. M. Popoff

@article{PhysRevX.11.021060,
  title = {Learning and Avoiding Disorder in Multimode Fibers},
  author = {Matth\`es, Maxime W. and Bromberg, Yaron and de Rosny, Julien and Popoff, S\'ebastien M.},
  journal = {Phys. Rev. X},
  volume = {11},
  issue = {2},
  pages = {021060},
  numpages = {12},
  year = {2021},
  month = {Jun},
  publisher = {American Physical Society},
  doi = {10.1103/PhysRevX.11.021060},
  url = {https://link.aps.org/doi/10.1103/PhysRevX.11.021060}
}

Global requirements:

  • Numpy
  • Matplotlib

/Data

Contain the raw and processed data required to generate the figures and to run the demo codes.

  • param.json: json file containing the parameters of the experiment
  • TM_modes_X.npz: transmission matrix in the mode basis after correction for the deformation
  • TM5_0.npy and TM5_1.npy: full transmission matrix in the pixel basis for no deformation (). Because of the 100 Mo restriction of Github, the file is split into two, can be recombined with:
import numpy as np
part1 = np.load('TM5_0.npy')
part2 = np.load('TM5_1.npy')
TM_ref_pix = np.concatenate([part1, part2], axis = 0)
  • TM17_0.npy and TM17_1.npy: full transmission matrix in the pixel basis for no deformation ()
  • TM25_0.npy and TM25_1.npy: full transmission matrix in the pixel basis for
  • TM35_0.npy and TM35_1.npy: full transmission matrix in the pixel basis for
  • TM50_0.npy and TM50_1.npy: full transmission matrix in the pixel basis for
  • TM52_0.npy and TM52_1.npy: full transmission matrix in the pixel basis for the maximum deformation ().
  • conversion_matrices.npz: contains the matrices modes_in and modes_out mode matrices computed for a system without aberration. They are generated using Generate_theoretical_modes/Generate_modes.ipynb.
  • modes_in_after_correction.npy: Change of basis matrix between the input mode basis and the input pixel basis after aberration correction optimization.
  • modes_out_after_correction.npy: Change of basis matrix between the output mode basis and the output pixel basis after aberration correction optimization.
  • mask_near_degenerate.npy: a mask of the same size as the mode basis TM that represents the blocks of quasi-degenerate modes.
  • TM_XX_optimization_results.npz with XX = 17, 25, 35 and 50. Results of the aberration correction relative to the corresponding full pixel basis transmission matrix TMXX.

/Generate_theoretical_modes

Calculation of the theoretical fiber modes.

Requires: pyMMF

See section 2.1 of the Supplementary Information.

/Aberration_correction

See section 2.2 of the Supplementary Information.

Requires: PyTorch

/Analysis

Processing of the results and creation of the plots.

/Layout

Generation of input mask on the digital micro-mirror device (DMD)

See section 1.2 of the Supplementary Information.

Requires: SLMLayout

More information

Visit our website on Wavefrontshaping.net for more information, codes and tutorials.