Difference between revisions of "Shaped pulse af.m"

From Spinach Documentation Wiki
Jump to: navigation, search
(Sync syntax/arguments/outputs with current Spinach source)
(Update function See also links and function index membership)
 
(6 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
{{DISPLAYTITLE:shaped_pulse_af.m}} __NOTOC__
 
{{DISPLAYTITLE:shaped_pulse_af.m}} __NOTOC__
−
 
 
Shaped pulse in amplitude-frequency coordinates using Fokker-Planck formalism (Eqn. 33 in http://dx.doi.org/10.1016/j.jmr.2016.07.005).
 
Shaped pulse in amplitude-frequency coordinates using Fokker-Planck formalism (Eqn. 33 in http://dx.doi.org/10.1016/j.jmr.2016.07.005).
  
 
==Syntax==
 
==Syntax==
  
−
[rho,traj,P]=shaped_pulse_af(spin_system,L0,Lx,Ly,rho,rf_frq_list,rf_amp_list,rf_dur_list,rf_phi,max_rank,method)
 
  
−
==Arguments==
+
    [rho,traj,P]=shaped_pulse_af(spin_system,L0,Lx,Ly,rho,rf_frq_list,...
 +
                                          rf_amp_list,rf_dur_list,rf_phi,...
 +
                                          max_rank,method)
 +
 
 +
==Parameters==
  
−
L0          - drift Liouvillian that continues
+
        L0          - drift Liouvillian that continues
 
                       running in the background
 
                       running in the background
 
   
 
   
Line 41: Line 43:
 
==Outputs==
 
==Outputs==
  
−
rho        - final state vector or a stack thereof
 
−
 
−
        traj        - system trajectory as a [1 x (nsteps+1)]
 
−
                      cell array, the first point is the ini-
 
−
                      tial condition
 
−
 
−
        P          - effective pulse propagator (expensive),
 
−
                      only available for the 'expm' method
 
  
−
  Note: the pulse is assumed to be piecewise-constant and should be
+
rho - final state vector, or a stack thereof
−
      supplied with sufficiently fine time discretisation to pro-
 
−
      perly reproduce the waveform.
 
  
−
Note: make it dead certain that your freqiency has the correct
+
traj - system trajectory as a [1 x (nsteps+1)] cell array; the first
−
      sign; wrong sign means that the pulse hits very far away
+
       point is the initial condition
−
       from your intended location. This is the principal source
 
−
      of bugs when using this function.
 
  
−
ilya.kuprov@weizmann.ac.il
+
P    - effective pulse propagator, expensive, and only available for
 +
      the 'expm' method
  
 
==Examples==
 
==Examples==
−
 
 
An example of a chirped inversion pulse pulse applied to a system with 31 J-coupled protons (examples/nmr_liquids/shaped_pulse_3.m):
 
An example of a chirped inversion pulse pulse applied to a system with 31 J-coupled protons (examples/nmr_liquids/shaped_pulse_3.m):
  
Line 71: Line 61:
 
==Notes==
 
==Notes==
  
−
Of the three propagation methods, 'expv' is recommended because it runs Krylov propagation that avoids explicit matrix exponentiation. The 'expm' option forces the rather inefficient sparse matrix exponentiation path and should only be used when the effective propagator is required. In very anomalous cases (long pulses, large state vector stacks, very large state spaces), the 'evolution' option might become necessary.
+
The pulse is assumed to be piecewise-constant and should be supplied with sufficiently fine time discretisation to reproduce the waveform properly. Make certain that the frequency has the correct sign; a wrong sign makes the pulse hit far away from the intended location.
  
 
==See also==
 
==See also==
−
 
+
[[shaped_pulse_xy.m]], [[read_wave.m]], [[vg_pulse.m]], [[pulse_shape.m]], [[chirp_pulse.m]], [[bruker_write.m]], [[cartesian2polar.m]], [[grad_pulse.m]], [[grad_sandw.m]], [[pmlg5.m]], [[polar2cartesian.m]], [[restrans.m]], [[rseq_compiler.m]], [[rsequence.m]], [[sawtooth.m]], [[sech_pulse.m]], [[spinal.m]], [[triwave.m]], [[wave_basis.m]], [[Kernel_functions]]
−
[[shaped_pulse_xy.m]], [[read_wave.m]], [[vg_pulse.m]], [[pulse_shape.m]], [[chirp_pulse.m]]
 
−
 
 
−
[[Kernel_functions#Shaped_pulses_and_gradients|Shaped pulses and gradients]]
 
−
 
 
  
 
''Version 2.2, authors: [[Ilya Kuprov]]''
 
''Version 2.2, authors: [[Ilya Kuprov]]''

Latest revision as of 19:41, 6 June 2026

Shaped pulse in amplitude-frequency coordinates using Fokker-Planck formalism (Eqn. 33 in http://dx.doi.org/10.1016/j.jmr.2016.07.005).

Syntax

    [rho,traj,P]=shaped_pulse_af(spin_system,L0,Lx,Ly,rho,rf_frq_list,...
                                          rf_amp_list,rf_dur_list,rf_phi,...
                                          max_rank,method)

Parameters

       L0          - drift Liouvillian that continues
                     running in the background

       Lx          - X projection of the RF operator

       Ly          - Y projection of the RF operator

       rho         - initial state vector or a stack 
                     thereof

       rf_frq_list - a vector of RF frequencies at each
                     time slice, Hz

       rf_amp_list - a vector of RF amplitudes at each
                     time slice, rad/s

       rf_dur_list - a vector of time slice durations,
                     in seconds

       rf_phi      - RF phase of the first pulse slice

       max_rank    - maximum rank of the Fokker-Planck
                     theory, increase until the answer 
                     stops changing, 2 is a good start

       method      - propagation method, 'expv' for Krylov
                     propagation, 'expm' for exponential
                     propagation, 'evolution' for Spinach
                     evolution function

Outputs

rho - final state vector, or a stack thereof

traj - system trajectory as a [1 x (nsteps+1)] cell array; the first

      point is the initial condition

P - effective pulse propagator, expensive, and only available for

      the 'expm' method

Examples

An example of a chirped inversion pulse pulse applied to a system with 31 J-coupled protons (examples/nmr_liquids/shaped_pulse_3.m):

Chirp inversion.png

Note that only 100 time slices are required in the frequency-amplitude representation: considerably fewer than would be needed in the Cartesian representation used by shaped_pulse_xy.m function.

Notes

The pulse is assumed to be piecewise-constant and should be supplied with sufficiently fine time discretisation to reproduce the waveform properly. Make certain that the frequency has the correct sign; a wrong sign makes the pulse hit far away from the intended location.

See also

shaped_pulse_xy.m, read_wave.m, vg_pulse.m, pulse_shape.m, chirp_pulse.m, bruker_write.m, cartesian2polar.m, grad_pulse.m, grad_sandw.m, pmlg5.m, polar2cartesian.m, restrans.m, rseq_compiler.m, rsequence.m, sawtooth.m, sech_pulse.m, spinal.m, triwave.m, wave_basis.m, Kernel_functions

Version 2.2, authors: Ilya Kuprov