Professional Documents
Culture Documents
Simple SENSE Reconstruction
Simple SENSE Reconstruction
Simple SENSE Reconstruction
load sense_recon_easy; %%% this loads the k-space data (2-shot epi; 4
coils)
img1c = fftshift(fftshift(fft(fft(fftshift(fftshift(k1,1),2),[],1),
[],2),1),2); %% FT recon of full-FOV images
img1 = abs(img1c); % magnitude image
image1 =
fftshift(fftshift(fft(fft(fftshift(fftshift(k1(:,1:2:end,:),1),2),
[],1),[],2),1),2); %% FT recon of reduced-FOV images
refimg1 = sqrt(mean(img1c.*conj(img1c),3)); %%% reference image:
combined from 4 coils
mask1 = refimg1 > 0.1.*max(refimg1(:)); %% a mask
smap1 = img1./repmat(refimg1,[1 1 4]); %% sensitivity maps:
magnitude only
smap1c = img1c./repmat(refimg1,[1 1 4]); %% sensitivity maps: complex
values
%%%%%%
% sense reconstruction : results are "senseimg_ex"
%%%%%%
mask = mask1;
refimg = refimg1;
inputimage = (image1);
senseimg = zeros(64,64);
rcondmap = zeros(64,64);
senseimg_ex = zeros(64,64);
for x = 1:64
for y = 1:32
y1=y+16;
if (y<17), y2=y+48; else, y2=y-16; end;
a = transpose([inputimage(x,y,1) inputimage(x,y,2)
inputimage(x,y,3) inputimage(x,y,4)]);
S=[ smap(x,y1,1) smap(x,y2,1);
smap(x,y1,2) smap(x,y2,2);
smap(x,y1,3) smap(x,y2,3);
smap(x,y1,4) smap(x,y2,4)];
v = S\a; %%% matrix inversion
rcondmap(x,[y1 y2]) = repmat(rcond(S'*S),[1 2]);
senseimg(x,[y1 y2])=[v(1) v(2)];
if (mask(x,y1) & mask(x,y2)),
senseimg_ex(x,[y1 y2]) = [v(1) v(2)];
elseif (mask(x,y1))
S = S(:,1);
senseimg_ex(x,[y1 y2]) = [S\a 0];
elseif (mask(x,y2))
S = S(:,2);
senseimg_ex(x,[y1 y2]) = [0 S\a];
else
senseimg_ex(x,[y1 y2])=0;
end
end
end
imagesc(abs([refimg1/2 senseimg_ex])); axis equal off;
title('left: original data right: sense unfolded data');