The CrossGrating class
CrossGrating is a handle class.
A CrossGrating object represents the QLSI grating used in the system.
Properties
name |
type |
default |
description |
|---|---|---|---|
|
char |
‘undefined’ |
Reference of the grating |
|
double |
Pitch of the grating [m] |
|
|
double |
Etching depth of the \(0-\pi\) pattern [m] |
|
|
double |
1.46 |
Refractive index of the material |
|
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);
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.