-
Notifications
You must be signed in to change notification settings - Fork 30
Description
What happened?
Hello,
I am simulating a bSSFP sequence used for Magnetic Resonance Fingerprinting. The issue I encounter occurs whenever I try to simulate the entire 5-slice acquisition, i.e. when I set a slice offset along z; naturally, I apply the corresponding frequency offset to the RF pulses (RF.freq_offset = Gz.amplitude * slice_position, with slice_position in meters)
The issue manifests itself as a frequency offset (df) of the bSSFP signal whenever the slice is not centered at z=0: df = (2 pi * RF_duration * Gz_amplitude * dz_offset) / (2 pi * TR). A simple example of this is shown in the Julia notebook ('DebuggingNotebook') attached and in the attached images: the signal for an isochromat at 0.01mm with RF centered at 0.01mm is different from the signal for an isochromat at 0mm with RF centered at 0mm. The signals at 0mm and 0.01 match almost perfectly for a spin at 0 Hz and a spin at 8.6Hz (calculated using the formula above for 1.6ms, 5000Hz/mm RF and TR=9ms; red and green lines on the 1st image). Even more curiously, the issue goes away when I remove the slice-select rephasers (which solves the problem, but only for a single spin whereas I'd like to simulate the slice profile).
More details on how the sequence was generated can be found in the 'SimpleSincTests' python notebook)
Any and all help would be greatly appreciated, please do let me know if there is some convention that I am not aware of. I have talked to a colleague of mine and he was just as confused as I was; we do not see the same frequency shift depending on the z position in our in vivo acquisitions which are well described by the signal simulated for z=0mm. Thank you in advance!
Best regards,
Dan
Environment
OS x86_64-linux-gnu
Julia 1.11.6
KomaMRIPlots 0.9.4
KomaMRIFiles 0.9.3
KomaMRI 0.9.2
KomaMRICore 0.9.3
KomaMRIBase 0.9.3