Skip to content

Commit

Permalink
Minor modification to 'op_averaging.m' so that it can handle datasets…
Browse files Browse the repository at this point in the history
… with only one average without crashing
  • Loading branch information
jamienear committed Jan 6, 2016

Unverified

This user has not yet uploaded their public signing key.
1 parent b577b9a commit 65d3374
Showing 1 changed file with 55 additions and 46 deletions.
101 changes: 55 additions & 46 deletions processingTools/op_averaging.m
Original file line number Diff line number Diff line change
@@ -13,57 +13,66 @@

function out=op_averaging(in);

if in.flags.averaged || in.dims.averages==0 || in.averages<2
if in.flags.averaged || in.averages<2
error('ERROR: Averaging has already been performed! Aborting!');
end

%add the spectrum along the averages dimension;
fids=sum(in.fids,in.dims.averages);
fids=squeeze(fids);
fids=fids/in.sz(in.dims.averages); %divide by number of averages;

%re-calculate Specs using fft
specs=fftshift(ifft(fids,[],in.dims.t),in.dims.t);

%change the dims variables.
if in.dims.t>in.dims.averages
dims.t=in.dims.t-1;
else
dims.t=in.dims.t;
end
if in.dims.coils>in.dims.averages
dims.coils=in.dims.coils-1;
if in.dims.averages==0
%DO NOTHING
disp('WARNING: No averages found. Returning input without modification!');
out=in;
else
dims.coils=in.dims.coils;
end
dims.averages=0;
if in.dims.subSpecs>in.dims.averages
dims.subSpecs=in.dims.subSpecs-1;
else
dims.subSpecs=in.dims.subSpecs;
end
if in.dims.extras>in.dims.averages
dims.extras=in.dims.extras-1;
else
dims.extras=in.dims.extras;
end


%add the spectrum along the averages dimension;
fids=sum(in.fids,in.dims.averages);
fids=squeeze(fids);
fids=fids/in.sz(in.dims.averages); %divide by number of averages;

%re-calculate Specs using fft
specs=fftshift(ifft(fids,[],in.dims.t),in.dims.t);

%change the dims variables.
if in.dims.t>in.dims.averages
dims.t=in.dims.t-1;
else
dims.t=in.dims.t;
end
if in.dims.coils>in.dims.averages
dims.coils=in.dims.coils-1;
else
dims.coils=in.dims.coils;
end
dims.averages=0;
if in.dims.subSpecs>in.dims.averages
dims.subSpecs=in.dims.subSpecs-1;
else
dims.subSpecs=in.dims.subSpecs;
end
if in.dims.extras>in.dims.averages
dims.extras=in.dims.extras-1;
else
dims.extras=in.dims.extras;
end


%re-calculate the sz variable
sz=size(fids);


%FILLING IN DATA STRUCTURE
out=in;
out.fids=fids;
out.specs=specs;
out.sz=sz;
out.dims=dims;
out.averages=1;

%FILLING IN THE FLAGS
out.flags=in.flags;
out.flags.writtentostruct=1;
out.flags.averaged=1;

%re-calculate the sz variable
sz=size(fids);


%FILLING IN DATA STRUCTURE
out=in;
out.fids=fids;
out.specs=specs;
out.sz=sz;
out.dims=dims;
out.averages=1;
end

%FILLING IN THE FLAGS
out.flags=in.flags;
out.flags.writtentostruct=1;
out.flags.averaged=1;


0 comments on commit 65d3374

Please sign in to comment.