Fix RF dead-time handling for slice-selective RF pulses (sinc/gauss)#375
Fix RF dead-time handling for slice-selective RF pulses (sinc/gauss)#375dabosch wants to merge 10 commits into
Conversation
Intended behavior: modify RF delay iff RF pulse delay is smaller than dead time. Old actual behavior: modify RF delay if RF pulse or slice selection gradient has delay smaller than dead time. The ramp-up time of slice selection was not taken into account. Fixed by moving dead time check to a later position in the code, after slice selection gradient is generated and RF pulse is positioned correctly. If required, gz delay is adjusted as well.
|
To clarify: it might be sufficient to modify the warning logic. |
schuenke
left a comment
There was a problem hiding this comment.
The old implementation actually did NOT lead to wrong delays, but the warning was wrong or at least confusing, because it could have happened that the rf.delay was further adjusted after the warning stated it was increase to the RF dead time.
If return_gz=True, we were/are anyway adjusting the delays silently, so that I decided to emit a warning only when return_gz=False, because there users should not expect any delay adjustments.
Additionally, I applied the same changes to make_gauss_pulse and added/modified the tests for all make RF functions.
|
@dabosch let me know if you are fine with my changes. I will wait for your reply before merging the PR. |
|
quick reminder @dabosch |
Fixes a bug where RF delay is increased even when ramp-up time of the slice selection gradient gives sufficient delay.
Intended behavior: increase RF delay iff RF pulse delay is smaller than dead time.
Old actual behavior: modify RF delay if RF pulse or slice selection gradient has delay smaller than dead time.
In other words, the ramp-up time of the slice selection was not taken into account when checking if RF delay is sufficient.
Fixed by moving dead time check to a later position in the code, after slice selection gradient is generated and RF pulse is positioned correctly. If required, gz delay is adjusted as well.