Member
Joined:
Posts: 2

I'm attempting to reproduce the work of Popoff et al. (primarily "Controlling light through optical disordered media: transmission matrix approach" New Journal of Physics 13 (2011) 123021). Using roughly the same setup as depicted in Figure 1 of that paper (i.e. not using a reference arm and using the SLM in phase only modulation mode), I have measured the observed transmission matrix (TM) and then determined the actual TM via singular value decomposition.

However, I am now trying to use that TM to engineer a particular field at my detector (e.g. a focus) or sense (e.g. detect a pattern portrayed on the SLM) but am running into some trouble. My primary confusion seems to come from how to use this TM. Using Eq. 16 in said paper, I can calculate the the input field needed to yield a desired output field. The TM is a complex matrix, the field is complex and when I do this calculation, I yield another complex matrix (after reshaping). Since, I'm using an SLM to engineer the phase, then I extract the associated phase profile and display that on the SLM.

Unfortunately, this does not seem to yield the desired result at the detector plane. Any suggestions or tips would be greatly appreciated.

Thanks,
Chris.

Administrator
Joined:
Posts: 73

Hi Chris,

First of all, what do you mean by " determined the actual TM via singular value decomposition"?

In the paper you cite, the singular value decomposition performed was not done in the context of phase conjugation.
It was a test to see if we obtain the distribution one expected.
In the same idea, the filtering to remove the effect of the non-flat reference was here to clear its effect on the distribution, but is not necessary, nor wanted, for a focusing experiment.

The equation 16 is indeed what you want to perform phase conjugation to focus light.
K is the the transmission matrix you measured (no singular value decomposition, no filtering).
You then take the transpose conjugate (K^\dag), both operations are important, and multiply by what is your target.
If you want to focus light on one small spot, your target is a one at a given pixel and zeros everywhere else.
This operation is equivalent to taking one line of K^\dag.

Then, because you only have a phase modulation, you only take the phase of this vector and display it on the SLM.
The efficiency (signal to noise ratio at the focal point) with phase only modulation is ~78% of what you would have with phase and amplitude modulation (cf eq. 29).

If it does not work, it can be due to the way you measured the matrix or more likely to a small mistake on the treatment of the matrix i.e. a transpose operation missing, en error displaying the phase mask on the wrong pixels, etc...

As a simple check, you can try to measure the transmission matrix without the scattering medium (free space) and see if you can find the phase mask (some kind of lens shape) that focuses light on a tight spot of your camera.

Another trick is to use a different number of pixels on the SLM and on the camera. This way, not having a square matrix, it is easier to check if your matrix is not transposed compared to what you should have.

Good luck,

Sebastien

Member
Joined:
Posts: 2

Hello Sebastien,

Thank you so much for clarifying the creation of the transmission matrix. That explains a lot about why I was having some difficulty. I've followed your suggestions and attempting to recreate the TM for focusing, without a scattering medium present, does yield a focus on the detector (though the SLM profile doesn't look exactly like a quadratic lens profile). However, when I incorporate the scattering medium, I'm not seeing much of a change between the initial image and the "focused" image. Do you have any intuition as to why this might be the case?

Thanks,
Chris.

Administrator
Joined:
Posts: 73

Hi Chris,

There is many things that can go wrong and it is difficult to guess what.
Considering the tests you did, it is more likely to be something in the code.

In such a situation, as in a standard programming issue, the ultimate solution for debugging is to start the code from scratch again...

Ok, one last thing I can suggest:
Try to do the sequential algorithm to focus light through the scattering medium.
See more here : https://www.wavefrontshaping.org/post/id/30

Basically, when you do so, the optimal phase mask that to focuses light onto one CCD pixel corresponds to the phase conjugate of the line of the TM that corresponds to that point (plus any random constant phase).

You can try to measure the TM and see if the phase of the line at that point corresponds (at least approximately) to the phase conjugation of the one you obtain from the sequential algorithm focusing.

You should see if there is a conjugation that is wrong, or it corresponds to a column instead of a line (meaning a transpose operation is missing) etc...

Besides that, doing the code again is the only thing that worked when I was in such a situation.

Best,

Sebastien

Member
Joined:
Posts: 1

Hello,

I'm trying to reproduce the same experiment and I'm having difficulties as well.
I acquired the TM using equation (7) in the article, is that the way to do it?
also, I'm displaying Hadamard base vectors on the SLM, did you do the same?
and last, after getting the complex TM, do I need to convert the desired output vector to Hadamard base and then multiply it by TM?

Many Thanks,
Sara

Administrator
Joined:
Posts: 73

Hi Sara,

Yes, using equation 7 is the way to go.

As explain in the paper, we did send Hadamard vectors on the SLM (with +1/-1 pixels corresponding to 0/pi phases).

The matrix is measured in the Hadamard basis, meaning that the first output complex field measured corresponds to the first Hadamard vector in input, not to the first pixel of the SLM.
Of course you need to perform a change the basis to obtain the TM in the pixel basis (this is the matrix you want).
However, the output basis is always the pixels basis of the CCD as you directly measured the field on each pixel, no conversion need for the output basis.

Once recovered the matrix, you do not need to convert any input or output pattern in the Hadamard basis.
At this point you should have the matrix in the pixel basis (linking one pixel of the SLM to one pixel of the CCD) the Hadamard basis basis is just for the measurement.

Best,

Sebastien

Member
Joined:
Posts: 12

Hi
I am a beginner in Matlab. I would like to simulate a transmission matrix in matlab. Can I get some papers/resources from which I can simulate it from the perspective of Matlab. Could anyone please help me.

Administrator
Joined:
Posts: 73

Hi Sanjiv,

That depends on what kind of transmission matrix you want to simulate and what for.

The easiest matrix is a Gaussian complex random matrix:

T = randn(n,m)+j*randn(n,m)

This matrix would not conserve the energy nor it will make appear the effect of mesoscopic correlations.
However, it is valid in most cases: if you consider a subpart of a full transmission matrix (which is usually the case when only one polarization is controlled/measured and with a limited numerical aperture) and when the discretization of the field is such that the elements correspond to different speckle grains (and thus are considered uncorrelated).

If you want to simulate the full transmission matrix of a slab or a disordered wire, then the singular values of the matrix has to follow the bimodal distribution. You would then have to generate a diagonal matrix with values that follow the distribution and then multiply on both side by unitary random matrices.

Again, I cannot go in much details if I do not know more about what you want to do.

Member
Joined:
Posts: 12

Thanks Sebastien.

I succeeded in making a transmission matrix by
T=rand(m,n)+1i*rand(m,n);
and performing SVD and normalization.

However I am interested in modeling a scattering medium which is combination of two operator first operator is a Random phase scattering matrix followed by a free space propagation. This is one layer and there are N such layers. Can you suggest me how can I do it in Matlab ?

Member
Joined:
Posts: 3

The matrix is measured in the Hadamard basis, meaning that the first output complex field measured corresponds to the first Hadamard vector in input, not to the first pixel of the SLM.
Of course you need to perform a change the basis to obtain the TM in the pixel basis (this is the matrix you want).

[/quote]

Hi, Sebastien.

May I know how to exactly change the basis??