correlator.impulse_arm()

    fig = plt.figure()
    axes = [[], []]

    axes[0].append(fig.add_subplot(2, 4, 1))
    axes[0].append(fig.add_subplot(2, 4, 2, sharex=axes[0][0], sharey=axes[0][0]))
    axes[0].append(fig.add_subplot(2, 4, 3, sharex=axes[0][0], sharey=axes[0][0]))
    axes[0].append(fig.add_subplot(2, 4, 4, sharex=axes[0][0], sharey=axes[0][0]))
    axes[0][0].set_ylim([-130, 130])

    axes[1].append(fig.add_subplot(2, 1, 2))


    while True:
        logger.info("Impulse level: {}".format(correlator.get_current_impulse_level()))
        if correlator.impulse_fetch() == True:
            for ax_idx in range(len(axes[0])):
                axes[0][ax_idx].cla()
                axes[0][ax_idx].plot(correlator.time_domain_axis * 1e6, correlator.time_domain_signals[ax_idx])
            correlator.do_time_domain_cross_correlation()
            axes[1][0].cla()
            for baseline in correlator.cross_combinations:
                axes[1][0].plot(
                    correlator.time_domain_correlations_times[baseline],
                    correlator.time_domain_correlations_values[baseline],
                    marker = '.')
            logger.info(correlator.time_domain_cross_correlations_peaks)
            logger.info(correlator.visibilities_from_time())
            plt.pause(0.05)
        time.sleep(0.5)
    handler.setFormatter(colored_formatter)
    handler.setLevel(logging.DEBUG)

    root = logging.getLogger()
    root.addHandler(handler)
    root.setLevel(logging.INFO)

    logger = logging.getLogger('main')
    logger.propagate = False
    logger.addHandler(handler)
    logger.setLevel(logging.INFO)

    correlator = Correlator(logger = logger.getChild('correlator'))
    time.sleep(1)
    correlator.set_impulse_filter_len(100)
    correlator.set_impulse_setpoint(100)
    correlator.add_time_domain_calibration('/home/jgowans/workspace/directionFinder_backend/bin/time_domain_calibration.json')
    correlator.re_sync()
    correlator.impulse_arm()

    impulse_levels = []

    for _ in range(1000):
        impulse_levels.append(
            correlator.get_current_impulse_level())
        #time.sleep(0.01)

    logger.info("Mean: {}".format(np.mean(impulse_levels)))
    logger.info("Std dev: {}".format(np.std(impulse_levels)))
    logger.info("Max: {}".format(np.max(impulse_levels)))
    axes = [[], []]

    axes[0].append(fig.add_subplot(2, 4, 1))
    axes[0].append(
        fig.add_subplot(2, 4, 2, sharex=axes[0][0], sharey=axes[0][0]))
    axes[0].append(
        fig.add_subplot(2, 4, 3, sharex=axes[0][0], sharey=axes[0][0]))
    axes[0].append(
        fig.add_subplot(2, 4, 4, sharex=axes[0][0], sharey=axes[0][0]))
    axes[0][0].set_ylim([-130, 130])

    axes[1].append(fig.add_subplot(2, 1, 2))

    while True:
        logger.info("Impulse level: {}".format(
            correlator.get_current_impulse_level()))
        if correlator.impulse_fetch() == True:
            for ax_idx in range(len(axes[0])):
                axes[0][ax_idx].cla()
                axes[0][ax_idx].plot(correlator.time_domain_axis * 1e6,
                                     correlator.time_domain_signals[ax_idx])
            correlator.do_time_domain_cross_correlation()
            axes[1][0].cla()
            for baseline in correlator.cross_combinations:
                axes[1][0].plot(
                    correlator.time_domain_correlations_times[baseline],
                    correlator.time_domain_correlations_values[baseline],
                    marker='.')
            logger.info(correlator.time_domain_cross_correlations_peaks)
            logger.info(correlator.visibilities_from_time())
            plt.pause(0.05)
    handler.setLevel(logging.DEBUG)

    root = logging.getLogger()
    root.addHandler(handler)
    root.setLevel(logging.INFO)

    logger = logging.getLogger('main')
    logger.propagate = False
    logger.addHandler(handler)
    logger.setLevel(logging.INFO)

    correlator = Correlator(logger=logger.getChild('correlator'))
    time.sleep(1)
    correlator.set_impulse_filter_len(100)
    correlator.set_impulse_setpoint(100)
    correlator.add_time_domain_calibration(
        '/home/jgowans/workspace/directionFinder_backend/bin/time_domain_calibration.json'
    )
    correlator.re_sync()
    correlator.impulse_arm()

    impulse_levels = []

    for _ in range(1000):
        impulse_levels.append(correlator.get_current_impulse_level())
        #time.sleep(0.01)

    logger.info("Mean: {}".format(np.mean(impulse_levels)))
    logger.info("Std dev: {}".format(np.std(impulse_levels)))
    logger.info("Max: {}".format(np.max(impulse_levels)))