目录 / 文档-技术白皮书 / 29-EFT.WP.TBN.Measurement v1.0
一句话目标:提供 TBN 计量从数学基线→采集→估计→时延与修正→仪器计量→频谱/时域一致→解析/观测/锚→不确定度→运行的清单化发布模板与样例,统一两口径并行 + 同窗同带宽同单位 + 量纲合规 + RefCond 可追溯与签名/回放流程。
I. 范围与对象
- 对象:分域清单 manifest.tbn.{baseline,frontend,estimator,delay,corr,anchor,u,contracts,rt} 与端到端聚合清单 manifest.tbn.
- 输入:第2–15章 M50-* 产物、contracts.*、uncertainty.*、运行面板与证据 URI。
- 输出:可签名、可回放的 JSON/CBOR 文档;端到端清单包含分清单的 URI/哈希引用。
II. 命名与版本
- manifest.kind = "EFT.TBN.Measurement.Manifest";semver = "1.0.0";schema_uri = "urn:eft:tbn:schema:1.0.0"。
- 分域命名与章节一一对应:baseline(第2章) / frontend(第3) / estimator(第4–5) / delay(第6) / corr(第7) / inst(第8, 可选并入 delay) / consistency(第9) / anchor(第10) / u(第11) / contracts(第12) / rt(第13)。
- 签名链:对规范化内容(见 VIII)计算 digest 并签名到 signature;任何变更形成新版本与新签名。
III. 最小键集与量纲约束(核心域)
- 顶层必备:TraceID, ts, RefCond.hash, sources.hashes[], contracts, uncertainty, artifacts, signature。
- 两口径统一字段(跨域复用)
- TarrForms = {form1, form2, delta_form, tol, unit:"s", dim:"[T]"}(第2章两口径)
- two_form(metric) = {pred|config.value, meas.value, delta_form, tol}(如 S_y 残差、在线 delta_form_rt 等)
- 单位/量纲
所有数值字段必须具备 unit(field) 与 dim(field) 且 check_dim( y - f(x) ) 通过;对数量↔线性(dB↔linear、rad↔cycle)映射写入 scale.note。 - 窗口/带宽
必含:window_fn, RBW, ENBW, W=[ts-Δt,ts];不同域之间必须一致或显式转换链可追溯。
IV. 各分域最小键
- baseline(第2章)
{"window":{Δt,window_fn}, "bandwidth":{RBW,ENBW}, "spectra":{"S_phi","S_y"}, "stats":{"sigma_y(τ)"},"Tarr":TarrForms,"latency":{"lat_*"}, "scale.note"} - frontend(第3章)
{"ADC":{Fs,N,ENOB,jitter}, "AFE":{gain,BW,ENBW}, "trig":{type,jitter}, "refclk":{offset,skew,J_model}, "cross_channel":{delay,phase}, "spectra_guard":{"S_phi,j","S_y,j"}, "Tarr_support":{"timebase","u(delta_form|front-end)"}} - estimator(第4–5章)
{"method": "PLL|IQ|FFT|Hilbert", "cfg":{…}, "window":{Δt,window_fn,RBW,ENBW}, "outputs":{"phi","f_inst","y"}, "spectra":{"S_phi","S_y"}, "stats":{"sigma_y(τ)","ν_eff","U"}, "crlb":{"var_min"}, "residuals":{"var_emp"}} - delay(第6章)
{"method":"2way|1way|peer|triangle|loop", "timestamps":{t1..t4}|{"pairs":{τ_AB,τ_BA,…}}, "results":{"T_1way","T_2way","ΔT_asym","lat_total","lat_*"}, "jitter":{"S_t","σ_t"}, "Tarr":{TarrForms,"T_arr*"}} - corr(第7章)
{"sources":{"met.hash","iono.hash","TEC.hash","n_field.hash","segments.hash"}, "window":{W,Δt,Δx}, "corr":{"ΔT_trop","ΔT_iono","ΔT_fiber","ΔT_mpath","ΔT_med"}, "multipath":{"MER","MP_res","ĥ.hash"}, "mapping":{"ΔT_map","u(ΔT_map)"}, "Tarr":{TarrForms,"T_arr*"}} - consistency(第9章)
{"window":{W, w, RBW, ENBW}, "mapping":{"dir","model","κ_mod"}, "spectra":{"S_phi","S_y","S_t"}, "time":{"σ_φ","σ_t","t_open","ΔT_obs"}, "evm":{"pred","meas"}, "Tarr":{TarrForms,"T_arr*"}} - anchor(第10章)
{"compare":{"resid_*","u(resid)"},"anchor":{"type","params","Δbias/scale"},"replay":{"core":{"raw|downsampled","window","RBW","ENBW","method/cfg","RefCond.hash","path.hash"}, "scripts.hash"},"Tarr":{TarrForms,"T_arr*"}} - u(第11章)
{"targets":{"y","S_phi","S_y","sigma_y","T_arr*","lat_*","delta_form","ΔT_map","ΔT_obs"},"u":{"u_c","U","nu_eff","method","ρ"},"sources":{"V_ξ","approx"},"constraints":{…}} - contracts(第12章)
{"rules":[{rule_id,sev,metric,threshold,window,pass,evidence_uri}], "metrics":{"Q","Int","Sec"}, "thresholds_uri", "decisions":{"cards","actions","verify"} } - rt(第13章)
{"window":{"W","H","lateness","watermark"},"bandwidth":{"RBW","ENBW","w"},"cache":{"ttl","size","policy","hit","stale_ratio"},"metrics":{"delta_form_rt_T","ΔT_obs_p{50,95,99}","resid_Sy_p95","sigma_y_p95","latency_p{50,95,99}","drop_rate","watermark_lag"},"resources":{"cpu_pct","mem_pct","gpu_util"}}
V. 生成→校核→签名流程(与第15章一致)
- 汇聚:收集各分域清单 URI 与 hash,组装端到端 manifest.tbn。
- 校核:执行 C50-* 契约;检查两口径、同窗同带宽同单位、量纲与 RefCond 新鲜度/覆盖。
- 合成:写入 uncertainty(GUM/MC)、两口径与在线差分位、单位/量纲映射与 scale.note。
- 签名:规范化→digest→signature。
- 发布:写入注册中心,绑定面板与 rollback_to;回放脚本与证据 URI 落盘。
VI. 字段校验与拒绝准则
- 缺键:缺 TraceID/RefCond.hash/sources.hashes/contracts/signature → 拒绝。
- 量纲:任一 check_dim 失败 → 拒绝。
- 两口径:缺 TarrForms 或 delta_form > tol_Tarr → 离线 fail;运行 degrade 并记录策略卡。
- 同窗同带宽:W/RBW/ENBW/window_fn 不一致 → 先重算,仍不一致 拒发。
- 映射/一致:缺 ΔT_map 或 u(ΔT_map)(需要时)/ ΔT_obs → 拒发。
- 签名:验签失败 → 拒绝;age(source)>Δt_max 或 coverage<cov_min → 降级/拒发。
VII. 端到端聚合清单(模板与样例)
{
"manifest": { "kind": "EFT.TBN.Measurement.Manifest", "semver": "1.0.0",
"schema_uri": "urn:eft:tbn:schema:1.0.0" },
"TraceID": "d9b3a6cc-3c62-4c1c-9c3e-8a7b240a6f2a",
"ts": "2025-09-04T10:15:26Z",
"RefCond": {
"hash": "sha256:refcond...",
"frames": "ECI→ECEF@ITRF2020",
"tz": "UTC",
"Δt": 60.0,
"Δx": 1000.0,
"coverage": 0.97,
"sources": {
"ephemeris.hash": "sha256:jpl-de...",
"gravity.hash": "sha256:egm2008...",
"iono.hash": "sha256:iri-2020...",
"trop.hash": "sha256:era5...",
"nfield.hash": "sha256:nphi-tab...",
"segments.hash": "sha256:fiber-route...",
"osc.hash": "sha256:osc123..."
}
},
"baseline": {
"window": { "Δt": 60.0, "window_fn": "hann" },
"bandwidth":{ "RBW": 12.5e3, "ENBW": 1.36*12.5e3 },
"spectra": { "S_phi": "uri://blob/sha256:Sphi...", "S_y": "uri://blob/sha256:Sy..." },
"stats": { "sigma_y": [["1", 3.2e-13], ["10", 1.1e-13]] },
"Tarr": { "form1": 2.315000e-3, "form2": 2.316000e-3, "delta_form": 1.0e-6, "tol": 2.0e-6, "unit": "s", "dim": "[T]" },
"latency": { "lat_prop": 2.316000e-3, "lat_ser": 1.5e-6, "lat_sw": 4.0e-6, "lat_q": 0.0, "lat_proc": 2.0e-6 }
},
"frontend": {
"ADC": { "Fs": 1.0e9, "N": 14, "ENOB": 11.2, "jitter": 80e-15 },
"AFE": { "gain": 18.0, "BW": 250e6, "ENBW": 17.0e3 },
"trig": { "type": "PPS", "jitter": 30e-12 },
"refclk": { "offset": 2.4e-9, "skew": 1.5e-12, "J_model": "AR(1)+WPM" },
"cross_channel": { "delay": 0.35e-9, "phase": 0.02 },
"spectra_guard": { "S_phi,j": "uri://blob/sha256:Sphij...", "S_y,j": "uri://blob/sha256:Syj..." },
"Tarr_support": { "timebase": "tau_mono", "u(delta_form|front-end)": 2.0e-7 }
},
"estimator": {
"method": "PLL", "cfg": { "ω_n": 2π*100, "ζ": 0.707, "B_L": 200.0 },
"window": { "Δt": 60.0, "window_fn": "hann", "RBW": 12.5e3, "ENBW": 1.36*12.5e3 },
"outputs":{ "phi": "uri://blob/sha256:phi...", "f_inst": "uri://blob/sha256:finst...", "y": "uri://blob/sha256:y..." },
"spectra":{ "S_phi": "uri://blob/sha256:SphiPLL...", "S_y": "uri://blob/sha256:SyPLL..." },
"stats": { "sigma_y": [["1", 3.1e-13], ["10", 1.0e-13]], "ν_eff": [["1", 120], ["10", 55]], "U": [["1", 6.2e-14]] },
"crlb": { "var_min": 9.0e-28 }, "residuals": { "var_emp": 1.8e-27 }
},
"delay": {
"method": "2way",
"timestamps": { "t1": "uri://blob/sha256:t1...", "t2": "uri://blob/sha256:t2...", "t3": "uri://blob/sha256:t3...", "t4": "uri://blob/sha256:t4..." },
"results": { "T_1way": 2.3205e-3, "T_2way": 4.6410e-3, "ΔT_asym": 2.5e-9, "lat_total": 2.324e-3,
"lat_prop": 2.316e-3, "lat_ser": 1.5e-6, "lat_sw": 4.0e-6, "lat_q": 0.0, "lat_proc": 2.0e-6 },
"jitter": { "S_t": "uri://blob/sha256:St...", "σ_t": 1.2e-12 },
"Tarr": { "form1": 2.315000e-3, "form2": 2.316000e-3, "delta_form": 1.0e-6, "T_arr*": 2.316004e-3, "unit": "s", "dim": "[T]" }
},
"corr": {
"sources": { "met.hash": "sha256:era5...", "iono.hash": "sha256:iri-2020...", "TEC.hash": "sha256:tecgrid...", "n_field.hash": "sha256:nphi...", "segments.hash": "sha256:fiber-route..." },
"window": { "W": [ "2025-09-04T10:14:26Z", "2025-09-04T10:15:26Z" ], "Δt": 60.0, "Δx": 1000.0 },
"corr": { "ΔT_trop": 3.8e-9, "ΔT_iono": 0.6e-9, "ΔT_fiber": 1.1e-9, "ΔT_mpath": 0.0, "ΔT_med": 5.5e-9 },
"multipath": { "MER": 0.02, "MP_res": 0.01, "ĥ.hash": "sha256:hhat..." },
"mapping": { "ΔT_map": 4.0e-10, "u(ΔT_map)": 1.0e-10 },
"Tarr": { "form1": 2.315002e-3, "form2": 2.316006e-3, "delta_form": 1.1e-6, "T_arr*": 2.316009e-3 }
},
"consistency": {
"window": { "W": [ "2025-09-04T10:14:26Z", "2025-09-04T10:15:26Z" ], "w": "hann", "RBW": 12.5e3, "ENBW": 1.36*12.5e3 },
"mapping": { "dir": "spectrum→time", "model": "AWGN+small-angle", "κ_mod": 1.0 },
"spectra": { "S_phi": "uri://blob/sha256:Sphi_cons...", "S_y": "uri://blob/sha256:Sy_cons...", "S_t": "uri://blob/sha256:St_cons..." },
"time": { "σ_φ": 4.5e-3, "σ_t": 2.3e-12, "t_open": 45e-12, "ΔT_obs": 3.0e-9 },
"evm": { "pred": 0.029, "meas": 0.031 },
"Tarr": { "form1": 2.315999e-3, "form2": 2.316000e-3, "delta_form": 1.0e-6, "T_arr*": 2.316004e-3 }
},
"anchor": {
"compare": { "resid_sigma_y_p95": 1.0e-14, "resid_Sy_p95": 0.08, "u(resid)": 0.02 },
"anchor": { "type": "loop+ratio", "params": { "τ_loop": 4.632001e-3, "ε_R": 1.2e-12 }, "Δbias/scale": { "ΔT_bias": 1.0e-9, "z_bias/scale": [-1.2e-12, 2.0e-13] } },
"replay": { "core": { "raw": "uri://blob/sha256:rawdown...", "window": { "Δt": 60.0, "w": "hann" }, "RBW": 12.5e3, "ENBW": 1.36*12.5e3, "method/cfg": "PLL{ω_n=...}", "RefCond.hash": "sha256:refcond...", "path.hash": "sha256:fiber-route..." }, "scripts.hash": "sha256:replay-py..." },
"Tarr": { "form1": 2.315999e-3, "form2": 2.316000e-3, "delta_form": 1.0e-6, "T_arr*": 2.315999e-3 }
},
"u": {
"method": "GUM+MC", "coverage": 0.95, "k": 2.0, "nu_eff": 128, "ρ": 0.96,
"targets": { "T_arr*": { "u_c": 6.0e-10, "U": 1.2e-9 }, "delta_form": { "u": 2.0e-7 }, "ΔT_map": { "u": 1.0e-10 }, "ΔT_obs": { "u": 5.0e-10 } }
},
"contracts": {
"rules": [
{ "rule_id": "C50-201", "metric": "delta_form_p95", "threshold": 2.0e-6, "unit": "s", "pass": true, "evidence_uri": "s3://.../twoform.parq" },
{ "rule_id": "C50-1204", "metric": "∥resid_Sy∥_B", "threshold": 0.1, "unit": "1", "pass": true, "evidence_uri": "s3://.../spectral_resid.png" }
],
"thresholds_uri": "s3://.../thresholds.toml"
},
"rt": {
"window": { "W": 60.0, "H": 30.0, "lateness": 5.0, "watermark": { "policy": "event-time", "lag": 2.0 } },
"bandwidth": { "RBW": 12.5e3, "ENBW": 1.36*12.5e3, "w": "hann" },
"cache": { "ttl": 600, "size": 1024, "policy": "lru", "hit": 0.87, "stale_ratio": 0.01 },
"metrics": { "delta_form_rt_T": 9.0e-7, "ΔT_obs_p50": 2.4e-9, "ΔT_obs_p95": 3.1e-9, "resid_Sy_p95": 0.09, "sigma_y_p95": 1.2e-13, "latency_p95": 0.18, "drop_rate": 2.0e-5, "watermark_lag": 2.0 },
"resources": { "cpu_pct": 0.61, "mem_pct": 0.47, "gpu_util": 0.12 }
},
"artifacts": {
"baseline": "uri://manifest/sha256:baseline...",
"frontend": "uri://manifest/sha256:frontend...",
"estimator": "uri://manifest/sha256:estimator...",
"delay": "uri://manifest/sha256:delay...",
"corr": "uri://manifest/sha256:corr...",
"anchor": "uri://manifest/sha256:anchor...",
"u": "uri://manifest/sha256:u...",
"contracts": "uri://manifest/sha256:contracts...",
"rt": "uri://manifest/sha256:rt...",
"panels": ["uri://panel/twoform", "uri://panel/sigma_y", "uri://panel/Tarr"]
},
"audit": {
"parents": ["sha256:prev-manifest..."],
"rollback_to": "sha256:stable-manifest...",
"change_log": "updated TEC source; refined PLL B_L; added loop bias calibration"
},
"signature": {
"algo": "ed25519",
"key_id": "k-tbn-2025-07",
"digest": "sha256:manifest-core-digest...",
"sig": "base64:MEQCIK..."
}
}
VIII. 规范化与签名(canonicalize)
- 删除 signature 域;
- 以稳定字段顺序串行化(UTF-8,无多余空白);
- 浮点统一十进制字符串(可科学计数法);
- 计算 digest = SHA256(bytes);
- 用 ed25519/ecdsa-p256 签名;
- 回放时按同流程验签。
IX. 交叉引用
- 接口:附录A I50-*;契约:附录B C50-*;指标:附录D;不确定度:附录E。
- 章内:第2–14章各 M50-* 产物与本清单键一一对应。
X. 小结
- 本附录给出 manifest.tbn.* 的最小键集、两口径/同窗同带宽/量纲规则、规范化与签名,并提供完整样例;
- 结合各章流程与附录 A/B 的接口与契约,工程团队可将 TBN 计量的证据—阈值—结果端到端清单化,支撑发布、审计与回放闭环。
版权与许可(CC BY 4.0)
版权声明:除另有说明外,《能量丝理论》(含文本、图表、插图、符号与公式)的著作权由作者(“屠广林”先生)享有。
许可方式:本作品采用 Creative Commons 署名 4.0 国际许可协议(CC BY 4.0)进行许可;在注明作者与来源的前提下,允许为商业或非商业目的进行复制、转载、节选、改编与再分发。
署名格式(建议):作者:“屠广林”;作品:《能量丝理论》;来源:energyfilament.org;许可证:CC BY 4.0。
首次发布: 2025-11-11|当前版本:v5.1
协议链接:https://creativecommons.org/licenses/by/4.0/