implemented data inversion if sync_detector phifts its phase (detects negative values and inverts all raw data( * -1))
This commit is contained in:
@ -32,6 +32,9 @@ import numpy as np
|
|||||||
|
|
||||||
WF_WIDTH = 1000 # максимальное число точек в ряду водопада
|
WF_WIDTH = 1000 # максимальное число точек в ряду водопада
|
||||||
FFT_LEN = 1024 # длина БПФ для спектра/водопада спектров
|
FFT_LEN = 1024 # длина БПФ для спектра/водопада спектров
|
||||||
|
# Порог для инверсии сырых данных: если среднее значение свипа ниже порога —
|
||||||
|
# считаем, что сигнал «меньше нуля» и домножаем свип на -1
|
||||||
|
DATA_INVERSION_THRASHOLD = 10.0
|
||||||
|
|
||||||
|
|
||||||
def _parse_spec_clip(spec: Optional[str]) -> Optional[Tuple[float, float]]:
|
def _parse_spec_clip(spec: Optional[str]) -> Optional[Tuple[float, float]]:
|
||||||
@ -276,6 +279,13 @@ class SweepReader(threading.Thread):
|
|||||||
except Exception:
|
except Exception:
|
||||||
# В случае ошибки просто оставляем как есть
|
# В случае ошибки просто оставляем как есть
|
||||||
pass
|
pass
|
||||||
|
# Инверсия данных при «отрицательном» уровне (среднее ниже порога)
|
||||||
|
try:
|
||||||
|
m = float(np.nanmean(sweep))
|
||||||
|
if np.isfinite(m) and m < DATA_INVERSION_THRASHOLD:
|
||||||
|
sweep *= -1.0
|
||||||
|
except Exception:
|
||||||
|
pass
|
||||||
# Кладём готовый свип (если очередь полна — выбрасываем самый старый)
|
# Кладём готовый свип (если очередь полна — выбрасываем самый старый)
|
||||||
try:
|
try:
|
||||||
self._q.put_nowait(sweep)
|
self._q.put_nowait(sweep)
|
||||||
|
|||||||
Reference in New Issue
Block a user