Member
Joined:
Posts: 7

Hello,
we want to reproduce the work in the paper:
https://ieeexplore.ieee.org/document/7951483
All the codes as well as training and test data is given with the paper. The training and test data is given in form of matlab matrices.Do we have to generate our own training and test data to use this code? Can anyone guide, how can we generate calibration data( set of inputs at SLM) and measure multiple outputs on ccd to form matlab matrices like X-H and Y_train and test? We are using Holoeye's Pluto-2 SLM with softwares like pattern generator, as well as SLM display SDK for matlab, labview and python.

Thanks and best regards.

Administrator
Joined:
Posts: 73

Hi Natasha,

From what is said in the paper, for this statistical machine learning (Bayesian) approach, you do not have a training and a test data set.
Your X matrix corresponds to the set of input masks on your SLM (each column represents one input mask) and the Y matrix represents the corresponding output intensity patterns.
After choosing some parameters (like the number and the type of "randomness" of input masks, the number of macropixels on your SLM and CCD, that will set the size of the transmission matrix you want to reconstruct), you send the input masks on the SLM and measure the corresponding output intensity patterns. From these, you construct the X and Y matrices that you feed to the algorithm to retrieve at the output the transmission matrix.

Member
Joined:
Posts: 7

Thanks a lot for the explanation. I am trying to work it out.

Best Regards.

Member
Joined:
Posts: 7

I have applied a random Gausssian pattern on SLM using phase modulation of 2pi. But the input data given along the above mentioned paper i.e. X_train has values -255 and 255 only. They mentioned in the paper that they have used modulation of 0 and pi only and that the elements of their matrix follow iid subgaussian distribution {-1 ,1}. Can you please guide how to transform the data into -255 and 255 form. I am using holoeye Matlab SDK and OTSLM toolbox.
Also the size of X_train is 12.40.40 rows and 40.40 columns. It means we have to send 12.40.40 random patterns on SLM area of 40.40, right?(the dot means multiplication)
Thanks and Regards.

Administrator
Joined:
Posts: 73

Can you please guide how to transform the data into -255 and 255 form.

This is not as simple, only you can know how to deal with your data, I can only give you advises. If you need more, I would suggest discussing with your adviser and contacting the authors of this article (for the details only concerning the algorithm), they are actually very nice and helpful.

They mentioned in the paper that they have used modulation of 0 and pi only and that the elements of their matrix follow iid subgaussian distribution {-1 ,1}.

I went through the paper very quickly and this is not totally accurate, this was mentioned in the simulation part. However, in
the experiment, as shown if Fig. 4, they tried binary phase and binary amplitude inputs.

Stupid question, have you tried the algorithm with your data, regardless of the [-255,+255] consideration ?

Also the size of X_train is 12.40.40 rows and 40.40 columns. It means we have to send 12.40.40 random patterns on SLM area of 40.40, right?

I would guess so. Somewhere in the paper they specify the factor by which they oversimple, i.e. how much more inputs they used compare to the number of elements of the matrix. Here it would mean an factor of 12, which sounds about the correct order of magnitude. I remember a student who tried this algorithm finding a factor of about 7 did the trick.

Member
Joined:
Posts: 7

Thankyou Sebastian for detailed answer.
I have converted the data into -255, 255. I have used OTSLM tool box for matlab . I have converted the data first into logical form and then casted the values to 255 and -255.

Member
Joined:
Posts: 7

sebastien.popoff wrote:

Can you please guide how to transform the data into -255 and 255 form.

This is not as simple, only you can know how to deal with your data, I can only give you advises. If you need more, I would suggest discussing with your adviser and contacting the authors of this article (for the details only concerning the algorithm), they are actually very nice and helpful.

They mentioned in the paper that they have used modulation of 0 and pi only and that the elements of their matrix follow iid subgaussian distribution {-1 ,1}.

I went through the paper very quickly and this is not totally accurate, this was mentioned in the simulation part. However, in
the experiment, as shown if Fig. 4, they tried binary phase and binary amplitude inputs.

Stupid question, have you tried the algorithm with your data, regardless of the [-255,+255] consideration ?

Also the size of X_train is 12.40.40 rows and 40.40 columns. It means we have to send 12.40.40 random patterns on SLM area of 40.40, right?

I would guess so. Somewhere in the paper they specify the factor by which they oversimple, i.e. how much more inputs they used compare to the number of elements of the matrix. Here it would mean an factor of 12, which sounds about the correct order of magnitude. I remember a student who tried this algorithm finding a factor of about 7 did the trick.

Member
Joined:
Posts: 7

Hello, do you know anyone who has replicated this work and can help me solving some confusions, I have contacted the authors but they are not replying.

Thanks and Regards.

Administrator
Joined:
Posts: 73

Hi Natasha,