The CrossGrating class

CrossGrating is a handle class.

A CrossGrating object represents the QLSI grating used in the system.

Properties

Read-only properties

name

type

default

description

name

char

‘undefined’

Reference of the grating

Gamma

double

Pitch of the grating [m]

depth

double

Etching depth of the \(0-\pi\) pattern [m]

RI

double

1.46

Refractive index of the material

lambda0

double

Central wavelength the grating is made for [m]

Constructor

Constructor

Synthax

% prototypes
obj = CrossGrating();
obj = CrossGrating(name);
obj = CrossGrating(Gamma=val1,depth=val2);
obj = CrossGrating(Gamma=val1,lambda0=val2);

% examples
obj = CrossGrating();
obj = CrossGrating('F2');
obj = CrossGrating('Gamma',39e-6,'depth',554e-9);
obj = CrossGrating('Gamma',39e-6,'lambda0',600e-9);
Description

obj = CrossGrating() creates an empty CrossGrating object.


obj = CrossGrating(name) creates a CrossGrating object, where name is a char that defines the grating. The grating names must correspond to the names of the .json files contained in the folder spec/CG. For instance, obj = Camera('F2');.


obj = CrossGrating(Gamma=val1,depth=val2); creates a CrossGrating object with a pitch specified by Gamma and the etching depth by 'depth'.


obj = CrossGrating(Gamma=val1,depth=val2); creates a CrossGrating object with a pitch specified by Gamma and the nominal wavelength 'lambda0'. Either the depth or lambda0 can be specified. The two are linked via the relation lambda0 = 2*depth*(RI-1).

CGcamera spec files

The folder spec/CG contains .json files associated to each predefined cross-gratings. Here is for instance a copy of the F2.json file:

{"class":"CrossGrating",
"Gamma": 39e-6,
"name": "F2",
"depth": 554e-9,
"RI": 1.46,
"lambda0": 509.68e-9
}

All these parameters are respectively the class, the pitch, the reference, the etching depth, the refractive index of the grating glass, and the nominal wavelength.

If other QLSI gratings are being used, new custom files can be made, following this pattern. Any new file can be saved in the spec/CG folder, or in any other folder known by Matlab. However, in order to simply keep track of the updated versions of PhaseLAB via Github, I suggest to store any custom-made file to a separate folder, out of the PhaseLAB package, and include this directory in the Matlab paths. Also, feel free to contact me to ask for any file addition/modification in the public Github version of PhaseLAB that would suit your studies.