new fft
This commit is contained in:
@ -205,7 +205,11 @@ def run_pyqtgraph(args) -> None:
|
||||
bg_compute_cb = QtWidgets.QCheckBox("расчет фона")
|
||||
bg_subtract_cb = QtWidgets.QCheckBox("вычет фона")
|
||||
fft_bg_subtract_cb = QtWidgets.QCheckBox("FFT вычет фона")
|
||||
fft_symmetric_cb = QtWidgets.QCheckBox("симм. IFFT")
|
||||
fft_mode_label = QtWidgets.QLabel("IFFT режим")
|
||||
fft_mode_combo = QtWidgets.QComboBox()
|
||||
fft_mode_combo.addItem("Обычный", "direct")
|
||||
fft_mode_combo.addItem("Симметричный", "symmetric")
|
||||
fft_mode_combo.addItem("Нули [-max,+min]", "positive_only")
|
||||
peak_search_cb = QtWidgets.QCheckBox("поиск пиков")
|
||||
calib_group = QtWidgets.QGroupBox("Калибровка")
|
||||
calib_group_layout = QtWidgets.QVBoxLayout(calib_group)
|
||||
@ -240,7 +244,8 @@ def run_pyqtgraph(args) -> None:
|
||||
settings_layout.addWidget(bg_compute_cb)
|
||||
settings_layout.addWidget(bg_subtract_cb)
|
||||
settings_layout.addWidget(fft_bg_subtract_cb)
|
||||
settings_layout.addWidget(fft_symmetric_cb)
|
||||
settings_layout.addWidget(fft_mode_label)
|
||||
settings_layout.addWidget(fft_mode_combo)
|
||||
settings_layout.addWidget(peak_search_cb)
|
||||
|
||||
status = pg.LabelItem(justify="left")
|
||||
@ -250,7 +255,7 @@ def run_pyqtgraph(args) -> None:
|
||||
bg_compute_enabled = True
|
||||
bg_subtract_enabled = False
|
||||
fft_bg_subtract_enabled = False
|
||||
fft_symmetric_enabled = True
|
||||
fft_mode = "symmetric"
|
||||
status_note = ""
|
||||
status_dirty = True
|
||||
fixed_ylim: Optional[Tuple[float, float]] = None
|
||||
@ -444,26 +449,31 @@ def run_pyqtgraph(args) -> None:
|
||||
fft_bg_subtract_enabled = False
|
||||
runtime.mark_dirty()
|
||||
|
||||
def set_fft_symmetric_enabled() -> None:
|
||||
nonlocal fft_symmetric_enabled
|
||||
def set_fft_mode() -> None:
|
||||
nonlocal fft_mode
|
||||
try:
|
||||
fft_symmetric_enabled = bool(fft_symmetric_cb.isChecked())
|
||||
fft_mode = str(fft_mode_combo.currentData() or "symmetric")
|
||||
except Exception:
|
||||
fft_symmetric_enabled = True
|
||||
runtime.ring.set_symmetric_fft_enabled(fft_symmetric_enabled)
|
||||
fft_mode = "symmetric"
|
||||
runtime.ring.set_fft_mode(fft_mode)
|
||||
runtime.current_distances = runtime.ring.distance_axis
|
||||
runtime.current_fft_db = None
|
||||
set_status_note("IFFT: симметричный" if fft_symmetric_enabled else "IFFT: обычный")
|
||||
mode_label = {
|
||||
"direct": "IFFT: обычный",
|
||||
"symmetric": "IFFT: симметричный",
|
||||
"positive_only": "IFFT: нули [-max,+min]",
|
||||
}.get(fft_mode, f"IFFT: {fft_mode}")
|
||||
set_status_note(mode_label)
|
||||
update_physical_axes()
|
||||
runtime.mark_dirty()
|
||||
|
||||
try:
|
||||
bg_compute_cb.setChecked(True)
|
||||
fft_symmetric_cb.setChecked(True)
|
||||
fft_mode_combo.setCurrentIndex(1)
|
||||
except Exception:
|
||||
pass
|
||||
set_bg_compute_enabled()
|
||||
set_fft_symmetric_enabled()
|
||||
set_fft_mode()
|
||||
|
||||
try:
|
||||
calib_cb.stateChanged.connect(lambda _v: set_calib_enabled())
|
||||
@ -473,7 +483,7 @@ def run_pyqtgraph(args) -> None:
|
||||
bg_compute_cb.stateChanged.connect(lambda _v: set_bg_compute_enabled())
|
||||
bg_subtract_cb.stateChanged.connect(lambda _v: set_bg_subtract_enabled())
|
||||
fft_bg_subtract_cb.stateChanged.connect(lambda _v: set_fft_bg_subtract_enabled())
|
||||
fft_symmetric_cb.stateChanged.connect(lambda _v: set_fft_symmetric_enabled())
|
||||
fft_mode_combo.currentIndexChanged.connect(lambda _v: set_fft_mode())
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
@ -768,7 +778,7 @@ def run_pyqtgraph(args) -> None:
|
||||
sweep_for_fft,
|
||||
runtime.current_freqs,
|
||||
distance_axis.size,
|
||||
symmetric=fft_symmetric_enabled,
|
||||
mode=fft_mode,
|
||||
)
|
||||
fft_vals = runtime.current_fft_db
|
||||
xs_fft = distance_axis[: fft_vals.size]
|
||||
|
||||
Reference in New Issue
Block a user