예제 #1
0
	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()
예제 #2
0
	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()
예제 #3
0
	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()
예제 #4
0
    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()
예제 #5
0
    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()
예제 #6
0
    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()
예제 #7
0
	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()
예제 #8
0
	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()
예제 #9
0
    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()