diff --git a/rfg_adc_plotter/processing/fourier.py b/rfg_adc_plotter/processing/fourier.py index 8dc3a2c..d99fe68 100644 --- a/rfg_adc_plotter/processing/fourier.py +++ b/rfg_adc_plotter/processing/fourier.py @@ -163,7 +163,7 @@ def reconstruct_complex_spectrum_diff(sweep: np.ndarray) -> np.ndarray: mask = mag > _EPS if np.any(mask): z_unit[mask] = z[mask] / mag[mask] - return mag + return z_unit def reconstruct_complex_spectrum_from_real_trace( @@ -284,7 +284,7 @@ def compute_ifft_profile_from_sweep( n = min(depth_m.size, y.size) if n <= 0: return _fallback_depth_response(s.size, s) - return depth_m[:n].astype(np.float32, copy=False), y[:n].astype(np.float32, copy=False) # log10 для лучшей визуализации в водопаде + return depth_m[:n].astype(np.float32, copy=False), np.maximum(y[:n], 1e-12).astype(np.float32, copy=False) # log10 для лучшей визуализации в водопаде except Exception as exc: # noqa: BLE001 logger.error("compute_ifft_profile_from_sweep failed: %r", exc) return _fallback_depth_response(np.asarray(sweep).size if sweep is not None else 1, sweep) @@ -294,4 +294,3 @@ def compute_ifft_db_profile(sweep: Optional[np.ndarray]) -> np.ndarray: """Legacy wrapper (deprecated name): возвращает линейный |IFFT| профиль.""" _depth_m, y = compute_ifft_profile_from_sweep(sweep, complex_mode="arccos") return y -