#!/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)
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)
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()