Skip to content

wavefrontshaping/article_MMF_disorder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.