The Illumination class

Illumination is a handle class.

Properties

Public properties

name

type

default

description

lambda

double

illumination wavelength [m]

I

double

1

Illumination irradiance (power per unit area)

direct

(1,3) double

[0 0 1]

unit vector defining the direction of propagation

polar

(1,3) char

[1 0 0]

polarization unit vector

NA

double

0

Numerical aperture of the illumination

Read-only properties

name

type

dependence

description

n

double

= Medium.n

refractive index of the upper medium

nS

double

= Medium.nS

refractive index of the lower medium

e0

double

= sqrt(2*I/(n*c*eps0));

incident electric field

k0

double

= 2*pi./lambda;2*pi./lambda;

wavevector in vacuum [m-1]

tr

double

= 2*n/(n+nS);

light transmission at the interface

Constructor

Constructor

Synthax

% prototypes
Illumination()
Illumination(lambda)
Illumination(lambda,ME)
Illumination(lambda,ME,I)
Illumination(lambda,ME,I,polar)

% examples
Illumination(650e-9)
Illumination(530e-9,ME)
Illumination(530e-9,ME,1)
Illumination(580e-9,ME,I,[1 1])
Illumination(580e-9,ME,I,[1 1i 0])
Description

Illumination() creates an empty Illumination object.


Illumination(lambda) creates an Illumination object with a specific wavelength lambda. The specified value can be in nm or in m. If in nm, the value will be automatically converted into m.


Illumination(lambda, ME) creates an Illumination object with a specific wavelength lambda, and a given environment described by the Medium object ME. Specifying a Medium object is necessary only when simulating images, not really when working with experimental data.


Illumination(580e-9,ME,I,[1 1]) specifies the light intensity I and the polarization vector polar. polar can be any 3D vector. It will be normalized before being assigned to the properties obj.polar.

Illumination methods

EE0
Return the value of the incident electric field at a given position.

Synthax

% prototype
obj.EE0(pos)

Description

This method returns the value of the electric field of the illumination, in the absence of the object, at the sample plane, at the position pos (3-vector) taking into account the reflection on the interface. For instance:

>> IL = Illumination(632e-9);
>> pos = [1 1.2 1]*1e-6;
>> IL.EE0(pos)

ans =

    17.6637 +15.4410i   0.0000 + 0.0000i   0.0000 + 0.0000i
Jones
Applies a Jones matrix to an Illumination object.

Synthax

% prototype
IL.Jones(Name, Value)

% example
IL.Jones('P', 45, 'QWP',90, 'HWP',30, ...)

Description

Applies optical plates to the illumination beam, according to the Jones matrix formulation. The names can be:
'QWP': Quarter waveplate
'HWP': Half waveplate
'P': Linear polarizer
and the values are the rotation angles of the wave plates.

The order of the Name-Value arguments matters. They will be applied to the Illumination from left to right.

For instance, here is a circularly polarized light that passes through a lambda/4 wave plate and that becomes a linearly polarized light along \(x\):

>> IL = Illumination(532e-9);
>> IL.polar = [1 1i 0];
>> IL.Jones('QWP',45)
>> disp(IL.polar)

0.7071 + 0.7071i   0.0000 + 0.0000i   0.0000 + 0.0000i
rotate
Rotate the incident illumination.

Synthax

% prototype
IL.rotate(Name, Value)


% examples
IL.rotate('z',30)
IL.rotate('x',45,'y',30,'z',10)

Description

This method rotates the polar and direct vector around the specified axes, \(x\), \(y\), and/or \(z\). The values are the angles in degrees. The order of the inputs matters.

For instance, here is a \(x\)-polarized light that is rotate by 45° around \(z\):

>> IL = Illumination(532e-9);
>> IL.polar = [1 0 0];
>> IL.rotate('z',45)
>> disp(IL.polar)

0.7071    0.7071         0