diff --git a/check_finite_range_bearing.py b/check_finite_range_bearing.py index 6b39f0e..3fe6d3b 100644 --- a/check_finite_range_bearing.py +++ b/check_finite_range_bearing.py @@ -224,7 +224,46 @@ def main(): mixed_jac = np.linalg.lstsq(DESIGN, [ mixed_motion(x, t, 1)[9]-mixed_motion(x, t, 0)[9] for t in TIMES], rcond=None)[0] check("mixed fixed-design OLS Jacobian", mixed_jac, finite_difference(mixed_coeff, x)) - print("PASS: synthetic local formula checks; code-side geometry and CP/IP acceptance still required.") + # Appendix G: independent block phases remove constants, not intra-block slopes. + for nodes, starts, expected_rank in [([0.], [0., 3.], 0), + ([0., 2.], [0.], 1), + ([0., 2.], [0., 3.], 2), + ([0., 2.], [0., 3e-4], 2)]: + blocks, weights, centers = [], [], [] + n = np.array(nodes) + for ell in range(2): + f, rate = z[2:]+coefficients(x, ell)[0] + for start in starts: + w = geometry(x, start, ell)[0] + a = np.exp(-2j*np.pi*ARRAY@w/WAVELENGTH) + mu = np.kron(np.exp(2j*np.pi*((f+rate*start)*n+.5*rate*n*n)), a) + J = np.column_stack((1j*np.repeat(n, len(a))*mu, + 1j*np.repeat(start*n+.5*n*n, len(a))*mu)) + projected = J-mu[:, None]*(mu.conj()@J/(mu.conj()@mu))[None, :] + expected = np.column_stack(( + 1j*np.repeat(n-n.mean(), len(a))*mu, + 1j*np.repeat(start*(n-n.mean())+.5*(n*n-(n*n).mean()), len(a))*mu)) + check("IP centered temporal scores", projected, expected) + blocks.append(projected) + weights.append(2*np.linalg.norm(projected[:, 0])**2) + centers.append(start+(n[-1]/2)) + J = np.vstack(blocks) + real_J = np.vstack((J.real, J.imag))*np.sqrt(2) + assert np.linalg.matrix_rank(real_J, tol=1e-10) == expected_rank + if len(n) == 2: + weights, centers = np.array(weights), np.array(centers) + I = real_J.T@real_J + vectors = np.column_stack((np.ones(len(centers)), centers)) + check("two-sample temporal information", I, vectors.T@(weights[:, None]*vectors)) + residual = real_J[:, 0]-real_J[:, 1]*(I[1, 0]/I[1, 1]) + check("real rate Schur complement", residual@residual, + I[0, 0]-I[0, 1]**2/I[1, 1]) + if expected_rank == 1: + check("single-frame exact frequency/rate cancellation", J@np.array([1., -1.]), + np.zeros(len(J))) + elif starts[-1] < 1e-3: + assert 0 < residual@residual/I[0, 0] < 1e-7 + print("PASS: synthetic local formula and temporal-rank checks; code-side geometry and CP/IP acceptance still required.") if __name__ == "__main__": diff --git a/parts/G-userPositionCrb.tex b/parts/G-userPositionCrb.tex index 16e0362..914cfbc 100644 --- a/parts/G-userPositionCrb.tex +++ b/parts/G-userPositionCrb.tex @@ -467,6 +467,95 @@ Doppler 部分,由 $\nu_\ell=\nu_{\mathrm{ref}}+\Delta\nu_\ell(\mathbf p)$ 与 因此,\appref{sec:multiFrameCrb} 的 CP/IP 幅相结构、非负幅度的集中似然、实参数 \gls{fim} 与 Schur 补、实化投影以及 \eqref{eq:A7_real_rank_condition} 的秩判据继续适用;改变的是均值及两角导数的几何映射。结构化 CP 的同星公共相位不能按每块自由复增益消去。SS/MS 比较须保持参考星、源状态、采样与噪声协议相同;单星参考链路的相对系数恒为零,既有 K/U 正交性在相同窄带与幅相假设下仍成立,多星数值损失须重算。 +\paragraph{局部一阶可辨识与时间退化} +在可见交点横截、角坐标非奇异、有效块幅度为正且噪声协方差正定的工作点,令 +$\boldsymbol\eta=[\alpha,\beta,\nu_{\mathrm{ref}}]^\Tran$。 +将有限距离均值的目标导数和全部幅相、未知参考 rate 导数按 +\eqref{eq:A7_realified_jacobians} 白化并实化为 $\mathbf A,\mathbf B$,则 +% +\begin{equation} + \label{eq:G_bearing_local_identifiability} + \mathcal I_{\mathrm e}\succ0 + \quad\Longleftrightarrow\quad + \operatorname{rank}(\mathcal P_{\mathbf B}^{\perp}\mathbf A)=3 + \quad\Longleftrightarrow\quad + \nexists\ \delta\boldsymbol\eta\ne\mathbf0,\ \delta\boldsymbol\psi\in\mathbb R^{\dim\boldsymbol\psi_\mu}: + \mathbf A\delta\boldsymbol\eta=\mathbf B\delta\boldsymbol\psi. +\end{equation} +% +因此,要检验的是消元后三列的实线性独立性,而非原始角导数或阵列流形是否独立。 +CP-U 的幅度列、同星共享相位列和实值 rate 列须保持原有约束; +IP-U 可先按逐块复增益投影,再对实值 rate 消元。 +此判据只涉及局部一阶均值变化,不排除相位周期造成的远处分支,也不保证有限样本估计器达到界。 + +具体看 IP 的时间导数。设块内有效采样索引为 $n$,帧起点为 $\tau_p$, +阵列响应在该块冻结,导频已知且不随候选变化。用 $|s_p(n)|^2$ 加权的块内平均记为 +$\langle\cdot\rangle_p$,均值的阵元分量记为 $\mu_{\ell,p,m,n}$。 +消去逐块自由幅相后,参考频移和参考 rate 的导数分量为 +% +\begin{equation} + \label{eq:G_bearing_ip_centered_scores} + \begin{aligned} + {}[\widetilde{\mathbf J}_{\nu}]_{\ell,p,m,n} + &=j\big(n-\langle n\rangle_p\big)\mu_{\ell,p,m,n},\\ + [\widetilde{\mathbf J}_{\dot\nu}]_{\ell,p,m,n} + &=j\left[\tau_p\big(n-\langle n\rangle_p\big) + +\frac{1}{2}\big(n^2-\langle n^2\rangle_p\big)\right]\mu_{\ell,p,m,n}. + \end{aligned} +\end{equation} +% +这里采用块内白噪声和 phase-only 模板,逐星有限距离的相对系数及其角导数仍按 +\eqref{eq:G_bearing_window_ols} 计算。块相位消去的是常相位项,不是一般的块内频率斜率。 +空间阵元之间的相位差也不会被一个块相位全部消去。 + +一个精确退化例子是每块仅有一个有效时间样本,例如各帧导频只在 $n=0$ 非零。 +取任意互异帧时刻、任意固定星集、可见非切向交点和任意阵列,包括能提供两个角信息的平面阵列。 +IP-U 逐块相位自由且参考 rate 未知,此时 \eqref{eq:G_bearing_ip_centered_scores} 的两列都为零, +参考频移方向 $\delta\boldsymbol\eta=[0,0,1]^\Tran$ 的有效信息为零。 +即使增加星数或帧数也不能在这一采样协议中恢复参考频移信息。 +对 CP-U,跨帧相位并非自由,不能照搬这一结论。 + +另一个例子保留块内时间差:各块只有 $n=0,h$ 两个有效样本,$h>0$,两处导频均非零。 +此时 $n^2=hn$,故逐块有 +% +\begin{equation} + \label{eq:G_bearing_two_sample_degeneracy} + \widetilde{\mathbf J}_{\dot\nu,\ell,p} + =c_p\widetilde{\mathbf J}_{\nu,\ell,p}, + \qquad c_p=\tau_p+\frac{h}{2}. +\end{equation} +% +若只观测 $\tau_0=0$ 的一帧,则 $c_0=h/2\ne0$。 +取 $\delta\nu_{\mathrm{ref}}=1$、$\delta\dot\nu_{\mathrm{ref}}=-2/h$,保持两角不变, +两个采样点的时间相位变化均为零。CP-U 和 IP-U 在单帧具有相同的幅相自由度, +因此两者三维目标 \gls{efim} 都秩亏,无论阵列或多星几何是否能提供角信息。 +这里可辨识的是该帧中点频移的组合,而不是同时未知 rate 时在帧起点定义的参考频移。 +相对频移系数的拟合仍使用预先固定、满列秩的几何节点设计,不将单帧观测误作单节点斜率拟合。 + +若 IP 的有效帧有不同起点,式~\eqref{eq:G_bearing_two_sample_degeneracy} 的比例也不同。 +为单独检验时间机制,暂时固定两角,令 +$w_{\ell,p}=\dfrac{2\|\widetilde{\mathbf J}_{\nu,\ell,p}\|_2^2}{\sigma_\ell}>0$, +其中 $\sigma_\ell$ 为该星噪声复方差。消去块幅相后的频移--rate 信息为 +% +\begin{equation} + \label{eq:G_bearing_two_sample_temporal_info} + \mathbf I_{\nu,\dot\nu} + =\sum_{\ell,p}w_{\ell,p} + \begin{bmatrix}1&c_p\\c_p&c_p^2\end{bmatrix}, + \qquad + I_{\nu,\mathrm e} + =\sum_{\ell,p}w_{\ell,p} + -\frac{\left(\sum_{\ell,p}w_{\ell,p}c_p\right)^2} + {\sum_{\ell,p}w_{\ell,p}c_p^2}. +\end{equation} +% +第二式要求分母非零;若 rate 列为零,直接用实投影判据。 +至少两个正权重块的 $c_p$ 不同即可解除这一时间列的精确比例关系, +但两角未知时仍须对完整三列执行 \eqref{eq:G_bearing_local_identifiability},不能据此保证整体满秩。 +在固定单位和参数尺度下,帧起点集中在同一个非零 $c_p$ 附近时,参考频移的信息接近零; +这是病态而非必然秩亏。统一增加噪声复方差只缩放信息,不改变精确秩。 +阵列基线、逐星视线和相对 Doppler 导数决定剩余角信息,不能只凭星数或帧数判定可辨识。 + \paragraph{经纬度误差与完整协方差变换} 对同一已知高度、分支和 $t_0$,令 $\boldsymbol\xi=h(\boldsymbol\vartheta)$。将星到源单位向量记为 $\mathbf e_r=(\mathbf p_0-\mathbf s_r)/r_r=-\mathbf w_r$,有 %