• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Python pulse.cp函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Python中measurement.lib.pulsar.pulse.cp函数的典型用法代码示例。如果您正苦于以下问题:Python cp函数的具体用法?Python cp怎么用?Python cp使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了cp函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。

示例1: get_sweep_elements

    def get_sweep_elements(self):
        wait_elt = element.Element('pulse_delay', pulsar=qt.pulsar)
        wait_elt.append(pulse.cp(self.T, length=1e-6))

        pulse_elts = []
        sweep_elts = []
        
        for i in range(self.params['pts']):
            e = element.Element('ERabi_pt-{}'.format(i), pulsar=qt.pulsar)
            e.append(self.T)
            e.append(
                pulse.cp(self.e_pulse,
                    frequency = self.params_lt1['MW_pulse_mod_frqs'][i],
                    amplitude = self.params_lt1['MW_pulse_amps'][i],
                    length = self.params_lt1['MW_pulse_durations'][i]))
            pulse_elts.append(e)

        for i in range(self.params['pts']):
            if self.params_lt1['MW_pulse_multiplicities'][i] == 0:
                sweep_elts.append(pulse_elts[i])

            else:
                subelts = []
                for j in range(self.params_lt1['MW_pulse_multiplicities'][i]):
                    subelts.append(pulse_elts[i])
                    subelts.append(wait_elt)
                sweep_elts.append(subelts)

        return sweep_elts
开发者ID:AdriaanRol,项目名称:measurement,代码行数:29,代码来源:BSM_sequences.py


示例2: get_sweep_elements

    def get_sweep_elements(self):
        e = element.Element('Hadamard', pulsar=qt.pulsar, 
            global_time = True)
        e.append(self.T)
        e.append(self.shelving_pulse)
        e.append(pulse.cp(self.T, length=100e-9))
        
        # this is by using two rotations around x/y -- This works much better!
        # phase of 0 makes x (rotate around +Y), -90 makes y (rotate around -X)
        prep_name = e.append(pulse.cp(self.N_pi2,
            phase = -90.,
            amplitude = 1))

        # first a pi/2 over +Y
        h_pi2_name = e.append(pulse.cp(self.N_pi2,
            phase = 0,
            amplitude = 1))
        
        # then a pi over +X
        h_pi_name = e.append(pulse.cp(self.N_pi,
            phase = 90.,
            amplitude = 1))

        self.element = e
        self.params['tomo_time_offset'] = e.length()

        return BSM.NTomo.get_sweep_elements(self)
开发者ID:AdriaanRol,项目名称:measurement,代码行数:27,代码来源:hadamard.py


示例3: _lt3_LDE_element

def _lt3_LDE_element(msmt, **kw):  ### WE NEED THIS GUY
    """
    This element contains the LDE part for LT3, i.e., spin pumping and MW pulses
    for the LT3 NV and the optical pi pulses as well as all the markers for HH and PLU.
    """

    # variable parameters
    name = kw.pop('name', 'LDE_LT3')
    pi2_pulse_phase = kw.pop('pi2_pulse_phase', 0)
    if kw.pop('use_short_eom_pulse',False):
        eom_pulse=pulse.cp(msmt.short_eom_aom_pulse,
            aom_on=msmt.params_lt3['eom_aom_on'])
    else:
        eom_pulse=pulse.cp(msmt.eom_aom_pulse,
            eom_pulse_amplitude = kw.pop('eom_pulse_amplitude', msmt.params_lt3['eom_pulse_amplitude']),
            eom_off_amplitude = kw.pop('eom_off_amplitude', msmt.params_lt3['eom_off_amplitude']),
            aom_on=msmt.params_lt3['eom_aom_on'])

    ###
    e = element.Element(name, 
        pulsar = qt.pulsar, 
        global_time = True)
    e.add(pulse.cp(msmt.empty_pulse,
            amplitude = 0,
            length = msmt.params['LDE_element_length']))

    #1 SP
    e.add(pulse.cp(msmt.empty_pulse, 
            amplitude = 0, 
            length = msmt.params_lt3['initial_delay']), 
        name = 'initial delay')
    
    
    for i in range(msmt.params['opt_pi_pulses']):
        name = 'opt pi {}'.format(i+1)
        refpulse = 'opt pi {}'.format(i) if i > 0 else 'initial delay'
        start = msmt.params_lt3['opt_pulse_separation'] if i > 0 else msmt.params['wait_after_sp']
        refpoint = 'start' if i > 0 else 'end'

        e.add(eom_pulse,        
            name = name, 
            start = start,
            refpulse = refpulse,
            refpoint = refpoint,)
        e.add(msmt.eom_trigger,
            name = name+'_trigger', 
            start = start,
            refpulse = refpulse,
            refpoint = refpoint,)

    #5 HHsync
    syncpulse_name = e.add(msmt.TH_sync, refpulse = 'initial delay', refpoint = 'start', refpoint_new = 'end')

    ############

    if e.length() != msmt.params['LDE_element_length']:
        raise Exception('LDE element length'+e.name+' is not as specified - granylarity issue?')
    return e

    return e
开发者ID:AdriaanRol,项目名称:measurement,代码行数:60,代码来源:sequence_test_delays.py


示例4: get_sweep_elements

    def get_sweep_elements(self):        
        elts = []

        for i in range(self.params['pts']):
            e = element.Element('CNOTPHaseCheck_pt-{}'.format(i), pulsar=qt.pulsar, global_time = True)
            e.append(self.T)
            e.append(self.shelving_pulse)
            e.append(self.T)
            e.append(self.N_pi2)
            e.append(pulse.cp(self.T, length=200e-9))
            for m in np.arange(self.params['multiplicity']/2):
                if m == 0:
                    e.append(self.pi2pi_m1)
                    e.append(self.TIQ)
                    e.append(self.pi2pi_m1)
                else:
                    e.append(self.TIQ)
                    e.append(self.pi2pi_m1)
                    e.append(self.TIQ)
                    e.append(self.pi2pi_m1)
            e.append(pulse.cp(self.T, length=200e-9))
            e.append(pulse.cp(self.N_pi2, 
                phase = self.params['analysis_phases'][i]))

            elts.append(e)

        return elts
开发者ID:AdriaanRol,项目名称:measurement,代码行数:27,代码来源:CNOT_phase_check.py


示例5: sequence

    def sequence(self, upload = True):
        # define the pulses we'll use
        sq_pulseAOM = pulse.SquarePulse(channel='AOM975', name='A square pulse on ThorLabsAOM')
        sq_pulseMW = pulse.SquarePulse(channel='MW_pulsemod', name='A square pulse on MW modulation')
        sq_pulsePC = pulse.SquarePulse(channel='photoncount', name='A square pulse on photon counting switch')
        sq_pulseMW_Imod = pulse.SquarePulse(channel='MW_Imod', name='A square pulse on MW I modulation')
        sq_pulseMW_Qmod = pulse.SquarePulse(channel='MW_Qmod', name='A square pulse on MW I modulation')

        elements = []
        # Create waveform that has laser, microwaves, photon counting, and 1/0 I/Q modulation on
        # all the time for a long period of time (~100 us).
        e = element.Element('CW_mode', pulsar=qt.pulsar)
        e.add(pulse.cp(sq_pulseAOM, amplitude=1, length=100e-6), name='laser')
        e.add(pulse.cp(sq_pulsePC, amplitude=1.0, length=100e-6), name='photoncountpulse')
        e.add(pulse.cp(sq_pulseMW_Imod, amplitude=1.0, length=100e-6),
        name='MWimodpulsecw', start=0e-9)
        e.add(pulse.cp(sq_pulseMW_Qmod, amplitude=0.0, length=100e-6),
        name='MWqmodpulsecw', start=0e-9)
        elements.append(e)

        # create a sequence from the pulses -- only one in this case
        seq = pulsar.Sequence('CW ESR Sequence')
        for e in elements:
            seq.append(name=e.name, wfname=e.name, trigger_wait=False, repetitions=-1)

        if upload:
            qt.pulsar.upload(*elements)
            time.sleep(2.0)
        # program the AWG
        qt.pulsar.program_sequence(seq)
开发者ID:dchristle,项目名称:measurement,代码行数:30,代码来源:pstability_m_awg.py


示例6: get_sweep_elements

    def get_sweep_elements(self):
        """
        to lock phases it's important to set the tomo_time_offset parameter.
        """

        z_element = element.Element('Z Tomo pulse', pulsar=qt.pulsar)
        z_element.append(pulse.cp(self.TN, length=1e-6))

        x_element = element.Element('X Tomo pulse', pulsar=qt.pulsar)
        xn = x_element.append(pulse.cp(self.N_pi2, 
            phase = phaseref(self.N_pi2.frequency, 
                self.params['tomo_time_offset']) + \
                self.params['tomo_pulse_phases'][1]))

        y_element = element.Element('Y Tomo pulse', pulsar=qt.pulsar)
        yn = y_element.append(pulse.cp(self.N_pi2, 
            phase = phaseref(self.N_pi2.frequency, 
                self.params['tomo_time_offset']) + \
                self.params['tomo_pulse_phases'][2]))

        sweep_elements = []
        for n, tomo_elt in zip(self.params['tomo_bases'],
            [z_element, x_element, y_element]):

            if type(self.element) == list:
                elts = [e for e in self.element]
                elts.append(tomo_elt)
                sweep_elements.append(elts)
            else:
                elts = [self.element, tomo_elt]
                sweep_elements.append(elts)

        return sweep_elements
开发者ID:AdriaanRol,项目名称:measurement,代码行数:33,代码来源:BSM.py


示例7: _lt2_final_id

def _lt2_final_id(msmt, name, time_offset, **kw):
    wait_length = msmt.params_lt2['CORPSE_pi2_wait_length'] + msmt.CORPSE_pi.length 
    final_id_elt = element.Element('second_id_elt-{}'.format(name), pulsar= qt.pulsar, 
                global_time = True, time_offset = time_offset)
    final_id_elt.append(pulse.cp(msmt.T, length =  wait_length)) 
    final_id_elt.append(pulse.cp(msmt.T, length =  100e-9 )) 

    return final_id_elt
开发者ID:wpfff,项目名称:teamdiamond_measuring,代码行数:8,代码来源:sequence.py


示例8: generate_sequence

    def generate_sequence(self, upload=True):
        # MBI element
        mbi_elt = self._MBI_element()

        # electron manipulation pulses
        T = pulse.SquarePulse(channel='MW_pulsemod',
            length = 10e-9, amplitude = 0)

        X = pulselib.MW_IQmod_pulse('MW pulse',
            I_channel = 'MW_Imod', 
            Q_channel = 'MW_Qmod',
            PM_channel = 'MW_pulsemod',
            PM_risetime = self.params['MW_pulse_mod_risetime'])

        adwin_sync = pulse.SquarePulse(channel='adwin_sync',
            length = self.params['AWG_to_adwin_ttl_trigger_duration'], 
            amplitude = 2)

        # electron manipulation elements
        elts = []
        for i in range(self.params['pts']):
            e = element.Element('ERamsey_pt-%d' % i, pulsar=qt.pulsar,
                global_time = True)
            e.append(T)
        
            e.append(
                pulse.cp(X,
                    frequency = self.params['MW_pulse_mod_frqs'][i],
                    amplitude = self.params['MW_pulse_amps'][i],
                    length = self.params['MW_pulse_durations'][i],
                    phase = self.params['MW_pulse_1_phases'][i]))

            e.append(
                pulse.cp(T, length=self.params['MW_pulse_delays'][i]))

            e.append(
                pulse.cp(X, 
                    frequency = self.params['MW_pulse_mod_frqs'][i],
                    amplitude = self.params['MW_pulse_amps'][i],
                    length = self.params['MW_pulse_durations'][i],
                    phase = self.params['MW_pulse_2_phases'][i]))

            e.append(adwin_sync)
            elts.append(e)

        # sequence
        seq = pulsar.Sequence('MBI Electron Rabi sequence')
        for i,e in enumerate(elts):
            seq.append(name = 'MBI-%d' % i, wfname = mbi_elt.name, 
                trigger_wait = True, goto_target = 'MBI-%d' % i, 
                jump_target = e.name)
            seq.append(name = e.name, wfname = e.name, 
                trigger_wait = True)

        # program AWG
        if upload:
            qt.pulsar.upload(mbi_elt, *elts)
        qt.pulsar.program_sequence(seq)
开发者ID:wpfff,项目名称:teamdiamond_measuring,代码行数:58,代码来源:pulsar_mbi_espin.py


示例9: generate_sequence

 def generate_sequence(self, upload=True):
     # load all the other pulsar resources
     self._pulse_defs()
     
     self.FT_pulse = pulse.SquarePulse(channel='Velocity1AOM',
         length = self.params['sp_duration'], amplitude = self.params['FT_pulse_amp'])
     
     self.yel_pulse = pulse.SquarePulse(channel='YellowAOM',
         length = self.params['sp_duration']*3/4., amplitude = self.params['yellow_pulse_amp'])
     
     # make the list of elements required for uploading
     e = element.Element('N_FT_Polarisation', pulsar=qt.pulsar, global_time = True)
     
     e.append(pulse.cp(self.T, length=200e-9))
     last = e.append(self.yel_pulse)
     e.add(self.FT_pulse, refpulse=last, refpoint='start')
     e.append(pulse.cp(self.T, length=200e-9))
     e.append(pulse.cp(self.CORPSE_pi)) # ,
         # frequency = self.params['CORPSE_pi_mod_frq'],
         # amplitude = 0.))        
     
     # create the sequence
     seq = pulsar.Sequence('N_FT_Polarisation_Check_ESR_sequence')
     
     ro_elts = []
     for i,f in enumerate(self.params['RO_mod_frqs']):
         
         # 1: MBI 
         seq.append(name = 'MBI-{}'.format(i),
             wfname = self.mbi_elt.name,
             trigger_wait = True,
             goto_target = 'MBI-{}'.format(i),
             jump_target = 'ft_mw'+str(i))  
                 
         #2  then repeat (SP+MW pi)-element for the current number of times
         seq.append(name = 'ft_mw'+str(i), wfname=e.name,
                 repetitions = self.params['FT_element_repetitions'],
                 trigger_wait = True)
         
         #3 ESR type readout
         ro_e = element.Element('N_RO-{}'.format(i), pulsar=qt.pulsar, global_time = True)
         ro_e.append(self.T)
         ro_e.append(pulse.cp(self.slow_pi, 
             frequency = f))
         
         seq.append(name='N_ro'+str(i), wfname=ro_e.name,
             trigger_wait=False)
         ro_elts.append(ro_e)
             
         seq.append(name = 'sync-{}'.format(i), 
                 wfname = self.sync_elt.name) 
             
     # program AWG
     if upload:
         qt.pulsar.upload(self.mbi_elt, e ,self.sync_elt, *ro_elts)
     
     qt.pulsar.program_sequence(seq)        
开发者ID:AdriaanRol,项目名称:measurement,代码行数:57,代码来源:N_FT_Polarisation.py


示例10: generate_sequence

    def generate_sequence(self, upload=True):
        # electron manipulation pulses
        T = pulse.SquarePulse(channel='MW_pulsemod',
            length = 100e-9, amplitude = 0)
        TIQ = pulse.SquarePulse(channel='MW_Imod',
            length = 10e-9, amplitude = 0)

        CORPSE_pi = pulselib.IQ_CORPSE_pulse('CORPSE pi-pulse',
            I_channel = 'MW_Imod', 
            Q_channel = 'MW_Qmod',    
            PM_channel = 'MW_pulsemod',
            PM_risetime = self.params['MW_pulse_mod_risetime'],
            frequency = self.params['CORPSE_mod_frq'],
            rabi_frequency = self.params['CORPSE_rabi_frequency'],
            amplitude = self.params['CORPSE_amp'],
            eff_rotation_angle = 180)

        CORPSE_pi2 = pulselib.IQ_CORPSE_pulse('CORPSE pi-pulse',
            I_channel = 'MW_Imod', 
            Q_channel = 'MW_Qmod',    
            PM_channel = 'MW_pulsemod',
            PM_risetime = self.params['MW_pulse_mod_risetime'],
            frequency = self.params['CORPSE_mod_frq'],
            rabi_frequency = self.params['CORPSE_rabi_frequency'],
            amplitude = self.params['CORPSE_amp'],
            eff_rotation_angle = 90)

        wait_1us = element.Element('1us_delay', pulsar=qt.pulsar)
        wait_1us.append(pulse.cp(T, length=1e-6))

        sync_elt = element.Element('adwin_sync', pulsar=qt.pulsar)
        adwin_sync = pulse.SquarePulse(channel='adwin_sync',
            length = 10e-6, amplitude = 2)
        sync_elt.append(adwin_sync)

        elts = []
        seq = pulsar.Sequence('CORPSE test')

        for i in range(self.params['pts']):
            e = element.Element('CORPSE_Pi2_Pi-{}'.format(i), 
                pulsar = qt.pulsar,
                global_time=True)
            e.append(T)
            e.append(pulse.cp(CORPSE_pi2))
            e.append(pulse.cp(TIQ, length=self.params['delays'][i]))
            e.append(pulse.cp(CORPSE_pi))
            e.append(T)
            elts.append(e)
            seq.append(name='CORPSE_Pi2_Pi-{}'.format(i),
                wfname = e.name,
                trigger_wait=True)
            seq.append(name='sync-{}'.format(i),
                wfname = sync_elt.name)

        if upload:
            qt.pulsar.upload(sync_elt, wait_1us, *elts)
        qt.pulsar.program_sequence(seq)
开发者ID:AdriaanRol,项目名称:measurement,代码行数:57,代码来源:CORPSE_tests.py


示例11: generate_sequence

    def generate_sequence(self, upload=True):
        # MBI element
        mbi_elt = self._MBI_element()

        # electron manipulation pulses
        self.T = pulse.SquarePulse(channel='MW_pulsemod',
            length = 100e-9, amplitude = 0)

        self.g_pulse = self.PulseClass('gaussian IQ pulse',
            I_channel = 'MW_Imod',
            Q_channel = 'MW_Qmod',
            PM_channel = 'MW_pulsemod',
            PM_risetime = self.params['MW_pulse_mod_risetime'],
            frequency = self.params['pulse_mod_frqs'][0],
            amplitude = self.params['pulse_amps'][0],
            length = self.params['pulse_durations'][0])
    
        elts = []
        for i in range(self.params['pts']):
            e = element.Element('ERabi_pt-{}'.format(i), pulsar=qt.pulsar)
            e.append(self.T)            
            for j in range(self.params['MW_pulse_multiplicities'][i]):
                e.append(
                    pulse.cp(self.g_pulse,
                        frequency = self.params['pulse_mod_frqs'][i],
                        amplitude = self.params['pulse_amps'][i],
                        length = self.params['pulse_durations'][i]))
                e.append(
                    pulse.cp(self.T, length=self.params['MW_pulse_delays'][i]))
            elts.append(e)

        sync_elt = element.Element('adwin_sync', pulsar=qt.pulsar)
        adwin_sync = pulse.SquarePulse(channel='adwin_sync',
            length = 10e-6, amplitude = 2)
        sync_elt.append(adwin_sync)

        seq = pulsar.Sequence('CNOT sequence')
        for i in range(self.params['pts']):

            seq.append(name = 'MBI-%d' % i, 
                wfname = mbi_elt.name, 
                trigger_wait = True, 
                goto_target = 'MBI-%d' % i, 
                jump_target = 'pulse-{}'.format(i))

            seq.append(name = 'pulse-{}'.format(i), 
                       wfname = elts[i].name,
                       trigger_wait=True)

            seq.append(name = 'sync-{}'.format(i),
                wfname = sync_elt.name)

        # program AWG
        if upload:
            qt.pulsar.upload(mbi_elt, sync_elt, *elts)
        qt.pulsar.program_sequence(seq)
开发者ID:AdriaanRol,项目名称:measurement,代码行数:56,代码来源:shaped_pulses.py


示例12: generate_sequence

    def generate_sequence(self, upload=True):
        # MBI element
        mbi_elt = self._MBI_element()

        # electron manipulation pulses
        T = pulse.SquarePulse(channel='MW_pulsemod',
            length = 10e-9, amplitude = 0)

        CORPSE_pi = pulselib.IQ_CORPSE_pi_pulse('CORPSE pi-pulse',
            I_channel = 'MW_Imod', 
            Q_channel = 'MW_Qmod',
            PM_channel = 'MW_pulsemod',
            PM_risetime = self.params['MW_pulse_mod_risetime'],
            frequency = self.params['CORPSE_pi_mod_frq'],
            amplitude = self.params['CORPSE_pi_amp'],
            length_60 = self.params['CORPSE_pi_60_duration'],
            length_m300 = self.params['CORPSE_pi_m300_duration'],
            length_420 = self.params['CORPSE_pi_420_duration'])

        sync_elt = element.Element('adwin_sync', pulsar=qt.pulsar)
        adwin_sync = pulse.SquarePulse(channel='adwin_sync',
            length = 10e-6, amplitude = 2)
        sync_elt.append(adwin_sync)

        wait_1us = element.Element('1us_delay', pulsar=qt.pulsar)
        wait_1us.append(pulse.cp(T, length=1e-6))

        elts = []
        for i in range(self.params['pts']):
            e = element.Element('CORPSE-{}'.format(i), pulsar=qt.pulsar)
            e.append(T,
                pulse.cp(CORPSE_pi,
                    amplitude=self.params['CORPSE_pi_sweep_amps'][i]))
            elts.append(e)

        # sequence
        seq = pulsar.Sequence('CORPSE pi calibration')
        for i,e in enumerate(elts):
            seq.append(name = 'MBI-%d' % i, wfname = mbi_elt.name, 
                trigger_wait = True, goto_target = 'MBI-%d' % i, 
                jump_target = e.name+'-0')
            
            for j in range(self.params['multiplicity']):
                seq.append(name = e.name+'-{}'.format(j), 
                    wfname = e.name,
                    trigger_wait = (j==0))
                seq.append(name = 'wait-{}-{}'.format(i,j), 
                    wfname = wait_1us.name, 
                    repetitions = self.params['delay_reps'])
            seq.append(name = 'sync-{}'.format(i),
                wfname = sync_elt.name)

        # program AWG
        if upload:
            qt.pulsar.upload(mbi_elt, sync_elt, wait_1us, *elts)
        qt.pulsar.program_sequence(seq)
开发者ID:AdriaanRol,项目名称:measurement,代码行数:56,代码来源:CORPSE_calibration.py


示例13: calibrate_CORPSE_pi_phase_shift_or_e_time

    def calibrate_CORPSE_pi_phase_shift_or_e_time(self):
        """
        Do a Hahn echo sequence with the CORPSE pi pulse, and sweep it's zero
        phase with respect the rotating frame at that time.
        """
        sweep_elements = []
        self.flattened_elements = []
        self.seq = pulsar.Sequence('{}_{}-Sequence'.format(self.mprefix, 
            self.name))

        first_pi2_elt = element.Element('first pi2', pulsar=qt.pulsar,
            global_time = True)
        first_pi2_elt.append(pulse.cp(self.T, length=1e-6))
        first_pi2_name = first_pi2_elt.append(self.fast_pi2)
        first_pi2_elt.append(pulse.cp(self.TIQ, length=100e-9))

        self.flattened_elements.append(first_pi2_elt)

        # the start time of the second pi2, and the evolution time depends on the time when the
        # pulse stops in the first pi2 element:
        t_pi2 = first_pi2_elt.length() - \
            first_pi2_elt.effective_pulse_end_time(first_pi2_name, 'MW_Imod')

        # calculate the evolution time from the interpulse delay
        etimes = self.params_lt1['interpulse_delays'] - t_pi2 - self.fast_pi2.effective_length()/2.

        pi_elts = []
        second_pi2_elts = []
        for i in range(self.params['pts']):
            e = self.UNROT_element('pi-{}'.format(i),
                None, etimes[i], first_pi2_elt.length(),
                CORPSE_pi_phase_shift = \
                    self.params_lt1['CORPSE_pi_phase_shifts'][i])
            
            self.flattened_elements.append(e)
            pi_elts.append(e)

            # make the element
            second_pi2_elt = element.Element('second pi2-{}'.format(i), pulsar=qt.pulsar,
                global_time = True, 
                time_offset = e.length()+first_pi2_elt.length())        
            second_pi2_elt.append(pulse.cp(self.TIQ, length=t_pi2))
            second_pi2_elt.append(self.fast_pi2)

            self.flattened_elements.append(second_pi2_elt)
            second_pi2_elts.append(second_pi2_elt)

        self.flattened_elements.append(self.N_RO_CNOT_elt)

        for i in range(self.params['pts']):
            sweep_elements.append([first_pi2_elt, 
                pi_elts[i],second_pi2_elts[i]])
        
        self.seq = self._add_MBI_and_sweep_elements_to_sequence(
            sweep_elements, self.N_RO_CNOT_elt, self.adwin_lt1_trigger_element)
开发者ID:AdriaanRol,项目名称:measurement,代码行数:55,代码来源:BSM_sequences.py


示例14: _lt1_N_RO_elt

def _lt1_N_RO_elt(msmt):
    """
    This is an element with spin pumping to ms=0 and a (pi-2pi) CNOT pulse for the nitrogen readout.
    """
    N_RO_elt = element.Element('N-RO', pulsar=msmt.pulsar_lt1)
    N_RO_elt.append(pulse.cp(msmt.T,
                              length=1000e-9))    
    N_RO_elt.append(pulse.cp(msmt.SP_pulse,
                             length = msmt.params_lt1['N_RO_SP_duration']))
    N_RO_elt.append(pulse.cp(msmt.T,
                             length=2000e-9))
    N_RO_elt.append(msmt.pi2pi_m1)

    return N_RO_elt
开发者ID:wpfff,项目名称:teamdiamond_measuring,代码行数:14,代码来源:sequence.py


示例15: generate_sequence

    def generate_sequence(self, upload=True):

        # define the necessary pulses
        X = pulselib.IQ_CORPSE_pi2_pulse('CORPSE pi2-pulse', 
            I_channel='MW_Imod', 
            Q_channel='MW_Qmod', 
            PM_channel='MW_pulsemod',
            PM_risetime = self.params['MW_pulse_mod_risetime'],
            frequency = self.params['CORPSE_pi2_mod_frq'],
            amplitude = self.params['CORPSE_pi2_amp'],
            length_24p3 = self.params['CORPSE_pi2_24p3_duration'],
            length_m318p6 = self.params['CORPSE_pi2_m318p6_duration'],
            length_384p3 = self.params['CORPSE_pi2_384p3_duration'])

        T = pulse.SquarePulse(channel='MW_Imod', name='delay', 
            length = 200e-9, amplitude = 0.)
        
        # make the elements - one for each ssb frequency
        elements = []
        for i in range(self.params['pts']):

            e = element.Element('ElectronRamsey_pt-%d' % i, pulsar=qt.pulsar,
                global_time = True)
            e.append(T)
            
            e.append(pulse.cp(X,
                amplitude = self.params['CORPSE_pi2_amps'][i],
                phase = self.params['CORPSE_pi2_phases1'][i]))

            e.append(pulse.cp(T,
                length = self.params['evolution_times'][i]))

            e.append(pulse.cp(X,
                amplitude = self.params['CORPSE_pi2_amps'][i],
                phase = self.params['CORPSE_pi2_phases2'][i]))
    
            elements.append(e)

        # create a sequence from the pulses
        seq = pulsar.Sequence('ElectronRamsey sequence')
        for e in elements:
            seq.append(name=e.name, wfname=e.name, trigger_wait=True)

        # upload the waveforms to the AWG
        if upload:
            qt.pulsar.upload(*elements)

        # program the AWG
        qt.pulsar.program_sequence(seq)
开发者ID:wpfff,项目名称:teamdiamond_measuring,代码行数:49,代码来源:pulsar.py


示例16: _lt2_dummy_element

def _lt2_dummy_element(msmt):
    """
    A 1us empty element we can use to replace 'real' elements for certain modes.
    """
    e = element.Element('Dummy', pulsar = qt.pulsar)
    e.append(pulse.cp(msmt.T, length=10e-6))
    return e
开发者ID:wpfff,项目名称:teamdiamond_measuring,代码行数:7,代码来源:sequence.py


示例17: generate_sequence

    def generate_sequence(self, upload=True):
        # MBI element
        mbi_elt = self._MBI_element()

        # electron manipulation pulses
        T = pulse.SquarePulse(channel="MW_pulsemod", length=10e-9, amplitude=0)

        Xpassage = AdiabaticPassagePulse(
            "Adiabatic Passage",
            fstart=self.params["passage_start_mod_frq"],
            fstop=self.params["passage_stop_mod_frq"],
            amplitude=self.params["passage_amp"],
        )

        adwin_sync = pulse.SquarePulse(channel="adwin_sync", length=10e-6, amplitude=2)

        # electron manipulation elements
        elts = []
        for i in range(self.params["pts"]):
            e = element.Element("Passage_pt-%d" % i, pulsar=qt.pulsar)
            e.append(T, pulse.cp(Xpassage, length=self.params["passage_lengths"][i]), adwin_sync)
            elts.append(e)

        # sequence
        seq = pulsar.Sequence("MBI adiabatic passage sequence")
        for i, e in enumerate(elts):
            seq.append(
                name="MBI-%d" % i, wfname=mbi_elt.name, trigger_wait=True, goto_target="MBI-%d" % i, jump_target=e.name
            )
            seq.append(name=e.name, wfname=e.name, trigger_wait=True)

        # program AWG
        if upload:
            qt.pulsar.upload(mbi_elt, *elts)
        qt.pulsar.program_sequence(seq)
开发者ID:wpfff,项目名称:teamdiamond_measuring,代码行数:35,代码来源:adiabatic_passage.py


示例18: generate_sequence

    def generate_sequence(self, upload=True):

        # define the necessary pulse

        TT = pulse.SquarePulse(channel="HH_sync", length=1000e-9, amplitude=0)
        SP = pulse.SquarePulse(
            channel=self.params["sp_channel"],
            length=self.params["AWG_SP_duration"][0],
            amplitude=self.params["AWG_SP_voltage"][0],
        )

        # print self.params['AWG_SP_voltage']
        # make the elements - one for each ssb frequency
        elements = []
        for i in range(self.params["pts"]):
            e = element.Element("AWG_SP_sweep-%d" % i, pulsar=self.pulsar)
            e.add(TT, name="wait")
            e.append(pulse.cp(SP(length=self.params["AWG_SP_duration"][i], amplitude=self.params["AWG_SP_voltage"][i])))
            elements.append(e)

        # create a sequence from the pulses
        seq = pulsar.Sequence("SSRO sequence")
        for e in elements:
            seq.append(name=e.name, wfname=e.name, trigger_wait=True)

        # upload the waveforms to the AWG
        if upload:
            self.pulsar.upload(*elements)

        # program the AWG
        self.pulsar.program_sequence(seq)
开发者ID:wpfff,项目名称:teamdiamond_measuring,代码行数:31,代码来源:awg_sp_calibration.py


示例19: test_BSM_with_LDE_element_calibrate_echo_time

    def test_BSM_with_LDE_element_calibrate_echo_time(self, basis='-Z'):
        sweep_elements = []
        self.flattened_elements = []
        self.seq = pulsar.Sequence('{}_{}-Sequence'.format(self.mprefix, 
            self.name))

        for i in range(self.params['pts']):            
            N_init = self.N_init_element('N_init-{}'.format(i), 
                basis = basis, 
                echo_time_after_LDE = self.params_lt1['echo_times_after_LDE'][i], 
                end_offset_time = -100e-9)
            
            e_pi2_elt = element.Element('e_pi2-{}'.format(i), pulsar = qt.pulsar, 
                global_time = True, time_offset = self.LDE_element.length() + N_init.length())
            e_pi2_elt.append(pulse.cp(self.TIQ, 
                length = 100e-9))
            e_pi2_elt.append(self.fast_pi2)


            self.flattened_elements.append(self.LDE_element)
            self.flattened_elements.append(N_init)
            self.flattened_elements.append(e_pi2_elt)
            sweep_elements.append([self.LDE_element,N_init,e_pi2_elt])
            
        self.seq = self._add_MBI_and_sweep_elements_to_sequence(
            sweep_elements, self.N_RO_CNOT_elt, self.adwin_lt1_trigger_element)
开发者ID:AdriaanRol,项目名称:measurement,代码行数:26,代码来源:BSM_sequences.py


示例20: _lt1_LDE_element

def _lt1_LDE_element(msmt):
    """
    This element contains the LDE part for LT1, i.e., spin pumping and MW pulses
    for the LT1 NV in the real experiment.
    """
    e = element.Element('LDE_LT1', pulsar = msmt.pulsar_lt1, global_time = True)

    # this pulse to ensure that the element has equal length as the lt2 element
    e.add(pulse.cp(msmt.SP_pulse,
            amplitude = 0,
            length = msmt.params['LDE_element_length']))
    #
    #1 SP
    e.add(pulse.cp(msmt.SP_pulse,
                amplitude = 0, 
                length = msmt.params_lt1['initial_delay']), 
            name = 'initial_delay')
    
    e.add(pulse.cp(msmt.SP_pulse, 
                length = msmt.params['LDE_SP_duration'], 
                amplitude = 1.0),
            name = 'spinpumping',
            refpulse = 'initial_delay')

    e.add(pulse.cp(msmt.yellow_pulse, 
                length = msmt.params['LDE_SP_duration_yellow'], 
                amplitude = 1. if msmt.params_lt1['AWG_yellow_use']  else 0.), 
            name = 'spinpumpingyellow', 
            refpulse = 'initial_delay')

    #2 MW pi/2
    if msmt.params_lt1['MW_during_LDE'] == 1:
        e.add(msmt.fast_pi2, name = 'mw_pi2_pulse', 
                start = msmt.params_lt1['MW_wait_after_SP'],
                refpulse = 'spinpumping', refpoint = 'end', refpoint_new = 'start')

    #3 MW pi
    if msmt.params_lt1['MW_during_LDE'] == 1:
        e.add(msmt.fast_pi, name = 'mw_pi_pulse',
                start = msmt.params_lt1['MW_separation'],
                refpulse = 'mw_pi2_pulse', refpoint = 'end', refpoint_new = 'start')
        
    ################
    
    if e.length() != msmt.params['LDE_element_length']:
        raise Exception('LDE element length' + e.name+' is not as specified - granularity issue?')
    return e
开发者ID:wpfff,项目名称:teamdiamond_measuring,代码行数:47,代码来源:sequence.py



注:本文中的measurement.lib.pulsar.pulse.cp函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Python toolbox.latest_data函数代码示例发布时间:2022-05-27
下一篇:
Python mean_sightings.get_sightings函数代码示例发布时间:2022-05-27
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap