From 531b22696f88f854aa4d410ce1de5c0e4d13341f Mon Sep 17 00:00:00 2001 From: Michiel Cottaar <MichielCottaar@protonmail.com> Date: Wed, 22 May 2024 16:49:10 +0100 Subject: [PATCH] Add stretch parameter for RF pulse adjustments --- src/components/pulses/constant_pulses.jl | 4 ++-- src/components/pulses/generic_pulses.jl | 4 ++-- src/components/pulses/sinc_pulses.jl | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/components/pulses/constant_pulses.jl b/src/components/pulses/constant_pulses.jl index a15ea30..9604335 100644 --- a/src/components/pulses/constant_pulses.jl +++ b/src/components/pulses/constant_pulses.jl @@ -64,10 +64,10 @@ end split_timestep(pulse::ConstantPulse, precision) = Inf -function adjust_internal(block::ConstantPulse; scale=1., frequency=0.) +function adjust_internal(block::ConstantPulse; scale=1., frequency=0., stretch=1.) ConstantPulse( block.amplitude * scale, - block.duration, + block.duration * stretch, block.phase, block.frequency + frequency, block.group, diff --git a/src/components/pulses/generic_pulses.jl b/src/components/pulses/generic_pulses.jl index 856bf8a..df4b580 100644 --- a/src/components/pulses/generic_pulses.jl +++ b/src/components/pulses/generic_pulses.jl @@ -153,9 +153,9 @@ function split_timestep(gp::GenericPulse, precision) return sqrt(2 * precision / max_second_der) end -function adjust_internal(block::GenericPulse; scale=1., frequency=0.) +function adjust_internal(block::GenericPulse; scale=1., frequency=0., stretch=1.) GenericPulse( - block.time, + block.time .* stretch, block.amplitude .* scale, block.phase .+ (360. * frequency) .* (block.time .- effective_time(block)) ) diff --git a/src/components/pulses/sinc_pulses.jl b/src/components/pulses/sinc_pulses.jl index 8ced23f..1fb52ae 100644 --- a/src/components/pulses/sinc_pulses.jl +++ b/src/components/pulses/sinc_pulses.jl @@ -107,7 +107,7 @@ function split_timestep(block::SincPulse, precision) return sqrt(2 * precision / max_second_derivative) end -function adjust_internal(block::SincPulse; scale=1., frequency=0.) +function adjust_internal(block::SincPulse; scale=1., frequency=0., stretch=1.) SincPulse( block.apodise, block.Nzeros, @@ -115,7 +115,7 @@ function adjust_internal(block::SincPulse; scale=1., frequency=0.) block.amplitude * scale, block.phase, block.frequency + frequency, - block.lobe_duration, + block.lobe_duration * stretch, block.group ) end -- GitLab