Created by sebastien.popoff on 13/06/2013

Tutorials Digital holography

Phase Measurement: Introduction


Most exciting phenomenons that occur in complex media arises from interference effects. Controlling the phase of an incident field with a spatial light modulator is what made the field of wavefront shaping possible. Nevertheless, the measurement of the phase is a crucial step for many applications. In particular, recording both the amplitude and the phase for a set of input wavefront is necessary to record the transmission matrix of a linear medium. The knowledge of the transmission matrix of a scattering medium allows, for example, to use it as a lens [1], a controllable phase plate [2,3] or polarizer [4,5].

In such experiments, the phase of the output optical field for different input illuminations has to be recorded with the same phase reference. For this reason, one uses interferometric methods to measure the complex field; Phase Shifting Digital Holography (tutorial to come) or Off-Axis Holography (tutorial to come). In both cases, the unknown optical field interferes with a reference wavefront. The intensity of the interference is measured using a CCD to reconstruct the phase image. Phase Shifting Digital Holography requires 4 different measurements to obtain one phase image, leading to longer acquisition times and making the method more sensitive to interferometric instabilities. Off-Axis Holography allows us to measure the complex field in one shot but at the cost of a loss of resolution.

See full post
Created by sebastien.popoff on 04/05/2013

Tutorials Spatial Light Modulators

How to characterize and calibrate a phase-only SLM

For most applications in complex media, spatial light modulators are used for their ability to control the phase of a laser beam. Whereas deformable mirrors are insensitive to the input polarization, liquid crystal based SLMs need to work with a given input polarization or sometimes a precise combination of input and output polarizations. It is then necessary for LC SLMs to carefully characterize the modulation to find the setup conditions where amplitude variations are minimal and for which the phase range is at least 2π. In any case, for a given wavelength, it is necessary to know the relation between the value given to a pixel on the SLM and the relative phase shift associated. I present here a typical way to characterize the complex modulation of an SLM.

See full post
Created by sebastien.popoff on 18/04/2013

Tutorials Spatial Light Modulators

How to control an SLM with Matlab/Octave using Psychtoolbox

Most spatial light modulators (SLMs) available are controllable like a normal computer monitor and are plugged on a computer with a DVI cable.  Some SLMs are now sold with a dedicated card or can be controlled via USB. If you possess such a device, this tutorial is not for you. The first requirement to control the SLM with a DVI/HDMI cable is to have a graphic card with two monitor outputs, one for your screen, one for your SLM. Once plugged to the computer, the SLM is then handled by the operating system as a secondary monitor. No software is required to display an image on the SLM. For that reason, the constructor does not provide any code to use the SLM with Matlab/Octave or other software. One solution to send images with Matlab is to display an array in a figure that fits the size of the secondary monitor. Nevertheless, this technique presents some drawbacks due to the fact that you do not control directly the pixels of the SLM. For instance, the border of the figure, which may be different depending on the operating system, has to be taken into account. More importantly, the scaling of the figure does not guarantee that one pixel of the image displayed corresponds to one pixel of the SLM. For application where a very good resolution is needed, a blurred image on the SLM can be detrimental.

I present how to control directly the pixels of the SLM using Psychtoolbox, a free toolbox for Matlab and Octave that uses GPU acceleration. I show here a tutorial for Matlab, but the toolbox also exists for Octave and seems to work a similar way.

See full post