From 657da0d2859386db8944b450fa22b8248721842a Mon Sep 17 00:00:00 2001 From: Theodor Chikin Date: Sun, 21 Dec 2025 17:10:41 +0300 Subject: [PATCH] implemented data inversion if sync_detector phifts its phase (detects negative values and inverts all raw data( * -1)) --- RFG_ADC_dataplotter.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/RFG_ADC_dataplotter.py b/RFG_ADC_dataplotter.py index d735917..17148fd 100755 --- a/RFG_ADC_dataplotter.py +++ b/RFG_ADC_dataplotter.py @@ -32,6 +32,9 @@ import numpy as np WF_WIDTH = 1000 # максимальное число точек в ряду водопада FFT_LEN = 1024 # длина БПФ для спектра/водопада спектров +# Порог для инверсии сырых данных: если среднее значение свипа ниже порога — +# считаем, что сигнал «меньше нуля» и домножаем свип на -1 +DATA_INVERSION_THRASHOLD = 10.0 def _parse_spec_clip(spec: Optional[str]) -> Optional[Tuple[float, float]]: @@ -276,6 +279,13 @@ class SweepReader(threading.Thread): except Exception: # В случае ошибки просто оставляем как есть pass + # Инверсия данных при «отрицательном» уровне (среднее ниже порога) + try: + m = float(np.nanmean(sweep)) + if np.isfinite(m) and m < DATA_INVERSION_THRASHOLD: + sweep *= -1.0 + except Exception: + pass # Кладём готовый свип (если очередь полна — выбрасываем самый старый) try: self._q.put_nowait(sweep)