Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix calculation of bandwidth of adiabatic hypsec pulse #83

Merged
merged 2 commits into from
Mar 1, 2023

Conversation

schuenke
Copy link
Collaborator

@schuenke schuenke commented Aug 4, 2022

When trying to use a slice selective adiabatic hypsec pulse, I got several errors related to the calculation of the bandwidth of the hypsec pulse. I fixed the obvious ones like a wrong import of calc_rf_center() in calc_rf_bandwidth() and a wrong attribute name (rf.sig instead of rf.signal) and provide a new solution for the __find_flank() function:

    def __find_flank(x, f, c):
       m = np.max(np.abs(f))
       f = np.abs(f) / m
       i = np.argwhere(f > c)[0]

       return x[i]

Using calc_rf_bandwidth() with a cut_off value of 0.5 instead of 0.1 (which makes sense imo because the signal gets normalized to 1 and we are interested in the width at half maximum ?!) yields a bw of 1280 Hz, which is close to the literaure value of ~ 1250 Hz for the hypsec pulse with default settings (beta = 800, mu =4.9)

HOWEVER, simply using the analytic expression for the bw of a hypsec pulse makes far more sense imo. It is given by

bw = mu * beta / pi

As a reference, here the passage from Bernstein - Handbook of MRI pulse sequences:

grafik

Using the analytic expression is the way I implemented it now in make_adiabatic_pulse.py

@sravan953 sravan953 self-assigned this Aug 6, 2022
@btasdelen
Copy link
Collaborator

@sravan953 I agree with @schuenke. I tested it, and it seems to give the correct bandwidth. It is much cleaner and less hand-wavy.

@sravan953 sravan953 added the bug Something isn't working label Feb 27, 2023
@sravan953 sravan953 merged commit 029a0c4 into imr-framework:dev Mar 1, 2023
@sravan953 sravan953 added bug-fix Fixes something and removed bug Something isn't working labels Mar 1, 2023
@schuenke schuenke deleted the dev_hypsecbw branch December 11, 2024 11:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug-fix Fixes something
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants