I was testing to edit a spin system with a selectively inverting RF pulse in gradient echo imaging sequence. My initial approach was by adding the shaped_pulse_af function to the grad_echo.m, then specify the targeted editing frequency and other parameters outside the sequence.
I ran into a problem starting with water only system (no chemical shift, no j-coupling, etc), where I fixed TE and varied pulse lengths of the editing pulse (Gaussian shaped, center frequencies far away from water peak). In this case, my assumption was that readout signal would occur at either real or imaginary axis depending on the direction of excitation pulse, with slight variation due to partial inversion of water tail. However, the readout signals appeared to gyrate in complex plane and the frequencies of 'gyrating' matched the editing frequencies. I am not sure what was causing this.
Please find the code below. Any comments would be greatly appreciated.
Thank you,
Shujun
Code: Select all
% Hard 90-degree pulse
rho=step(spin_system,-Hy,parameters.rho0,pi/2);
% free evolution
rho=evolution(spin_system,L,[],rho,1/parameters.evol_rate,parameters.n_step-...
parameters.g_step_dur*parameters.g_n_steps*parameters.evol_rate,'final');
% Soft 180 on user-specified frequency
rho=shaped_pulse_af(spin_system,L,Hx,Hy,rho,parameters.rf_frq_list{1}-parameters.offset,...
parameters.rf_amp_list{1},parameters.rf_dur_list,...
parameters.rf_phi,parameters.max_rank,'expv');
% free evolution
rho=evolution(spin_system,L,[],rho,1/parameters.evol_rate,parameters.n_step-...
2*parameters.g_step_dur*parameters.g_n_steps*parameters.evol_rate,'final');
% Evolution under the X gradient
rho=evolution(spin_system,L-parameters.g_amp*G{1},[],rho,parameters.g_step_dur,...
parameters.g_n_steps,'final');
% Detection under the X gradient of opposite sign
fid=evolution(spin_system,L+parameters.g_amp*G{1},parameters.coil,rho,...
parameters.g_step_dur,...
2*parameters.g_n_steps,'observable');