-
Notifications
You must be signed in to change notification settings - Fork 0
/
strong_dispersive_pulses.py
executable file
·77 lines (61 loc) · 3.32 KB
/
strong_dispersive_pulses.py
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
import numpy as np
from generator import *
import os
pi = np.pi
import matplotlib.pyplot as plt
def geom():
file_length = 8000
num_steps = 101
geophase_seq = Sequence(file_length, num_steps) #this creates something called rabi_seq that is an instance of a sequence class
## channels
pi_ge_time = 64
pi2_ef_time = 16
pi2_ef_amp = 0.5
pi2_ge_time = 32
ssm_ge = .110
ssm_ef = 0.188
#this is the first pi pulse in the sequence
pi_ge = Pulse(start=5000, duration=-64, amplitude=1, ssm_freq=ssm_ge, phase=0) #pulse is also a class p is an instance
geophase_seq.add_sweep(channel=1, sweep_name='none',initial_pulse=pi_ge)
pi_ge.phase = 90
geophase_seq.add_sweep(channel=2, sweep_name='none',initial_pulse=pi_ge)
#p.phase = 90 #make the pulse phase 90 degrees to get the single sideband modulation
#rabi_seq.add_sweep(channel=2, sweep_name='width', start=0, stop=-200,initial_pulse=p)
pi2_ef = Pulse(start=5000+pi2_ef_time, duration=-pi2_ef_time, amplitude=0.5, ssm_freq=ssm_ge, phase=90)
geophase_seq.add_sweep(channel=1, sweep_name='none',initial_pulse=pi2_ef)
pi2_ef.phase = 0
geophase_seq.add_sweep(channel=2, sweep_name='none',initial_pulse=pi2_ef)
pi2_ge = Pulse(start=5000+pi2_ef_time+pi2_ge_time, duration=-pi2_ge_time, amplitude=1, ssm_freq=ssm_ge, phase=0) #pulse is also a class p is an instance
geophase_seq.add_sweep(channel=1, sweep_name='none',initial_pulse=pi2_ge)
pi2_ge.phase = 90
geophase_seq.add_sweep(channel=2, sweep_name='none',initial_pulse=pi2_ge)
pi2_ge = Pulse(start=5000+pi2_ef_time+2*pi2_ge_time, duration=-pi2_ge_time, amplitude=1, ssm_freq=ssm_ge, phase=0) #pulse is also a class p is an instance
geophase_seq.add_sweep(channel=1, sweep_name='phase',start=0, stop=360,initial_pulse=pi2_ge)
pi2_ge.phase = 90
geophase_seq.add_sweep(channel=2, sweep_name='phase', start=0, stop=360,initial_pulse=pi2_ge)
pi2_ef.start=5220
geophase_seq.add_sweep(channel=2, sweep_name='none',initial_pulse=pi2_ef)
pi2_ef.phase = 0
geophase_seq.add_sweep(channel=1, sweep_name='none',initial_pulse=pi2_ef)
pi_ge.start=5290
geophase_seq.add_sweep(channel=2, sweep_name='none',initial_pulse=pi_ge)
pi_ge.phase = 90
geophase_seq.add_sweep(channel=1, sweep_name='none',initial_pulse=pi_ge)
## markers
readout = Pulse(start=6000,duration=1000,amplitude=1)
geophase_seq.add_sweep(channel=1,marker=2,sweep_name='none', initial_pulse=readout) #sweep type 'none' copies pulse to every pattern of the sequence
alazar_trigger = Pulse(start=1000, duration=500, amplitude=1)
geophase_seq.add_sweep(channel=3, marker=1, sweep_name='none', initial_pulse=alazar_trigger )
## view output
if False:
channel1_ch = rabi_seq.channel_list[0][0] #[channel name -1][0:channel, 1:marker 1, 2:marker 2]
channel2_ch = rabi_seq.channel_list[1][0]
channel3_ch = rabi_seq.channel_list[2][0]
plt.imshow(channel2_ch[0:100,4800:5100], aspect='auto', extent=[4800,5100,100,0])
plt.show()
## write output
write_dir = r"C:\arbsequences\strong_dispersive_withPython\sweep_pulse4_phase"
geophase_seq.write_sequence(base_name='foo', file_path=write_dir, use_range_01=False,num_offset=0)
##END geom
if __name__ == '__main__':
rabief()