Nutation simulation with spidyan
Posted: Wed Oct 16, 2024 12:34 pm
I am trying to simulate a nutation experiment using spidyan. The sequence is: nutation pulse - decoherence delay - Hahn echo detection, i.e.:
p_nut - Tdec - π/2 - τ - π - τ - echo. I am using a +/-100ns detection window.
I have come up with the code below, partially based on this example and other examples:
Code: Select all
clear all; close all;
% Simulation of a Nutation Experiment with Hahn Echo detection
% Spin system
Sys.S = 1/2;
Sys.g = [2.0023];
Sys.T1 = 40; % µs
Sys.T2 = 15; % µs
% Nutation pulse
nutPulse.Type = 'rectangular';
nutPulse.tp = 0.001; % Initial value
nutPulse.Frequency = 9.5;
nutPulse.Amplitude = 10;
% Detection block
EchoPulse90.Type = 'rectangular';
EchoPulse90.tp = 0.016; % 16 ns for the pi/2 pulse
EchoPulse90.Frequency = 9.5;
EchoPulse90.Amplitude = 10;
EchoPulse180.Type = 'rectangular';
EchoPulse180.tp = 0.032; % 32 ns for the pi pulse
EchoPulse180.Frequency = 9.5;
EchoPulse180.Amplitude = 10;
% Interpulse delays (μs)
tau = 0.200;
Tdec = 100; % Decoherence delay
% Experimental setup
Exp.Field = 340; % Magnetic field in mT (340 mT is common for X-band)
Exp.mwFreq = 9.5;
% Sequence: Nutation pulse -> Decoherence delay -> Hahn Echo block
Exp.Sequence = {nutPulse Tdec EchoPulse90 tau EchoPulse180 tau};
Exp.DetWindow = [-0.1 0.1]; % Detection window in μs
Exp.nPoints = 256;
Exp.Dim1 = {'nutPulse.tp' 0.05}; % step pulse lengths, in µs
% Spidyan options
Opt.GridSize = 10; % Grid size for orientation averaging
Opt.Verbosity = 1; % Verbosity level for progress report
Opt.Relaxation = true;
% Opt.Relaxation = [0 1 0 1 0 1 0];
% Simulate with spidyan
% Default syntax
spidyan(Sys, Exp, Opt);
% Pass to arrays & plot
[t, signal] = spidyan(Sys, Exp, Opt);
figure(10);
plot(t, real(signal));
xlabel('t (μs)');
ylabel('Echo Ampl.(a.u.)');
title('Nutation with Hahn Echo Detection');
I have a few questions:
- The time axis always seems to start from t = Tdec+349 ns, the duration seems always to be equal to tau and the time vector seems always to be 50001. The
Exp.nPoints
andExp.Dim1 = {'nutPulse.tp' 0.05}
instructions seem to be neglected. I suppose some syntax error in my code? - The nutation frequency seems to widely vary as we change the magnetic field with respect to the resonance position. Would that be physically expected for the nutation experiment? (e.g. as it is for an FID when the field is moving to and from the position corresponding to the Larmor frequency position). I suppose that this is a something that will the excitation width?
- I picked up the
Exp.Amplitude
parameter from the above example, though the ones documented areExp.ExciteWidth
arepulse.Frequency = [-120 120]
. Are all equivalent? Is the latter only for chirp pulses?
Thanks in advance!