Finished (:D) fig_invariance_log_hp.pdf.

Added movable label string to time_bar().
This commit is contained in:
j-hartling
2026-03-23 15:38:49 +01:00
parent a276883454
commit dc4443aa17
18 changed files with 389 additions and 247 deletions

View File

@@ -12,7 +12,7 @@ save_path = '../data/inv/noise_env/'
# ANALYSIS SETTINGS:
scales = np.geomspace(0.1, 10000, 200)
sd_inputs = np.arange(10.9, 11.1, 0.01)
sd_inputs = np.array([1.0])
n_trials = 10
tol_to_one = 0.1
@@ -32,15 +32,16 @@ signal /= signal[segment].std()
signal = signal[:, None] * scales[None, :]
# Prepare storage:
current_match = 0
storage = dict(
scales=scales,
n_trials=n_trials,
sd_factor=np.array([0.]),
trials=np.zeros((scales.size, n_trials), dtype=float),
mean=np.zeros(scales.size, dtype=float),
spread=np.zeros(scales.size, dtype=float),
)
if sd_inputs.size > 1:
current_match = 0
storage = dict(
scales=scales,
n_trials=n_trials,
sd_factor=np.array([0.]),
trials=np.zeros((scales.size, n_trials), dtype=float),
mean=np.zeros(scales.size, dtype=float),
spread=np.zeros(scales.size, dtype=float),
)
# Analyze piece-wise:
rng = np.random.default_rng()
@@ -59,7 +60,22 @@ for i, sigma in enumerate(sd_inputs):
# Estimate noise SD:
sd = mix.std(axis=0)
# Average SD over trials:
mean_sd = sd.mean(axis=-1)
# Log single-run results:
if sd_inputs.size == 1:
storage = dict(
scales=scales,
n_trials=n_trials,
sd_factor=sigma,
trials=sd,
mean=mean_sd,
spread=sd.std(axis=-1),
)
break
# Update multi-run results if better than previous:
n_match = (np.abs(1 - mean_sd) <= tol_to_one).sum()
if n_match > current_match:
print(f'Found better SD: {sigma:.3f} with {n_match} matches (previous: {current_match})')
@@ -70,13 +86,10 @@ for i, sigma in enumerate(sd_inputs):
current_match = n_match
del mix
del signal
if save_path is not None:
np.savez(save_path + 'sd_conversion.npz', **storage)
plt.plot(scales, storage['mean'], 'k')
plt.show()
embed()
print('Done.')
embed()