67 lines
2.7 KiB
Matlab
67 lines
2.7 KiB
Matlab
function [Data,params] = load_bruker(path)
|
||
%LOAD_MATLAB imports TR-EPR data recorded with Bruker's xEPR
|
||
% Usage: ['data_as_double','struct_with_parameters'] = load_bruker('C:/full/path/to/file.mat')
|
||
%
|
||
% Imports data recorded by xEPR, where x axis is time and y axis is
|
||
% magnetic field.
|
||
% PATH can be either pointing to .DSC or .DTA, but both need to be there
|
||
% and in the same folder. PATH must also contain forwardslashes only.
|
||
% The params struct contains metadata of the measurement and is displayed
|
||
% in the command window when calling the function.
|
||
%
|
||
% Note that this funtion is dependent on easyspin.
|
||
%
|
||
% Example for params output:
|
||
% params =
|
||
%
|
||
% struct with fields: Units
|
||
%
|
||
% Field_Center: 3500 G
|
||
% Field_Sweep: 2700 G
|
||
% Field_Step: 5 G
|
||
% Accumulations: 100 -
|
||
% laser_shotreprate: 20 -
|
||
% Field_Start: 2150 G
|
||
% Field_End: 4850 G
|
||
% Field_Vector: [1×540 double] G
|
||
% mwFreq: 9.6845 GHz
|
||
% mwPower: 0.2000 W
|
||
% QValue: 22800 -
|
||
% mwAtten: 30 dB
|
||
% mwFreqs: [681×1 double] GHz
|
||
% TimeBase: [1×10001 double] s
|
||
% Path: '/some/path/' -
|
||
% Name: 'example_data' -
|
||
|
||
%correct \ for /
|
||
corrpath = replace(path,"\","/");
|
||
|
||
%load Bruker data with help of easyspin
|
||
[bruker_axes,Data,bruker_params] = eprload(corrpath);
|
||
|
||
%assign metadata to custom params struct
|
||
params.Field_Center = bruker_params.YMIN + 0.5*bruker_params.YWID;
|
||
params.Field_Sweep = bruker_params.YWID;
|
||
params.Field_Step = bruker_params.YWID / (bruker_params.YPTS-1);
|
||
params.Accumulations = bruker_params.AVGS;
|
||
params.laser_shotreprate = "NOT RECORDED";
|
||
params.Field_Start = bruker_params.YMIN;
|
||
params.Field_End = bruker_params.YMIN + bruker_params.YWID;
|
||
params.Field_Vector = cell2mat(bruker_axes(1,2));
|
||
params.mwFreq = bruker_params.MWFQ / 1e9;
|
||
params.mwPower = bruker_params.MWPW * 1e3;
|
||
params.QValue = "NOT RECORDED";
|
||
params.mwAtten = str2double(extractBefore(string(bruker_params.PowerAtten),' '));
|
||
params.mwFreqs = "NOT RECORDED";
|
||
params.TimeBase = (bruker_params.XMIN:(bruker_params.XWID/bruker_params.XPTS):(bruker_params.XMIN+bruker_params.XWID)) .* 1e-9;
|
||
|
||
%get filename for further documentation and exporting figures
|
||
[datapath,dataname,~] = fileparts(corrpath);
|
||
params.Path = datapath;
|
||
params.Name = dataname;
|
||
|
||
%echo what information is contained in the structure called 'params'
|
||
params
|
||
end
|
||
|