DPG demo version from 2019-08-20
[dpg] / runthis2.m
1 % an example of DPG w/o PLACE calibration data
2 addpath('data');
3 addpath('tensor');
4
5 acs2 = readnd('dpg_acs2.nd');           % RO- lead data
6 y2 = readnd('y_acs2.nd');               % ghost correction coefficients
7
8 % ghost-corrected ACS data
9 c2_gc = permute( phzapply( permute(acs2,[2 1 3]), y2),[2 1 3]);
10
11 % generate the GRAPPA coefficients 
12 [~,~,Ng2]=grappa(size(c2_gc),c2_gc,vec(1:30),'2x5',2);
13
14 % synthesize the RO+ and RO- source data from the ACS data using GRAPPA
15 acs2n = grappa(size(c2_gc),acs2(:,1:2:end,:),vec(1:2:30),'2x5',2,Ng2);
16 acs2p = grappa(size(c2_gc),acs2(:,2:2:end,:),vec(2:2:30),'2x5',2,Ng2);
17 acs2c = ifi(pos_neg_add( fif(acs2n),fif(acs2p) ))/2;
18
19 % calibrate DPG
20 kin{1} = permute(acs2p,[2 1 3]);        % RO+ in the first cell
21 kin{2} = permute(acs2n,[2 1 3]);        % RO- in the second cell
22 kin{3} = permute(acs2c,[2 1 3]);
23 [~,~,N2]=dpg_cal( size(kin{3}), kin, 1:size(kin{3},1), 'kernel','2x5','dks',2);
24
25
26 % reconstruct the accelerated data using DPG
27 k = readnd('dpg_k.nd');
28
29 Fin{1} = zeros([60 96 32]); Fin{1}(2:4:end,:,:) = permute(k(:,1:4:end,:),[2 1 3]);
30 Fin{2} = zeros([60 96 32]); Fin{2}(4:4:end,:,:) = permute(k(:,3:4:end,:),[2 1 3]);
31 Fdpg2 = dpg_recon( Fin, N2, 2, 2);
32