The Illumination class
Illumination is a handle class.
Properties
name |
type |
default |
description |
|---|---|---|---|
|
double |
illumination wavelength [m] |
|
|
double |
1 |
Illumination irradiance (power per unit area) |
|
(1,3) double |
[0 0 1] |
unit vector defining the direction of propagation |
|
(1,3) char |
[1 0 0] |
polarization unit vector |
|
double |
0 |
Numerical aperture of the illumination |
name |
type |
dependence |
description |
|---|---|---|---|
|
double |
|
refractive index of the upper medium |
|
double |
|
refractive index of the lower medium |
|
double |
|
incident electric field |
|
double |
|
wavevector in vacuum [m-1] |
|
double |
|
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])
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
'QWP': Quarter waveplate'HWP': Half waveplate'P': Linear polarizerThe 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