|
|
|
@ -13,7 +13,7 @@ class DataBuffer:
|
|
|
|
num_of_thinning_iter: Прореживающий множитель. Раз в это количечество раз будет обнволяться столбец буфера.
|
|
|
|
num_of_thinning_iter: Прореживающий множитель. Раз в это количечество раз будет обнволяться столбец буфера.
|
|
|
|
line_size: Количество строк буфера = количеству каналов.
|
|
|
|
line_size: Количество строк буфера = количеству каналов.
|
|
|
|
columns_size: Количество столбцов = фиксированное число.
|
|
|
|
columns_size: Количество столбцов = фиксированное число.
|
|
|
|
multiply_factor: Прцоентный показатель превышения сигналом уровня шума. ex m_p = 1.1 => триггер, если
|
|
|
|
multiply_factor: Процентный показатель превышения сигналом уровня шума. ex m_p = 1.1 => триггер, если
|
|
|
|
сигнал превышает шум на 10%.
|
|
|
|
сигнал превышает шум на 10%.
|
|
|
|
num_for_alarm: Количество раз, превышающих шум, при которых триггеримся = фиксированное число.
|
|
|
|
num_for_alarm: Количество раз, превышающих шум, при которых триггеримся = фиксированное число.
|
|
|
|
is_init: Флаг инициализации буфера. = True, если инициализирован.
|
|
|
|
is_init: Флаг инициализации буфера. = True, если инициализирован.
|
|
|
|
@ -71,7 +71,7 @@ class DataBuffer:
|
|
|
|
if self.check_init():
|
|
|
|
if self.check_init():
|
|
|
|
for i in range(self.line_size):
|
|
|
|
for i in range(self.line_size):
|
|
|
|
self.buffer_medians[i] = statistics.median(self.buffer[i])
|
|
|
|
self.buffer_medians[i] = statistics.median(self.buffer[i])
|
|
|
|
# print('meidans is: ', self.buffer_medians)
|
|
|
|
# print('medians is: ', self.buffer_medians)
|
|
|
|
# return self.buffer_medians
|
|
|
|
# return self.buffer_medians
|
|
|
|
|
|
|
|
|
|
|
|
def alarms_fill_zeros(self):
|
|
|
|
def alarms_fill_zeros(self):
|
|
|
|
@ -130,9 +130,11 @@ class DataBuffer:
|
|
|
|
:return: Да/нет.
|
|
|
|
:return: Да/нет.
|
|
|
|
"""
|
|
|
|
"""
|
|
|
|
if self.check_init():
|
|
|
|
if self.check_init():
|
|
|
|
|
|
|
|
ratios=[]
|
|
|
|
|
|
|
|
print("="*50)
|
|
|
|
for i in range(len(data)):
|
|
|
|
for i in range(len(data)):
|
|
|
|
exceeding = data[i] > self.multiply_factor * self.buffer_medians[i]
|
|
|
|
exceeding = data[i] > self.multiply_factor * self.buffer_medians[i]
|
|
|
|
print(data[i]/self.buffer_medians[i])
|
|
|
|
ratios.append(data[i]/self.buffer_medians[i])
|
|
|
|
if exceeding:
|
|
|
|
if exceeding:
|
|
|
|
self.buffer_alarms[i] += 1
|
|
|
|
self.buffer_alarms[i] += 1
|
|
|
|
# print('Инкремент буффер алармов по каналу {0}, текущее число по этому каналу: {1}'.format(i,self.buffer_alarms[i]))
|
|
|
|
# print('Инкремент буффер алармов по каналу {0}, текущее число по этому каналу: {1}'.format(i,self.buffer_alarms[i]))
|
|
|
|
@ -143,7 +145,12 @@ class DataBuffer:
|
|
|
|
if self.buffer_alarms[i] >= self.num_for_alarm:
|
|
|
|
if self.buffer_alarms[i] >= self.num_for_alarm:
|
|
|
|
# print('Сработала тревога по каналу {0}, текущее число по этому каналу: {1}'.format(i,self.buffer_alarms[i]))
|
|
|
|
# print('Сработала тревога по каналу {0}, текущее число по этому каналу: {1}'.format(i,self.buffer_alarms[i]))
|
|
|
|
self.buffer_alarms = [0] * self.line_size
|
|
|
|
self.buffer_alarms = [0] * self.line_size
|
|
|
|
|
|
|
|
print("Отношения:", [f"{r:.3f}" for r in ratios])
|
|
|
|
|
|
|
|
print("!"*50)
|
|
|
|
return True
|
|
|
|
return True
|
|
|
|
|
|
|
|
print("Отношения:", [f"{r:.3f}" for r in ratios])
|
|
|
|
|
|
|
|
print("="*50)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return False
|
|
|
|
return False
|
|
|
|
|
|
|
|
|
|
|
|
|