R. Gutiérrez-Cuevas , A. Goetschy , G. Pelc, E. Ravn Andresen , L. Bigot , Y. Quiquempois , P. Sillard , M. Bigot, O. Katz , J. de Rosny , and S. M. Popoff
@misc{gutiérrezcuevas2023tailoring,
title={Tailoring the Rotational Memory Effect in Multimode Fibers},
author={Rodrigo Gutiérrez-Cuevas and Arthur Goetschy and Guy Pelc and Esben Ravn Andresen and Laurent Bigot and Yves Quiquempois and Maroun Bsaibes and Pierre Sillard and Marianne Bigot and Julien de Rosny and Sébastien M. Popoff},
year={2023},
eprint={2310.19337},
archivePrefix={arXiv},
primaryClass={physics.optics}
}
Global requirements:
- Numpy
- Matplotlib
- Scipy
- tqdm
For mode simulation (pyMMF) [Optional]:
- numba
- joblib
For RME channel video creation [Optional]:
Raw data files [Optional]:
- Only required to regenerated the curated data files (in /Data) used to produce the results of the paper. Available on Zenodo:
We also used the pyMMF
package to find the modes of the fiber.
For consistancy, we use a local version of the package, which is included in the repository in /pyMMF
.
Contain the data used in the paper.
It corresponds to a subset of the large raw data files (hence the _small
prefix) that are available on Zenodo
It also contain the processed data, generated by Experiment_VS_Model.ipynb
, used to produce the figures of the paper.
The data is organized in folders ./<FIBER>/
,
named after each fiber samples used, each one corresponding to a different fiber.
They all have the same geometrical adverized properties,
i.e. a graded index fiber with parabolic index profile, <FIBER>
can be:
Draka_GRIN
for the Prysmina BendBright™ OM4 fiber,TL_GRIN_1
, for a segment of the Tholabs OM2 GIF50C fiber from a first spool,TL_GRIN_2
orTL_GRIN_3
for two segments of the same Tholabs OM2 GIF50C fiber but from a different spool.
-
paraml.pkl
is a pickle file containing a dictionnary of the complete experimental and numerical parameters. It corresponds to the metadata of the experiment. -
param_small.pkl
is a pickle file containing a subset of the complete parameters, we keep only what is useful for the post-treatment. -
Ys_focus_small.npy
contains the data corresponding to the rotated focus experiment (Fig.1b in the paper). We learn to focus on one point and rotate the input wavefront. The output intensity pattern is then recorded for various angles. The experiment is repeated for different values of the local deformation applied. -
Ys_rnd_small_p<pola>_<n>.npz
contains the output fields for rotated random inputs at the output polarization<pola>
and for the deformation indexed by<n>
. This data is used to compute the rotational memory effect angular correlation (defined in Eq.1 of the paper). -
Ys_rm_small.npz
contains the output fields for input wavefronts corresponding to the first singular vectors of the rotational memory effect operators for the different levels of deformation (see section IV and Appendix E of the paper). -
TMs_mode.npy
contains the transmission matrices of the fiber in the mode basis for different levels of deformation. -
processed_data.pkl
contains the results of the post-treatment done inExperiment_VS_Model.ipynb
.
Validation_and_tests.ipynb
contains the code to reproduce the validation and tests on the RME correlation presented in the paper as shown in Fig.1, Fig.2, Fig.5, and Fig.6. We present the results of the focusing and field correlation estimation, and compare the latter to the intensity correlation measurement and the numerical estimation using the TM.
-
Experiment_VS_Model.ipynb
contains the main results to 1/ fit the theoretical mode (Eq.4) to the experimental data and 2/ to compare the experimental, thoery, and numerical results. Corresponds to Fig.3 and Fig.7 in the paper. -
Show_results.ipynb
contains the code to reproduce the figures of the paper without the need to recompute. Used the processed data from/Data/<FIBER>/processed_data.pkl
generated byExperiment_VS_Model.ipynb
.
RME_operator.ipynb
contains the code to reproduce the results regarding the use of RME operators (Eq. 10 and Fig.4 in the paper). We experimentally estimated the operators for the different values of the deformation, computed the SVD, and displayed the corresponding wavefront on the modulator. We then measured the RME correlation for different singular vectors used.
ShrinkData.ipynb
contains the code to generate the smaller data files used in the paper from the raw data files (too big for Github).
functions.py
contain the common functions used in the notebooks for data processing and vizualisation.
Version of the pyMMF
package used in the paper.
Visit our website on Wavefrontshaping.net for more information, codes, and tutorials.