Information ########### The directory "Optickle2-modified" contains the modified source code for Optickle (https://github.com/Optickle/Optickle), developed by Matt Evans. There are some modified files and some new ones, as follows: Modified -------- /@Optickle/tickle.m /@Optickle/tickle2.m /@Optickle/tickleAC.m New --- /examples/FieldToField/fieldToField.m /examples/FieldToField/fptest.m /examples/FieldToField/getRfFrequencyVector.m /examples/FieldToField/optFP.m Usage ##### The modified form of Optickle2 should work identically to the unmodified form in all cases. The modified version contains additional functions to calculate and return the field-to-field and optic-to-field transfer functions. This is achieved by adding an additional, "field injection" matrix to tickle() or tickle2(). The code below follows the example provided in /examples/FieldToField/: <<< BEGIN EXAMPLE % instantiate Optickle model (Fabry-Perot example) opt = optFP(); % frequency vector f = logspace(2, 5, 1000); % number of internal degrees of freedom Ndof = 2 * length(opt.vFrf) * opt.Nlink + opt.Ndrive; % get carrier frequency (assuming 1064nm laser wavelength) fCarrier = Optickle.c / 1064e-9; % get carrier field index nCarrier = find(Optickle.matchFreqPol(opt, fCarrier, opt.polS)); % get link numbers corresponding to light travelling towards and away from the interferometer from and to the REFL sink nLnkREFLIn = opt.getLinkNum('REFL', 'MREFL'); nLnkREFLOut = opt.getLinkNum('MREFL', 'REFL'); % get field evaluation point numbers for carrier, entering and exiting the interferometer at the REFL sink fldREFLCarrierIn = opt.getFieldEvalNum(nCarrier, nLnkREFLIn); fldREFLCarrierOut = opt.getFieldEvalNum(nCarrier, nLnkREFLOut); % field injection, empty matrix with correct dimensions fieldInj = zeros(Ndof, 1); % add an excitation fieldInj(fldREFLCarrierIn) = 1; % interferometer AC response [~, ~, sigAC, ~, ~, ~, tfField] = opt.tickle([], f, [], Optickle.tfPos, Optickle.tfNF, fieldInj); % tfField now contains the transfer functions from the injected signal (at REFL) to every other field in the interferometer, for every audio frequency in vector f % we can extract the transfer function corresponding to a single field by taking a column: tfREFLCarrier = tfField(fldREFLCarrierOut, :); % plot it figure; zplotlog(f, tfREFLCarrier); title('REFL in -> REFL out'); END EXAMPLE >>> Source code hosting ################### For the foreeable future, the source code containing my modifications will be available on GitHub at https://github.com/SeanDS/Optickle/tree/Optickle2. Sean Leavey March 2016