#!/usr/bin/env python

import numpy as np
import matplotlib.pyplot as plt
from directionFinder_backend.correlator import Correlator
import scipy.signal
from mpl_toolkits.axes_grid1.inset_locator import zoomed_inset_axes
from mpl_toolkits.axes_grid1.inset_locator import mark_inset

if __name__ == '__main__':
    c = Correlator()
    c.fetch_time_domain_snapshot(force=True)

    time_domain_padding = 10
    fs = 800e6
    upsample_factor = 100 
    a_idx = 0 
    b_idx = 1 
    a = np.concatenate(
        (np.zeros(time_domain_padding),
         c.time_domain_signals[a_idx],
         np.zeros(time_domain_padding)))
    a_time = np.linspace(-(time_domain_padding/fs), 
                         (len(a)-time_domain_padding)/fs, 
                         len(a),
                         endpoint=False)
    b = c.time_domain_signals[b_idx]
    b_time = np.linspace(0,
                         len(b)/fs,
                         len(b),
                         endpoint=False)
        #axins.xaxis.set_ticks(np.arange(-0.4, 2.9, 0.4))
        axins.xaxis.set_ticks(np.arange(-0.4, 0.4, 0.2))
        mark_inset(ax, axins, loc1=2, loc2=3, fc='none', ec='0.5')

    plt.xticks(visible=True)
    plt.yticks(visible=False)
    ax.set_title(
        "Time domain cross correlations with broad band noise\n arriving through full RF chain AFTER calibration"
    )
    ax.set_xlabel("Time delay (ns)")
    ax.set_ylabel("Cross correlation value (normalised)")
    ax.legend(loc=2)
    #ax.legend()
    plt.show()


if __name__ == '__main__':
    logger = logging.getLogger('main')
    handler = logging.StreamHandler()
    colored_formatter = ColoredFormatter(
        "%(log_color)s%(asctime)s%(levelname)s:%(name)s:%(message)s")
    handler.setFormatter(colored_formatter)
    logger.addHandler(handler)
    logger.setLevel(logging.DEBUG)
    c = Correlator(logger=logger.getChild('correlator'))
    #c.apply_time_domain_calibration("./time_domain_calibration.json")
    #c.apply_cable_length_calibrations('../config/cable_length_calibration.json')
    c.fetch_time_domain_snapshot(force=True)
    do_calibration(c, write=False)
    plot_calibration(c, insert=True)
Example #3
0
        lines[3][idx].set_ydata(np.angle(cross[idx]))
    plt.pause(0.05)

if __name__ == '__main__':
    logger = logging.getLogger('main')
    handler = logging.StreamHandler()
    colored_formatter = ColoredFormatter("%(log_color)s%(asctime)s%(levelname)s:%(name)s:%(message)s")
    handler.setFormatter(colored_formatter)
    logger.addHandler(handler)
    logger.setLevel(logging.DEBUG)
    correlator = Correlator(logger = logger.getChild('correlator'))
    correlator.set_shift_schedule(0b00000000000)
    correlator.set_accumulation_len(40000)
    correlator.re_sync()
    correlator.fetch_autos()
    correlator.fetch_time_domain_snapshot(force=True)
    correlator.add_cable_length_calibrations('/home/jgowans/workspace/directionFinder_backend/config/cable_length_calibration.json')
    #correlator.apply_frequency_bin_calibrations('/home/jgowans/workspace/directionFinder_backend/config/frequency_domain_calibration_through_chain.json')
    correlator.add_frequency_bin_calibrations('/home/jgowans/workspace/directionFinder_backend/config/frequency_domain_calibration_direct_in_phase.json')
    created = False
    while True:
        time = []
        correlator.fetch_time_domain_snapshot(force=True)
        for antenna_idx in range(4):
            time.append(correlator.time_domain_signals[antenna_idx][0:2048])
        correlator.fetch_all()
        correlator.apply_frequency_domain_calibrations()
        frequency = [(correlator.frequency_correlations[(0,0)].signal)]
        frequency[0][0] = 0  # focing DC bin to 0. naughty... this should be done with ADC cal
        f = correlator.frequency_correlations[(0,1)].strongest_frequency()
        #ph = correlator.correlations[(0,1)].phase_at_freq(f)
Example #4
0

if __name__ == '__main__':
    logger = logging.getLogger('main')
    handler = logging.StreamHandler()
    colored_formatter = ColoredFormatter(
        "%(log_color)s%(asctime)s%(levelname)s:%(name)s:%(message)s")
    handler.setFormatter(colored_formatter)
    logger.addHandler(handler)
    logger.setLevel(logging.DEBUG)
    correlator = Correlator(logger=logger.getChild('correlator'))
    correlator.set_shift_schedule(0b00000000000)
    correlator.set_accumulation_len(40000)
    correlator.re_sync()
    correlator.fetch_autos()
    correlator.fetch_time_domain_snapshot(force=True)
    correlator.add_cable_length_calibrations(
        '/home/jgowans/workspace/directionFinder_backend/config/cable_length_calibration.json'
    )
    #correlator.apply_frequency_bin_calibrations('/home/jgowans/workspace/directionFinder_backend/config/frequency_domain_calibration_through_chain.json')
    correlator.add_frequency_bin_calibrations(
        '/home/jgowans/workspace/directionFinder_backend/config/frequency_domain_calibration_direct_in_phase.json'
    )
    created = False
    while True:
        time = []
        correlator.fetch_time_domain_snapshot(force=True)
        for antenna_idx in range(4):
            time.append(correlator.time_domain_signals[antenna_idx][0:2048])
        correlator.fetch_all()
        correlator.apply_frequency_domain_calibrations()