def _field_default(self):

        rect_info = self.rectangles_info

        field = mfield.MField()

        # initialize Field II with parameters
        field.field_init()
        field.set_field('c', self.c)
        field.set_field('fs', self.fs)
        field.set_field('use_att', self.use_att)
        field.set_field('att', self.att)
        field.set_field('freq_att', self.freq_att)
        field.set_field('att_f0', self.att_f0)

        # create excitation
        pulse, _ = util.gausspulse(self.excitation_fc,
                                   self.excitation_bw / self.excitation_fc,
                                   self.fs)
        self._pulse = pulse

        # read rect_info and create list of transmit
        tx_apertures = []

        for info in rect_info:

            tx_info = info['tx_info']

            if tx_info is not None:

                tx_rectangles = tx_info['rectangles']
                tx_centers = tx_info['centers']
                tx_delays = tx_info['delays']
                tx_apod = tx_info['apodizations']
                tx_ele_delays = tx_info['ele_delays']

                # create transmit aperture and set aperture parameters
                tx = field.xdc_rectangles(tx_rectangles, tx_centers,
                                          np.array([[0, 0, 300]]))
                field.xdc_impulse(tx, pulse)
                field.xdc_excitation(tx, np.array([1]))
                field.xdc_focus_times(tx, np.zeros((1, 1)), tx_delays)
                field.xdc_apodization(tx, np.zeros((1, 1)), tx_apod)

                # set mathematical element delays
                field.ele_delay(tx,
                                np.arange(len(tx_ele_delays)) + 1,
                                tx_ele_delays)

                # add aperture to list
                tx_apertures.append(tx)

        self._tx_apertures = tx_apertures

        return field
Exemple #2
0
    def _field_default(self):

        field = mfield.MField()

        # initialize Field II with parameters
        field.field_init()
        field.set_field('c', self.c)
        field.set_field('fs', self.fs)
        field.set_field('use_att', self.use_att)
        field.set_field('att', self.att)
        field.set_field('freq_att', self.freq_att)
        field.set_field('att_f0', self.att_f0)

        # create excitation
        pulse, _ = util.gausspulse(self.excitation_fc, self.excitation_bw / self.excitation_fc, self.fs)
        self._pulse = pulse

        return field