def __init__(self, rcvd_data, sens_per_sec, tune_freq, channel_space, search_bw, fft_len, sample_rate, thr_leveler, alpha_avg, test_duration, trunc_band, verbose, logger): _threading.Thread.__init__(self) self.setDaemon(1) self.rcvd_data = rcvd_data self.sens_per_sec = sens_per_sec self.tune_freq = tune_freq self.channel_space = channel_space self.search_bw = search_bw self.fft_len = fft_len self.sample_rate = sample_rate self.thr_leveler = thr_leveler self.noise_estimate = 1e-11 self.alpha_avg = alpha_avg self.test_duration = test_duration self.trunc_band = trunc_band self.trunc = sample_rate-trunc_band self.trunc_ch = int(self.trunc/self.channel_space)/2 self.Fr = float(self.sample_rate)/float(self.fft_len) #freq resolution self.Fstart = self.tune_freq - self.sample_rate/2 #start freq self.Ffinish = self.tune_freq + self.sample_rate/2 #end freq self.bb_freqs = frange(-self.sample_rate/2, self.sample_rate/2, self.channel_space) #baseband freqs self.srch_bins = self.search_bw/self.Fr #binwidth for search self.ax_ch = frange(self.Fstart, self.Ffinish, self.channel_space) #subject channels if self.trunc > 0: self.ax_ch = self.ax_ch[self.trunc_ch:-self.trunc_ch] #trunked subject channels self.verbose = verbose self.logger = logger self.keep_running = True self.start()
def __init__(self, rcvd_data, sens_per_sec, tune_freq, channel_space, search_bw, fft_len, sample_rate, trunc_band, verbose, data_queue): _threading.Thread.__init__(self) self.setDaemon(1) self.rcvd_data = rcvd_data self.sens_per_sec = sens_per_sec self.tune_freq = tune_freq self.channel_space = channel_space self.search_bw = search_bw self.fft_len = fft_len self.sample_rate = sample_rate self.trunc_band = trunc_band self.trunc = sample_rate-trunc_band self.trunc_ch = int(self.trunc/self.channel_space)/2 self.Fr = float(self.sample_rate)/float(self.fft_len) #freq resolution self.Fstart = self.tune_freq - self.sample_rate/2 #start freq self.Ffinish = self.tune_freq + self.sample_rate/2 #end freq self.bb_freqs = frange(-self.sample_rate/2, self.sample_rate/2, self.channel_space) #baseband freqs self.srch_bins = self.search_bw/self.Fr #binwidth for search self.ax_ch = frange(self.Fstart, self.Ffinish, self.channel_space) #subject channels if self.trunc > 0: self.ax_ch = self.ax_ch[self.trunc_ch:-self.trunc_ch] #trunked subject channels self.plc = np.array([0.0]*len(self.ax_ch)) self.data_queue = data_queue self.verbose = verbose self.keep_running = True self.start()
def __init__(self, rcvd_data, sens_per_sec, tune_freq, channel_space, search_bw, fft_len, sample_rate, thr_leveler, alpha_avg, test_duration, trunc_band, verbose, peak_alpha, subject_channels, logger): _threading.Thread.__init__(self) self.setDaemon(1) self.rcvd_data = rcvd_data self.sens_per_sec = sens_per_sec self.tune_freq = tune_freq self.channel_space = channel_space self.search_bw = search_bw self.fft_len = fft_len self.sample_rate = sample_rate self.thr_leveler = thr_leveler self.noise_estimate = 1e-11 self.alpha_avg = alpha_avg self.test_duration = test_duration self.trunc_band = trunc_band self.trunc = sample_rate - trunc_band self.trunc_ch = int(self.trunc / self.channel_space) / 2 self.Fr = float(self.sample_rate) / float( self.fft_len) #freq resolution self.Fstart = self.tune_freq - self.sample_rate / 2 #start freq self.Ffinish = self.tune_freq + self.sample_rate / 2 #end freq self.bb_freqs = frange(-self.sample_rate / 2, self.sample_rate / 2, self.channel_space) #baseband freqs self.srch_bins = self.search_bw / self.Fr #binwidth for search self.ax_ch = frange(self.Fstart, self.Ffinish, self.channel_space) #subject channels if self.trunc > 0: self.ax_ch = self.ax_ch[self.trunc_ch: -self.trunc_ch] #trunked subject channels self.subject_channels = subject_channels # list of channels to be analysed by the flanck detector self.idx_subject_channels = [0] * len( self.subject_channels) # aux list to index ax_ch k = 0 for channel in subject_channels: self.idx_subject_channels[k] = self.ax_ch.index(channel) k += 1 self.prev_power = np.array([1.0] * len(self.subject_channels)) self.curr_power = np.array([1.0] * len(self.subject_channels)) self.flag = [True] * len( self.subject_channels ) #initial condition - high level (starts in pseudo-detection) self.peak_alpha = np.array( [0.0] * len(self.subject_channels) ) #initial condition (starts in pseudo-detection) self.peak_alpha_original = peak_alpha #save original alpha to reset peak_alpha when negative flanck is detected self.verbose = verbose self.logger = logger self.keep_running = True self.start()
def __init__(self, rcvd_data, sens_per_sec, tune_freq, channel_space, search_bw, fft_len, sample_rate, trunc_band, verbose, subject_channels, set_freqs, output_data): _threading.Thread.__init__(self) self.setDaemon(1) self.rcvd_data = rcvd_data self.sens_per_sec = sens_per_sec self.tune_freq = tune_freq self.channel_space = channel_space self.search_bw = search_bw self.fft_len = fft_len self.sample_rate = sample_rate self.trunc_band = trunc_band self.trunc = sample_rate - trunc_band self.trunc_ch = int(self.trunc / self.channel_space) / 2 self.subject_channels = subject_channels self.set_freqs = set_freqs self.output_data = output_data self.Fr = float(self.sample_rate) / float( self.fft_len) #freq resolution self.Fstart = self.tune_freq - self.sample_rate / 2 #start freq self.Ffinish = self.tune_freq + self.sample_rate / 2 #end freq self.bb_freqs = frange(-self.sample_rate / 2, self.sample_rate / 2, self.channel_space) #baseband freqs self.srch_bins = self.search_bw / self.Fr #binwidth for search self.ax_ch = frange(self.Fstart, self.Ffinish, self.channel_space) #subject channels if self.trunc > 0: self.ax_ch = self.ax_ch[self.trunc_ch: -self.trunc_ch] #trunked subject channels self.plc = np.array([0.0] * len(self.ax_ch)) self.subject_channels = subject_channels # list of channels to be analysed by the flanck detector self.idx_subject_channels = [0] * len( self.subject_channels) # aux list to index ax_ch k = 0 for channel in subject_channels: self.idx_subject_channels[k] = self.ax_ch.index(channel) k += 1 self.subject_channels_pwr = np.array([1.0] * len(self.subject_channels)) self.verbose = verbose self.keep_running = True self.start()
def __init__(self, data_queue, sample_rate, tune_freq, fft_len, trunc_band, channel_space, search_bw, output, subject_channels, top4, set_freqs): _threading.Thread.__init__(self) self.setDaemon(1) self.data_queue = data_queue self.fft_len = fft_len self.sample_rate = sample_rate self.tune_freq = tune_freq self.fft_len = fft_len self.channel_space = channel_space self.search_bw = search_bw self.output = output self.top4 = top4 self.set_freqs = set_freqs self.trunc_band = trunc_band self.trunc = sample_rate - trunc_band self.trunc_ch = int(self.trunc / self.channel_space) / 2 self.Fr = float(self.sample_rate) / float( self.fft_len) #freq resolution self.Fstart = self.tune_freq - self.sample_rate / 2 #start freq self.Ffinish = self.tune_freq + self.sample_rate / 2 #end freq self.bb_freqs = frange(-self.sample_rate / 2, self.sample_rate / 2, self.channel_space) #baseband freqs self.srch_bins = self.search_bw / self.Fr #binwidth for search self.ax_ch = frange(self.Fstart, self.Ffinish, self.channel_space) #subject channels if self.trunc > 0: self.ax_ch = self.ax_ch[self.trunc_ch: -self.trunc_ch] #trunked subject channels self.subject_channels = subject_channels # list of channels to be analysed by the flanck detector self.idx_subject_channels = [0] * len( self.subject_channels) # aux list to index ax_ch k = 0 for channel in subject_channels: self.idx_subject_channels[k] = self.ax_ch.index(channel) k += 1 self.subject_channels_pwr = np.array([1.0] * len(self.subject_channels)) self.state = None self.keep_running = True #set to False to stop thread's main loop self.gnuplot = subprocess.Popen(["/usr/bin/gnuplot"], stdin=subprocess.PIPE) self.start()
def __init__(self, rcvd_data, sens_per_sec, tune_freq, channel_space, search_bw, fft_len, sample_rate, thr_leveler, alpha_avg, test_duration, trunc_band, verbose, peak_alpha, subject_channels, logger): _threading.Thread.__init__(self) self.setDaemon(1) self.rcvd_data = rcvd_data self.sens_per_sec = sens_per_sec self.tune_freq = tune_freq self.channel_space = channel_space self.search_bw = search_bw self.fft_len = fft_len self.sample_rate = sample_rate self.thr_leveler = thr_leveler self.noise_estimate = 1e-11 self.alpha_avg = alpha_avg self.test_duration = test_duration self.trunc_band = trunc_band self.trunc = sample_rate-trunc_band self.trunc_ch = int(self.trunc/self.channel_space)/2 self.Fr = float(self.sample_rate)/float(self.fft_len) #freq resolution self.Fstart = self.tune_freq - self.sample_rate/2 #start freq self.Ffinish = self.tune_freq + self.sample_rate/2 #end freq self.bb_freqs = frange(-self.sample_rate/2, self.sample_rate/2, self.channel_space) #baseband freqs self.srch_bins = self.search_bw/self.Fr #binwidth for search self.ax_ch = frange(self.Fstart, self.Ffinish, self.channel_space) #subject channels if self.trunc > 0: self.ax_ch = self.ax_ch[self.trunc_ch:-self.trunc_ch] #trunked subject channels self.subject_channels = subject_channels # list of channels to be analysed by the flanck detector self.idx_subject_channels = [0]*len(self.subject_channels) # aux list to index ax_ch k = 0 for channel in subject_channels: self.idx_subject_channels[k] = self.ax_ch.index(channel) k += 1 self.prev_power = np.array([1.0]*len(self.subject_channels)) self.curr_power = np.array([1.0]*len(self.subject_channels)) self.flag = [True]*len(self.subject_channels) #initial condition - high level (starts in pseudo-detection) self.peak_alpha = np.array([0.0]*len(self.subject_channels)) #initial condition (starts in pseudo-detection) self.peak_alpha_original = peak_alpha #save original alpha to reset peak_alpha when negative flanck is detected self.verbose = verbose self.logger = logger self.keep_running = True self.start()
def __init__(self, data_queue, sample_rate, tune_freq, fft_len, trunc_band, channel_space, search_bw, output, subject_channels, top4, set_freqs): _threading.Thread.__init__(self) self.setDaemon(1) self.data_queue = data_queue self.fft_len = fft_len self.sample_rate = sample_rate self.tune_freq = tune_freq self.fft_len = fft_len self.channel_space = channel_space self.search_bw = search_bw self.output = output self.top4 = top4 self.set_freqs = set_freqs self.trunc_band = trunc_band self.trunc = sample_rate-trunc_band self.trunc_ch = int(self.trunc/self.channel_space)/2 self.Fr = float(self.sample_rate)/float(self.fft_len) #freq resolution self.Fstart = self.tune_freq - self.sample_rate/2 #start freq self.Ffinish = self.tune_freq + self.sample_rate/2 #end freq self.bb_freqs = frange(-self.sample_rate/2, self.sample_rate/2, self.channel_space) #baseband freqs self.srch_bins = self.search_bw/self.Fr #binwidth for search self.ax_ch = frange(self.Fstart, self.Ffinish, self.channel_space) #subject channels if self.trunc > 0: self.ax_ch = self.ax_ch[self.trunc_ch:-self.trunc_ch] #trunked subject channels self.subject_channels = subject_channels # list of channels to be analysed by the flanck detector self.idx_subject_channels = [0]*len(self.subject_channels) # aux list to index ax_ch k = 0 for channel in subject_channels: self.idx_subject_channels[k] = self.ax_ch.index(channel) k += 1 self.subject_channels_pwr = np.array([1.0]*len(self.subject_channels)) self.state = None self.keep_running = True #set to False to stop thread's main loop self.gnuplot = subprocess.Popen(["/usr/bin/gnuplot"], stdin=subprocess.PIPE) self.start()
def __init__(self, rcvd_data, sens_per_sec, tune_freq, channel_space, search_bw, fft_len, sample_rate, trunc_band, verbose, data_queue): _threading.Thread.__init__(self) self.setDaemon(1) self.rcvd_data = rcvd_data self.sens_per_sec = sens_per_sec self.tune_freq = tune_freq self.channel_space = channel_space self.search_bw = search_bw self.fft_len = fft_len self.sample_rate = sample_rate self.trunc_band = trunc_band self.trunc = sample_rate - trunc_band self.trunc_ch = int(self.trunc / self.channel_space) / 2 self.Fr = float(self.sample_rate) / float( self.fft_len) #freq resolution self.Fstart = self.tune_freq - self.sample_rate / 2 #start freq self.Ffinish = self.tune_freq + self.sample_rate / 2 #end freq self.bb_freqs = frange(-self.sample_rate / 2, self.sample_rate / 2, self.channel_space) #baseband freqs self.srch_bins = self.search_bw / self.Fr #binwidth for search self.ax_ch = frange(self.Fstart, self.Ffinish, self.channel_space) #subject channels if self.trunc > 0: self.ax_ch = self.ax_ch[self.trunc_ch: -self.trunc_ch] #trunked subject channels self.plc = np.array([0.0] * len(self.ax_ch)) self.data_queue = data_queue self.verbose = verbose self.keep_running = True self.start()