23g: amplitude sweep attempt inconclusive (phase-stability control needed); scripts committed
This commit is contained in:
@@ -2381,3 +2381,10 @@ bands[] и DESIGN — искать его адрес в цепи до 52b550.
|
|||||||
полная форма G=log-домена: scr = c0 + ka·ln(am) + f(res).
|
полная форма G=log-домена: scr = c0 + ka·ln(am) + f(res).
|
||||||
2. Декод читателя 0x540668 (источник ×1.805) + детекторного IIR перед DESIGN.
|
2. Декод читателя 0x540668 (источник ×1.805) + детекторного IIR перед DESIGN.
|
||||||
3. RT_FIRCONV=1 транскрипция: G аппроксимировать таблично по этой серии.
|
3. RT_FIRCONV=1 транскрипция: G аппроксимировать таблично по этой серии.
|
||||||
|
|
||||||
|
### 23g (короткое): am-серия пока неинтерпретируема
|
||||||
|
t_{-24,-12,0,+24}.rpp (тон@1000, бин 85): scr85 = −1.0071 / −0.2276 / −0.4399 /
|
||||||
|
−1.0071 — НЕмонотонно по уровню; вероятная причина — steady() хватало разные
|
||||||
|
фазы (attack/стационар) или в t_* конфигах другая полоса. Данные в логе прогона;
|
||||||
|
повторить с контролем стабильности (несколько последних фаз подряд равны).
|
||||||
|
Скрипты qseries.py/amseries.py закоммичены.
|
||||||
|
|||||||
@@ -0,0 +1,45 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
"""amseries.py — amplitude sweep via rendersnap: scratch vs input level.
|
||||||
|
Gives ka = d(scr)/d(ln am) of the log-domain law."""
|
||||||
|
import glob
|
||||||
|
import subprocess
|
||||||
|
import sys
|
||||||
|
|
||||||
|
import numpy as np
|
||||||
|
|
||||||
|
CASES = [('t_-24', -24.0), ('t_-12', -12.0), ('t_0', 0.0), ('t_24', 24.0)]
|
||||||
|
|
||||||
|
|
||||||
|
def steady(tag):
|
||||||
|
fs = sorted(glob.glob('/tmp/opencode/rendersnap/phase*.npz'))
|
||||||
|
for f in fs[::-1]:
|
||||||
|
z = np.load(f)
|
||||||
|
sc = z['0x540628']
|
||||||
|
if sc[85] < -1e-4:
|
||||||
|
return float(sc[85]), float(sc[85])
|
||||||
|
return None
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
out = []
|
||||||
|
for tag, db in CASES:
|
||||||
|
rpp = f'/tmp/opencode/{tag}.rpp'
|
||||||
|
subprocess.run(['timeout', '100', 'python3',
|
||||||
|
'/home/m/re-tools/scripts/rendersnap.py', rpp],
|
||||||
|
stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
|
||||||
|
st = steady(tag)
|
||||||
|
if st:
|
||||||
|
out.append((db, st))
|
||||||
|
print(tag, db, 'scr43=%.4f scr171=%.4f' % st, flush=True)
|
||||||
|
else:
|
||||||
|
print(tag, 'NO STEADY', flush=True)
|
||||||
|
if len(out) >= 2:
|
||||||
|
(d1, s1), (d2, s2) = out[0], out[-1]
|
||||||
|
ka = (s2[0] - s1[0]) / ((d2 - d1) * np.log(10) / 20)
|
||||||
|
ka171 = (s2[1] - s1[1]) / ((d2 - d1) * np.log(10) / 20)
|
||||||
|
print('ka(d scr/d ln am) @85: %.4f' % ka)
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
main()
|
||||||
Reference in New Issue
Block a user