Automatic coil summation
Arbitrary sector widths
The sector width parameter can now be arbitrarily chosen in such manner that the total grid dimension (image dim * oversampling factor) does not have to be an integer multiple of the sector width, e.g.:
imgDim = [256,256,240];
sw = 8;
osf = 1.125;
% imgDim * osf ./ sw = [36, 36, 33.75]
...
FT = gpuNUFFT(k',w,osf,kw,sw,imgDim); % still works
...
Automatic coil summation
If the gpuNUFFT operator is initialized with coil sensitivities following steps are performed automatically on the GPU:
%without sens data
FT = gpuNUFFT(k',w,osf,wg,sw,[N,N,nSl]);
%with sens data
FT = gpuNUFFT(k',w,osf,wg,sw,[N,N,nSl],sens);
Adjoint operation: sum over coils as final step
% the block
for ii = 1:nc
y = y + conj(sens(:,:,:,ii) .* FH(data(:,ii));
end
% can be replaced by
y = FH(data);
Forward operation: loop over coils
% the block
img = repmat(img,[1,1,1,nCh]);
for ii = 1:nc
data(:,ii) = F( sens(:,:,:,ii) .* img(:,:,:,ii) );
end
% can be replaced by
y = F(img);