fix calib
This commit is contained in:
@ -156,17 +156,12 @@ def normalize_by_envelope(raw: np.ndarray, envelope: np.ndarray) -> np.ndarray:
|
||||
|
||||
env = resample_envelope(envelope, raw_arr.size)
|
||||
out = np.full_like(raw_arr, np.nan, dtype=np.float32)
|
||||
|
||||
finite_env = np.abs(env[np.isfinite(env)])
|
||||
if finite_env.size > 0:
|
||||
eps = max(float(np.median(finite_env)) * 1e-6, 1e-9)
|
||||
else:
|
||||
eps = 1e-9
|
||||
|
||||
valid = np.isfinite(raw_arr) & np.isfinite(env) & (np.abs(env) > eps)
|
||||
den_eps = np.float32(1e-9)
|
||||
valid = np.isfinite(raw_arr) & np.isfinite(env)
|
||||
if np.any(valid):
|
||||
with np.errstate(divide="ignore", invalid="ignore"):
|
||||
out[valid] = raw_arr[valid] / env[valid]
|
||||
denom = env[valid] + np.where(env[valid] >= 0.0, den_eps, -den_eps)
|
||||
out[valid] = raw_arr[valid] / denom
|
||||
return np.nan_to_num(out, nan=np.nan, posinf=np.nan, neginf=np.nan)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user