-
Notifications
You must be signed in to change notification settings - Fork 21
/
Scanner.jl
46 lines (41 loc) · 1.37 KB
/
Scanner.jl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
"""
sys = Scanner(B0, B1, Gmax, Smax, ADC_Δt, seq_Δt, GR_Δt, RF_Δt,
RF_ring_down_T, RF_dead_time_T, ADC_dead_time_T)
The Scanner struct. It contains hardware limitations of the MRI resonator. It is an input
for the simulation.
# Arguments
- `B0`: (`::Real`, `=1.5`, `[T]`) main magnetic field strength
- `B1`: (`::Real`, `=10e-6`, `[T]`) maximum RF amplitude
- `Gmax`: (`::Real`, `=60e-3`, `[T/m]`) maximum gradient amplitude
- `Smax`: (`::Real`, `=500`, `[mT/m/ms]`) gradient's maximum slew-rate
- `ADC_Δt`: (`::Real`, `=2e-6`, `[s]`) ADC raster time
- `seq_Δt`: (`::Real`, `=1e-5`, `[s]`) sequence-block raster time
- `GR_Δt`: (`::Real`, `=1e-5`, `[s]`) gradient raster time
- `RF_Δt`: (`::Real`, `=1e-6`, `[s]`) RF raster time
- `RF_ring_down_T`: (`::Real`, `=20e-6`, `[s]`) RF ring down time
- `RF_dead_time_T`: (`::Real`, `=100e-6`, `[s]`) RF dead time
- `ADC_dead_time_T`: (`::Real`, `=10e-6`, `[s]`) ADC dead time
# Returns
- `sys`: (`::Scanner`) Scanner struct
# Examples
```julia-repl
julia> sys = Scanner()
julia> sys.B0
```
"""
@with_kw mutable struct Scanner
#Main
B0::Real=1.5
B1::Real=10e-6
Gmax::Real=60e-3
Smax::Real=500
#Sampling
ADC_Δt::Real=2e-6
seq_Δt::Real=1e-5
GR_Δt::Real=1e-5
RF_Δt::Real=1e-6
#Secondary
RF_ring_down_T::Real=20e-6
RF_dead_time_T::Real=100e-6
ADC_dead_time_T::Real=10e-6
end