def set_pulses(self):
        ### Excitation Pulse ###
        exdata = self.power * pulse_shape.hard_pulse(self.p90, self.samp_rate)

        #sinc Excitation Pulse
        #amp = self.power
        #exdata = pulse_shape.wsinc(self.p90,7.0,0,self.samp_rate)*amp

        # Set data for triggered vector source named "ex_pulse"
        tb.ex_pulse.set_data(exdata)
        # Set pulse delay in flowgraph
        start = int(self.fudge * self.samp_rate)
        tb.set_ex_delay(start)
        pulses.ex = pulse(exdata, start)

        ### Readout Window ###
        readdata = 1.0 * pulse_shape.hard_pulse(self.readout_length,
                                                self.samp_rate)
        # Set data for triggered vector source named "readwin"
        tb.readwin.set_data(readdata)
        start = int(
            self.samp_rate *
            (self.fudge + self.p90 + self.dead_time))  # define pulse timing
        tb.set_readout_delay(start)  # update flow graph
        pulses.readout = pulse(readdata, start)
 def readout_pulse(self):
     # Readout Window
     self.readout_length = round(float(self.samp_rate) / self.BW * self.SI)
     self.readout_time = self.readout_length / self.samp_rate
     data = pulse_shape.hard_pulse(self.readout_time, self.samp_rate)
     tb.readwin.set_data(data)  # update pulse in flowgraph
     start = int(self.samp_rate * (self.fudge + self.p90 / 2 + self.TE -
                                   (self.readout_time / 2)))
     tb.set_readout_delay(start)  # update pulse delay
     pulses.readout = pulse(data, start)
    def p180_hard_pulse(self):
        # Refocusing Pulse
        amp = 2 * self.power_auc / self.p180

        data = amp * pulse_shape.hard_pulse(self.p180, self.samp_rate)
        tb.ref_pulse.set_data(data)  # update pulse in flowgraph
        # update pulse delay
        start = int(self.samp_rate *
                    (self.fudge + self.p90 / 2 + self.TE / 2 - self.p180 / 2))
        tb.set_ref_delay(start)
        pulses.ref = pulse(data, start)
    def p90_hard_pulse(self):

        # Excitation Pulse
        amp = self.power_auc * self.samp_rate  #self.power_auc/self.p90
        foo = pulse_shape.hard_pulse(self.p90, self.samp_rate)
        data = foo / sum(foo) * amp
        tb.ex_pulse.set_data(data)
        start = int(self.fudge * self.samp_rate)  # update pulse in flowgraph
        pulses.ex = pulse(data, start)
        tb.set_ex_delay(start)  # update pulse delay
        if (self.ischopped == 1):
            tb.ex_pulse.set_amps(1, -2, 2, self.nav)
        else:
            tb.ex_pulse.set_amps(1, 0, 1, 1)