content(app-G): 补全有限距离参考来向与动态频移接口
由已知高度曲面的横截交点定义两角,保留逐星视差与地固源运动。 补全 LOS、Doppler rate、固定窗口 OLS 及完整协方差变换。 区分参考星与时间原点变化,给出同模与高保真核查条件。 加入可运行的合成几何导数检查,不替代实际星集或 CP/IP 实现验收。
This commit is contained in:
@@ -0,0 +1,175 @@
|
||||
"""Deterministic formula checks for Appendix G; run: python check_finite_range_bearing.py.
|
||||
|
||||
Synthetic sphere and known trajectories only: no constellation or MC validation.
|
||||
"""
|
||||
import numpy as np
|
||||
|
||||
RADIUS = 6_371_000.0
|
||||
WAVELENGTH = 10.0
|
||||
SPIN = np.array([[0., -7.292115e-5, 0.], [7.292115e-5, 0., 0.], [0., 0., 0.]])
|
||||
TIMES = np.array([0., .13, .29, .51, .83])
|
||||
DESIGN = np.column_stack((np.ones(len(TIMES)), TIMES))
|
||||
ARRAY = np.array([[0., 0., 0.], [1., 0., 0.], [0., 1., 0.], [1., 1., 0.]])
|
||||
|
||||
|
||||
def direction(x):
|
||||
a, b = x
|
||||
ca, sa, cb, sb = np.cos(a), np.sin(a), np.cos(b), np.sin(b)
|
||||
return np.array([cb*ca, cb*sa, sb]), np.array([
|
||||
[-cb*sa, -sb*ca], [cb*ca, -sb*sa], [0., cb]])
|
||||
|
||||
|
||||
GROUND, _ = direction(np.array([.35, .42]))
|
||||
GROUND *= RADIUS
|
||||
SATELLITES = np.array([GROUND*1.10 + [90_000., -80_000., 40_000.],
|
||||
GROUND*1.11 + [-210_000., 230_000., -60_000.]])
|
||||
VELOCITIES = np.array([[1100., 6800., -1400.], [-1800., 6200., 2700.]])
|
||||
ACCELERATIONS = np.array([[-4., -3., -1.], [-3., -2., -2.]])
|
||||
|
||||
|
||||
def bearing(p, satellite):
|
||||
e = p - satellite
|
||||
e /= np.linalg.norm(e)
|
||||
return np.array([np.arctan2(e[1], e[0]), np.arcsin(e[2])])
|
||||
|
||||
|
||||
def intersection(x):
|
||||
e, E = direction(x)
|
||||
s = SATELLITES[0]
|
||||
disc = (s@e)**2 - (s@s - RADIUS**2)
|
||||
assert disc > 0, "Ray is tangent or misses the surface"
|
||||
d = -s@e - np.sqrt(disc)
|
||||
assert d > 0
|
||||
p = s + d*e
|
||||
n = p / RADIUS
|
||||
assert n@e < 0, "Expected near visible branch"
|
||||
P = d*(np.eye(3) - np.outer(e, n)/(n@e))@E
|
||||
return p, P
|
||||
|
||||
|
||||
def geometry(x, t, ell):
|
||||
p0, P0 = intersection(x)
|
||||
angle = 7.292115e-5*t
|
||||
c, s = np.cos(angle), np.sin(angle)
|
||||
B = np.array([[c, -s, 0.], [s, c, 0.], [0., 0., 1.]])
|
||||
p, P = B@p0, B@P0
|
||||
v = VELOCITIES[ell] + t*ACCELERATIONS[ell] - SPIN@p
|
||||
a = ACCELERATIONS[ell] - SPIN@SPIN@p
|
||||
Vx, Ax = -SPIN@P, -SPIN@SPIN@P
|
||||
rvec = SATELLITES[ell] + t*VELOCITIES[ell] + .5*t*t*ACCELERATIONS[ell] - p
|
||||
r = np.linalg.norm(rvec)
|
||||
w = rvec/r
|
||||
S = np.eye(3) - np.outer(w, w)
|
||||
W = -S@P/r
|
||||
wd = S@v/r
|
||||
rx = -w@P
|
||||
WD = np.column_stack([
|
||||
-(np.outer(W[:, j], w) + np.outer(w, W[:, j]))@v/r
|
||||
+ S@Vx[:, j]/r - wd*rx[j]/r for j in range(2)
|
||||
])
|
||||
b = -v@w/WAVELENGTH
|
||||
bd = -(a@w + v@wd)/WAVELENGTH
|
||||
bx = -(w@Vx + v@W)/WAVELENGTH
|
||||
bdx = -(w@Ax + a@W + wd@Vx + v@WD)/WAVELENGTH
|
||||
return w, W, wd, WD, b, bx, bd, bdx
|
||||
|
||||
|
||||
def coefficients(x, ell):
|
||||
data = [geometry(x, t, ell) for t in TIMES]
|
||||
ref = [geometry(x, t, 0) for t in TIMES]
|
||||
c = np.linalg.lstsq(DESIGN, [a[4]-b[4] for a, b in zip(data, ref)], rcond=None)[0]
|
||||
Cx = np.linalg.lstsq(DESIGN, [a[5]-b[5] for a, b in zip(data, ref)], rcond=None)[0]
|
||||
return c, Cx
|
||||
|
||||
|
||||
def mean_and_jacobian(x, ref_coeff, ell):
|
||||
c, Cx = coefficients(x, ell)
|
||||
f, rate = ref_coeff + c
|
||||
w, W = geometry(x, 0., ell)[:2]
|
||||
steering = np.exp(-2j*np.pi*ARRAY@w/WAVELENGTH)
|
||||
Ax = (-2j*np.pi/WAVELENGTH)*steering[:, None]*(ARRAY@W)
|
||||
q = np.exp(2j*np.pi*(f*TIMES + .5*rate*TIMES**2))
|
||||
qx = q[:, None]*2j*np.pi*(TIMES[:, None]*Cx[0] + .5*TIMES[:, None]**2*Cx[1])
|
||||
Jx = np.column_stack([np.kron(q, Ax[:, j])+np.kron(qx[:, j], steering) for j in range(2)])
|
||||
Jf = np.kron(2j*np.pi*TIMES*q, steering)
|
||||
Jr = np.kron(1j*np.pi*TIMES**2*q, steering)
|
||||
return np.kron(q, steering), np.column_stack((Jx, Jf, Jr))
|
||||
|
||||
|
||||
def finite_difference(f, x, step=2e-7):
|
||||
return np.stack([(f(x+step*e)-f(x-step*e))/(2*step) for e in np.eye(len(x))], axis=-1)
|
||||
|
||||
|
||||
def check(name, actual, expected, tolerance=2e-7):
|
||||
error = np.linalg.norm(actual-expected)/max(1., np.linalg.norm(expected))
|
||||
assert error < tolerance, (name, error, tolerance)
|
||||
print(f"{name}: relative error {error:.3g}")
|
||||
|
||||
|
||||
def main():
|
||||
x = bearing(GROUND, SATELLITES[0])
|
||||
p, P = intersection(x)
|
||||
check("ray intersection", p, GROUND)
|
||||
check("intersection Jacobian", P, finite_difference(lambda x: intersection(x)[0], x))
|
||||
latlon = np.array([.35, .42])
|
||||
_, Pll = direction(latlon)
|
||||
Pll *= RADIUS
|
||||
e = (p-SATELLITES[0])/np.linalg.norm(p-SATELLITES[0])
|
||||
K = np.array([[-e[1]/(e[0]**2+e[1]**2), e[0]/(e[0]**2+e[1]**2), 0.],
|
||||
[0., 0., 1/np.sqrt(1-e[2]**2)]])
|
||||
H = K@(np.eye(3)-np.outer(e, e))@Pll/np.linalg.norm(p-SATELLITES[0])
|
||||
check("bearing/latlon tangent identity", P@H, Pll)
|
||||
for ell in range(2):
|
||||
w, W, wd, WD, b, bx, bd, bdx = geometry(x, .41, ell)
|
||||
for name, index, jac in [("LOS", 0, W), ("LOS time derivative", 2, WD),
|
||||
("Doppler", 4, bx), ("rate", 6, bdx)]:
|
||||
check(name, jac, finite_difference(lambda x: geometry(x, .41, ell)[index], x))
|
||||
step = 1e-3
|
||||
check("rate time derivative", bd,
|
||||
(geometry(x, .41+step, ell)[4]-geometry(x, .41-step, ell)[4])/(2*step))
|
||||
c, Cx = coefficients(x, 1)
|
||||
check("OLS coefficient Jacobian", Cx, finite_difference(lambda x: coefficients(x, 1)[0], x))
|
||||
z = np.r_[x, 20., .8]
|
||||
means, jac = zip(*(mean_and_jacobian(x, z[2:], ell) for ell in range(2)))
|
||||
J = np.vstack(jac)
|
||||
check("CP full mean Jacobian", J,
|
||||
finite_difference(lambda z: np.concatenate([mean_and_jacobian(z[:2], z[2:], ell)[0]
|
||||
for ell in range(2)]), z), 2e-6)
|
||||
T = np.zeros((4, 4))
|
||||
T[:2, :2] = H
|
||||
T[2:, 2:] = np.eye(2)
|
||||
Jll = finite_difference(lambda z: np.concatenate([
|
||||
mean_and_jacobian(bearing(RADIUS*direction(z[:2])[0], SATELLITES[0]), z[2:], ell)[0]
|
||||
for ell in range(2)]), np.r_[latlon, z[2:]], step=1e-8)
|
||||
check("direct versus chain Jacobian", J@T, Jll, 2e-6)
|
||||
A = np.vstack((J.real, J.imag))*np.sqrt(2)
|
||||
nuisance = np.zeros((len(A), 4))
|
||||
for ell in range(2):
|
||||
gain = np.concatenate([means[i] if i == ell else np.zeros_like(means[i]) for i in range(2)])
|
||||
nuisance[:, 2*ell] = np.r_[gain.real, gain.imag]*np.sqrt(2)
|
||||
nuisance[:, 2*ell+1] = np.r_[-gain.imag, gain.real]*np.sqrt(2)
|
||||
projected = (np.eye(len(A))-nuisance@np.linalg.pinv(nuisance))@A
|
||||
info = projected.T@projected
|
||||
assert np.linalg.matrix_rank(projected) == 4
|
||||
cov = np.linalg.inv(info)
|
||||
check("full covariance reparameterization", T@np.linalg.inv(T.T@info@T)@T.T, cov)
|
||||
delta = .19
|
||||
shifted = TIMES-delta
|
||||
for ell in range(2):
|
||||
f, rate = z[2:]+coefficients(x, ell)[0]
|
||||
phase0 = 2*np.pi*(f*TIMES+.5*rate*TIMES**2)
|
||||
phase1 = 2*np.pi*(f*delta+.5*rate*delta**2
|
||||
+(f+delta*rate)*shifted+.5*rate*shifted**2)
|
||||
check("epoch phase identity", np.exp(1j*phase0), np.exp(1j*phase1))
|
||||
def switch(z):
|
||||
p, _ = intersection(z[:2])
|
||||
return np.r_[bearing(p, SATELLITES[1]), z[2:]+coefficients(z[:2], 1)[0]]
|
||||
Tref = np.eye(4)
|
||||
Tref[:2, :2] = finite_difference(lambda x: bearing(intersection(x)[0], SATELLITES[1]), x)
|
||||
Tref[2:, :2] = Cx
|
||||
check("reference-change full Jacobian", Tref, finite_difference(switch, z), 2e-6)
|
||||
print("PASS: synthetic local formula checks; code-side geometry and CP/IP acceptance still required.")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -640,6 +640,8 @@
|
||||
|
||||
\appref{subsec:E_conditionalCompression} 中,$\mathbf U$ 为已知时间模板列空间的标准正交基,$\mathbf H$ 为按用户排列的空间信道矩阵。\appref{subsec:F6_tauDeltaConfound} 中,$\mathbf W_\eta$、$\mathbf W_\psi$ 为白化后实化的目标与干扰参数 Jacobian,$\dagger$ 表示 Moore--Penrose 逆。
|
||||
|
||||
\appref{subsec:G_reference_bearing} 中,$\mathbf e$ 为参考星指向源的单位来向,$\mathbf w_\ell$ 为源到星的传播方向;$F_0$ 为已知高度曲面函数,$\mathbf n$ 为其梯度,$d$ 为参考射线的交点距离而非独立未知参数。$\mathbf P_\xi$ 为交点对参考来向角的 Jacobian,$\mathbf B(t)$ 为源的已知地固到惯性运动映射,$\mathbf W_\ell$ 为逐星传播方向的角 Jacobian,$b_\ell$ 为几何频移。$\mathbf c_\ell$ 为相对 affine 频移及 rate 系数,$\mathbf H$ 为经纬度到参考来向角的局部 Jacobian;这些局部记号不改变前面位置模型和公共方向模型的参数定义。
|
||||
|
||||
\appref{sec:dictSeparationAmp} 中,$\mathbf Q_\ell$ 表示包含全部用户与网格点的字典,$\mathbf X_\ell$ 为网格系数矩阵;$\boldsymbol\Gamma$、$\boldsymbol\Sigma$ 分别为稀疏贝叶斯模型的先验与后验协方差。实值 AMP 示例另用 $\mathbf A\in\mathbb R^{n\times d}$ 表示测量矩阵,$b$ 为每行去噪向量的维数。
|
||||
|
||||
\appref{sec:thresholdBounds} 中,$L_i$ 为检验点相对参考点的似然比,$\mathbf M$ 为似然比二阶矩矩阵,$\mathbf B_{\mathrm{test}}$ 为中心化似然比的协方差;它与误指定分析的 sandwich 矩阵 $\mathbf B$ 不同。$\pi(a)$ 为标量目标的先验密度,$P_{\min}$ 为按点对先验加权的最小二元检验错误率,$D^2$ 为白化均值距离的平方,$\mathcal V$ 为填谷算子。
|
||||
|
||||
@@ -216,6 +216,254 @@ Doppler 部分,由 $\nu_\ell=\nu_{\mathrm{ref}}+\Delta\nu_\ell(\mathbf p)$ 与
|
||||
%
|
||||
公共方向的夹角界为 $\cos^2\beta[\mathbf C_{\xi\xi}]_{11}+[\mathbf C_{\xi\xi}]_{22}$。小视差使两类模型接近还需相应的投影后 Jacobian 接近;当最弱信息方向接近零时,小的信息扰动也可导致较大的逆矩阵差异。因此,公共方向与地表模型的界没有普遍的大小排序,接近程度须在统一指标及可辨识工作点上检验。
|
||||
|
||||
\subsection{已知高度曲面上的参考视线与多帧 Doppler}
|
||||
\label{subsec:G_reference_bearing}
|
||||
|
||||
前一小节用经纬度描述已知高度曲面。同一有限距离模型也可用参考星在参考时刻的来向描述曲面交点。本小节保留逐星不同的视线,仅利用阵列方向和 Doppler;导频已对齐,传播时延不参与估计。位置由两个角和已知曲面决定,是几何映射的中间量。每个阵列仍采用单星平面波近似,各星接收端的绝对载波相位独立未知。
|
||||
|
||||
\paragraph{参考射线与曲面交点}
|
||||
记物理参考时刻为 $t_0$,参考星编号为 $r$,惯性系位置为 $\mathbf s_r(t_0)$。定义参考来向角 $\boldsymbol\xi=[\alpha,\beta]^\Tran$ 为卫星指向源的 \gls{eci} 方位角与俯仰角,均以弧度计,其单位向量与角导数为
|
||||
%
|
||||
\begin{equation}
|
||||
\label{eq:G_bearing_direction}
|
||||
\begin{aligned}
|
||||
\mathbf e(\boldsymbol\xi)
|
||||
&=\begin{bmatrix}\cos\beta\cos\alpha\\\cos\beta\sin\alpha\\\sin\beta\end{bmatrix},\\
|
||||
\mathbf E=\frac{\partial\mathbf e}{\partial\boldsymbol\xi^\Tran}
|
||||
&=\begin{bmatrix}
|
||||
-\cos\beta\sin\alpha&-\sin\beta\cos\alpha\\
|
||||
\cos\beta\cos\alpha&-\sin\beta\sin\alpha\\
|
||||
0&\cos\beta
|
||||
\end{bmatrix}.
|
||||
\end{aligned}
|
||||
\end{equation}
|
||||
%
|
||||
这一来向与源到卫星的传播方向相反。令已知高度曲面在 $t_0$ 的惯性系表示为 $F_0(\mathbf p)=0$,在指定可见分支上求正距离 $d$:
|
||||
%
|
||||
\begin{equation}
|
||||
\label{eq:G_bearing_intersection}
|
||||
\mathbf p_0=\mathbf s_r(t_0)+d(\boldsymbol\xi)\mathbf e(\boldsymbol\xi),
|
||||
\qquad F_0(\mathbf p_0)=0,\qquad d>0.
|
||||
\end{equation}
|
||||
%
|
||||
例如,球面半径 $R=R_{\mathrm E}+h_0$ 时,外部卫星的近交点为
|
||||
%
|
||||
\begin{equation}
|
||||
\label{eq:G_bearing_sphere_root}
|
||||
d=-\mathbf s_r^\Tran\mathbf e-
|
||||
\sqrt{(\mathbf s_r^\Tran\mathbf e)^2-(\|\mathbf s_r\|_2^2-R^2)}.
|
||||
\end{equation}
|
||||
%
|
||||
需检查根号内严格为正、$d>0$ 及无遮挡。远交点通常位于地球遮挡侧,应由可见性规则排除。一般椭球的大地高度曲面采用实际高度函数定义;除高度为零等特例外,把椭球两条半轴都加上 $h_0$ 并不等同于恒定大地高度曲面。
|
||||
|
||||
令 $\mathbf n=\nabla F_0(\mathbf p_0)$。在 $\mathbf n^\Tran\mathbf e\ne0$ 的横截交点处,对 \eqref{eq:G_bearing_intersection} 隐式求导得到
|
||||
%
|
||||
\begin{equation}
|
||||
\label{eq:G_bearing_intersection_jac}
|
||||
\begin{aligned}
|
||||
\frac{\partial d}{\partial\boldsymbol\xi^\Tran}
|
||||
&=-d\,\frac{\mathbf n^\Tran\mathbf E}{\mathbf n^\Tran\mathbf e},\\
|
||||
\mathbf P_\xi\triangleq\frac{\partial\mathbf p_0}{\partial\boldsymbol\xi^\Tran}
|
||||
&=d\left(\mathbf I_3-
|
||||
\frac{\mathbf e\mathbf n^\Tran}{\mathbf n^\Tran\mathbf e}\right)\mathbf E,
|
||||
\qquad \mathbf n^\Tran\mathbf P_\xi=\mathbf0 .
|
||||
\end{aligned}
|
||||
\end{equation}
|
||||
%
|
||||
交点分支局部唯一、$\cos\beta\ne0$ 且横截条件成立时,$\mathbf P_\xi$ 秩为 $2$,两角与曲面位置局部一一对应。切线处该表达式奇异;多交点分支、遮挡边界及方位角极点需单独处理。对搜索域的可见性判断使用地面法向与源到卫星方向的夹角,它不同于 \gls{eci} 俯仰角和阵列离轴角。
|
||||
|
||||
\paragraph{已知源运动与逐星视线}
|
||||
地固静止源的惯性轨迹由已知地球姿态决定,写为
|
||||
%
|
||||
\begin{equation}
|
||||
\label{eq:G_bearing_source_motion}
|
||||
\begin{aligned}
|
||||
\mathbf p(t)&=\mathbf B(t)\mathbf p_0,\qquad
|
||||
\mathbf B(t)=\mathbf R(t)\mathbf R(t_0)^\Tran,\\
|
||||
\mathbf v_u(t)&=\dot{\mathbf B}(t)\mathbf p_0,\qquad
|
||||
\mathbf a_u(t)=\ddot{\mathbf B}(t)\mathbf p_0,\\
|
||||
\mathbf P(t)&=\mathbf B(t)\mathbf P_\xi,\qquad
|
||||
\mathbf V_\xi(t)=-\dot{\mathbf B}(t)\mathbf P_\xi,\qquad
|
||||
\mathbf A_\xi(t)=-\ddot{\mathbf B}(t)\mathbf P_\xi .
|
||||
\end{aligned}
|
||||
\end{equation}
|
||||
%
|
||||
这里 $\mathbf R(t)$ 为地固系到惯性系的已知旋转;导数按物理秒计算。$\mathbf V_\xi$、$\mathbf A_\xi$ 分别是卫星--源相对速度与相对加速度对两角的 Jacobian,卫星星历不随候选角变化。匀速自转近似下 $\dot{\mathbf B}=\boldsymbol\Omega_{\mathrm E}\mathbf B$、$\ddot{\mathbf B}=\boldsymbol\Omega_{\mathrm E}^2\mathbf B$。若选用惯性静止源特例,则令 $\mathbf B=\mathbf I_3$ 且两阶导数为零;两种源运动约定须在生成与估计中一致。
|
||||
|
||||
令 $\mathbf v_\ell^{\mathrm{rel}}=\mathbf v_\ell-\mathbf v_u$、$\mathbf a_\ell^{\mathrm{rel}}=\mathbf a_\ell^{\mathrm{orb}}-\mathbf a_u$。各星传播方向、时间导数与候选角导数分别为
|
||||
%
|
||||
\begin{equation}
|
||||
\label{eq:G_bearing_los_derivatives}
|
||||
\begin{aligned}
|
||||
r_\ell&=\|\mathbf s_\ell-\mathbf p\|_2,\qquad
|
||||
\mathbf w_\ell=\frac{\mathbf s_\ell-\mathbf p}{r_\ell},\qquad
|
||||
\mathbf S_\ell=\mathbf I_3-\mathbf w_\ell\mathbf w_\ell^\Tran,\\
|
||||
\dot{\mathbf w}_\ell&=\frac{\mathbf S_\ell\mathbf v_\ell^{\mathrm{rel}}}{r_\ell},
|
||||
\qquad
|
||||
\mathbf W_\ell=\frac{\partial\mathbf w_\ell}{\partial\boldsymbol\xi^\Tran}
|
||||
=-\frac{\mathbf S_\ell\mathbf P(t)}{r_\ell},\\
|
||||
r_{\ell,x}&=\frac{\partial r_\ell}{\partial\boldsymbol\xi^\Tran}
|
||||
=-\mathbf w_\ell^\Tran\mathbf P(t),\\
|
||||
\frac{\partial\dot{\mathbf w}_\ell}{\partial x}
|
||||
&=-\frac{(\mathbf W_{\ell,x}\mathbf w_\ell^\Tran+
|
||||
\mathbf w_\ell\mathbf W_{\ell,x}^\Tran)\mathbf v_\ell^{\mathrm{rel}}}{r_\ell}
|
||||
+\frac{\mathbf S_\ell\mathbf V_{\xi,x}}{r_\ell}
|
||||
-\frac{\dot{\mathbf w}_\ell r_{\ell,x}}{r_\ell},
|
||||
\qquad x\in\{\alpha,\beta\}.
|
||||
\end{aligned}
|
||||
\end{equation}
|
||||
%
|
||||
最后一行中的 $\mathbf W_{\ell,x}$、$\mathbf V_{\xi,x}$ 为相应矩阵的 $x$ 列,$r_{\ell,x}$ 在该行取标量 $x$ 导数。各星使用自己的 $\mathbf w_\ell$;阵列姿态旋转仅把这条视线写入本地坐标系,不能代替有限距离视差。
|
||||
|
||||
空间短窗近似只冻结 $\mathbf w_\ell(t_0)$ 与阵列姿态 $\boldsymbol\Omega_\ell(t_0)$。在负空间指数约定下,阵元的角导数为
|
||||
%
|
||||
\begin{equation}
|
||||
\label{eq:G_bearing_steering_jac}
|
||||
\frac{\partial[\mathbf a_\ell]_m}{\partial\boldsymbol\xi^\Tran}
|
||||
=-j\frac{2\pi}{\lambda_{\mathrm c}}[\mathbf a_\ell]_m
|
||||
(\mathbf r_{\ell,m}^{\mathrm{loc}})^\Tran
|
||||
\boldsymbol\Omega_\ell(t_0)^\Tran\mathbf W_\ell(t_0).
|
||||
\end{equation}
|
||||
%
|
||||
几何 Doppler 的时间计算仍保留实际 LOS 变化。空间导向变化很小并不足以证明 Doppler rate 中的 LOS 导数项可忽略。
|
||||
|
||||
\paragraph{有限距离 Doppler、rate 与窗口拟合}
|
||||
沿用 \eqref{eq:A6_latlon_doppler_jac} 的传播方向与 Doppler 符号,几何频移 $b_\ell$(Hz)及其瞬时 rate(Hz/s)为
|
||||
%
|
||||
\begin{equation}
|
||||
\label{eq:G_bearing_doppler_rate}
|
||||
\begin{aligned}
|
||||
b_\ell(t)&=-\frac{(\mathbf v_\ell^{\mathrm{rel}})^\Tran\mathbf w_\ell}{\lambda_{\mathrm c}},\\
|
||||
\dot b_\ell(t)&=-\frac{
|
||||
(\mathbf a_\ell^{\mathrm{rel}})^\Tran\mathbf w_\ell+
|
||||
(\mathbf v_\ell^{\mathrm{rel}})^\Tran\dot{\mathbf w}_\ell}{\lambda_{\mathrm c}},\\
|
||||
b_{\ell,x}&=-\frac{\mathbf w_\ell^\Tran\mathbf V_\xi+
|
||||
(\mathbf v_\ell^{\mathrm{rel}})^\Tran\mathbf W_\ell}
|
||||
{\lambda_{\mathrm c}},\\
|
||||
\dot b_{\ell,x}&=-\frac{1}{\lambda_{\mathrm c}}\left[
|
||||
\mathbf w_\ell^\Tran\mathbf A_\xi+
|
||||
(\mathbf a_\ell^{\mathrm{rel}})^\Tran\mathbf W_\ell+
|
||||
\dot{\mathbf w}_\ell^\Tran\mathbf V_\xi+
|
||||
(\mathbf v_\ell^{\mathrm{rel}})^\Tran
|
||||
\frac{\partial\dot{\mathbf w}_\ell}{\partial\boldsymbol\xi^\Tran}
|
||||
\right].
|
||||
\end{aligned}
|
||||
\end{equation}
|
||||
%
|
||||
最后两行都是 $1\times2$ 行向量。瞬时 Taylor 构造取 $t_0$ 处的 $b_\ell-b_r$ 与 $\dot b_\ell-\dot b_r$。对于窗口拟合,采用第~\ref{sec:dynamicDoaDopplerEst}~节固定的帧时刻 $s_p$ 与满列秩设计矩阵 $\mathbf X$;改用逐星有限距离的相对频移向量
|
||||
%
|
||||
\begin{equation}
|
||||
\label{eq:G_bearing_window_ols}
|
||||
\begin{aligned}
|
||||
[\mathbf d_\ell]_p&=b_\ell(t_0+s_p)-b_r(t_0+s_p),\\
|
||||
\mathbf c_\ell&=\begin{bmatrix}\Delta f_\ell\\\Delta\dot f_\ell\end{bmatrix}
|
||||
=\mathbf X^\dagger\mathbf d_\ell,\\
|
||||
\frac{\partial\mathbf c_\ell}{\partial\boldsymbol\xi^\Tran}
|
||||
&=\mathbf X^\dagger\mathbf D_\ell^{\,b},\qquad
|
||||
[\mathbf D_\ell^{\,b}]_{p,:}=b_{\ell,x}(t_0+s_p)-b_{r,x}(t_0+s_p).
|
||||
\end{aligned}
|
||||
\end{equation}
|
||||
%
|
||||
固定时刻时 $\mathbf X^\dagger$ 不求角导数。系数斜率的导数由全部帧节点的 $b_{\ell,x}$ 拟合得到,一般不是 $\dot b_{\ell,x}(t_0)-\dot b_{r,x}(t_0)$。候选依赖选星、时间节点或拟合权重时,不满足这里的固定设计假设;搜索域应先固定观测星集,观测缺失及边界另行处理。
|
||||
|
||||
总系数仍保留两个独立参考标量:
|
||||
%
|
||||
\begin{equation}
|
||||
\label{eq:G_bearing_reference_coefficients}
|
||||
\begin{bmatrix}f_\ell\\\dot f_\ell\end{bmatrix}
|
||||
=\begin{bmatrix}f_{\mathrm{ref}}\\\dot f_{\mathrm{ref}}\end{bmatrix}
|
||||
+\mathbf c_\ell(\boldsymbol\xi),
|
||||
\qquad
|
||||
\begin{bmatrix}\nu_\ell\\\dot\nu_\ell\end{bmatrix}
|
||||
=\operatorname{diag}(2\pi T_{\mathrm s},2\pi T_{\mathrm s}^2)
|
||||
\begin{bmatrix}f_\ell\\\dot f_\ell\end{bmatrix}.
|
||||
\end{equation}
|
||||
%
|
||||
这一参数化允许公共发射频偏或其一阶漂移叠加在各星几何频移上;接收机专属频偏需已校准或另建干扰模型。已知高度只约束几何,不把参考频移或 rate 变成已知量。CP-K 固定参考 rate 的实际值,但 \eqref{eq:G_bearing_window_ols} 的相对 rate 角导数仍保留;CP-U 和 IP-U 则消去未知参考 rate。所有相位系数与空间映射须同时用于观测生成、候选计算及信息矩阵。
|
||||
|
||||
\paragraph{似然与有效信息接口}
|
||||
在上述 phase-only 模型中,导频不含随候选角变化的时延;相对距离没有提供新增的包络或绝对载波相位观测。若幅度是自由干扰参数,也不对传播损耗另加角导数。将 \eqref{eq:G_bearing_reference_coefficients} 与 \eqref{eq:G_bearing_steering_jac} 代入 \eqref{eq:A7_qx_cp} 及空时模板的 Kronecker 导数即可。参考频移、参考 rate、幅度及相位列保持原有形式。
|
||||
|
||||
因此,\appref{sec:multiFrameCrb} 的 CP/IP 幅相结构、非负幅度的集中似然、实参数 \gls{fim} 与 Schur 补、实化投影以及 \eqref{eq:A7_real_rank_condition} 的秩判据继续适用;改变的是均值及两角导数的几何映射。结构化 CP 的同星公共相位不能按每块自由复增益消去。SS/MS 比较须保持参考星、源状态、采样与噪声协议相同;单星参考链路的相对系数恒为零,既有 K/U 正交性在相同窄带与幅相假设下仍成立,多星数值损失须重算。
|
||||
|
||||
\paragraph{经纬度误差与完整协方差变换}
|
||||
对同一已知高度、分支和 $t_0$,令 $\boldsymbol\xi=h(\boldsymbol\vartheta)$。将星到源单位向量记为 $\mathbf e_r=(\mathbf p_0-\mathbf s_r)/r_r=-\mathbf w_r$,有
|
||||
%
|
||||
\begin{equation}
|
||||
\label{eq:G_bearing_latlon_jac}
|
||||
\begin{aligned}
|
||||
\mathbf H=\frac{\partial\boldsymbol\xi}{\partial\boldsymbol\vartheta^\Tran}
|
||||
&=\mathbf K(\mathbf e_r)\frac{\mathbf I_3-\mathbf e_r\mathbf e_r^\Tran}{r_r}\mathbf P,\\
|
||||
\mathbf K(\mathbf e_r)
|
||||
&=\begin{bmatrix}
|
||||
-e_{r,2}/(e_{r,1}^2+e_{r,2}^2)&e_{r,1}/(e_{r,1}^2+e_{r,2}^2)&0\\
|
||||
0&0&1/\sqrt{1-e_{r,3}^2}
|
||||
\end{bmatrix},
|
||||
\qquad \mathbf P_\xi\mathbf H=\mathbf P.
|
||||
\end{aligned}
|
||||
\end{equation}
|
||||
%
|
||||
分母非零、$\mathbf P$ 满列秩且交点横截时,$\mathbf H$ 可逆。令完整结构参数为 $\boldsymbol z=[\boldsymbol\vartheta^\Tran,f_{\mathrm{ref}},\dot f_{\mathrm{ref}}]^\Tran$,变换 Jacobian 为 $\mathbf T=\operatorname{diag}(\mathbf H,\mathbf I_2)$。消去相同幅相参数后,同一观测模型满足
|
||||
%
|
||||
\begin{equation}
|
||||
\label{eq:G_bearing_covariance_transform}
|
||||
\mathbf J_z=\mathbf J_{z'}\mathbf T,\qquad
|
||||
\mathcal I_{\mathrm e,z}=\mathbf T^\Tran\mathcal I_{\mathrm e,z'}\mathbf T,
|
||||
\qquad
|
||||
\mathbf C_{z'}=\mathbf T\mathbf C_z\mathbf T^\Tran .
|
||||
\end{equation}
|
||||
%
|
||||
这里 $\boldsymbol z'=[\boldsymbol\xi^\Tran,f_{\mathrm{ref}},\dot f_{\mathrm{ref}}]^\Tran$,协方差须包含交叉项;两项角标准差不足以完成变换。三维 K 配置可删去固定 rate 对应行列后作同样变换。直接 bearing Jacobian、经纬度 Jacobian 的链式结果与变换后的有效信息,是可分别实现并核对的三个接口。
|
||||
|
||||
已有估计样本应先把每个估计经纬度非线性映射为参考星视线,再计算夹角
|
||||
%
|
||||
\begin{equation}
|
||||
\label{eq:G_bearing_error_metric}
|
||||
\epsilon_{\mathrm{dir}}=
|
||||
\operatorname{atan2}(\|\widehat{\mathbf e}_r\times\mathbf e_r^\star\|_2,
|
||||
\widehat{\mathbf e}_r^\Tran\mathbf e_r^\star),
|
||||
\qquad
|
||||
B_{\mathrm{dir},r}=\operatorname{tr}\!\left[
|
||||
\operatorname{diag}(\cos^2\beta,1)\mathbf C_{\xi\xi}\right].
|
||||
\end{equation}
|
||||
%
|
||||
前者可用于重统计有限误差与失败样本,后者是小误差局部界;二者不能以同一次线性化替代。若仅存旧 RMSE 或标准差,通常无法恢复新指标。坐标缩放会改变条件数和角度--频率分量相关性;比较信息耦合时须说明单位和参数尺度,必要时在统一的物理切空间中比较。
|
||||
|
||||
\paragraph{参考星、时间原点与几何比较}
|
||||
换参考星为 $r'$ 时,同一源位置对应新的来向角 $\boldsymbol\xi'=h_{r'}(\mathbf p_0)$,参考系数随之变为
|
||||
%
|
||||
\begin{equation}
|
||||
\label{eq:G_bearing_reference_change}
|
||||
\begin{aligned}
|
||||
\mathbf c'_\ell&=\mathbf c_\ell-\mathbf c_{r'},\\
|
||||
\begin{bmatrix}f'_{\mathrm{ref}}\\\dot f'_{\mathrm{ref}}\end{bmatrix}
|
||||
&=\begin{bmatrix}f_{\mathrm{ref}}\\\dot f_{\mathrm{ref}}\end{bmatrix}
|
||||
+\mathbf c_{r'}(\boldsymbol\xi),\\
|
||||
\mathbf T_{r\to r'}&=
|
||||
\begin{bmatrix}
|
||||
\frac{\partial\boldsymbol\xi'}{\partial\boldsymbol\xi^\Tran}&\mathbf0\\
|
||||
\frac{\partial\mathbf c_{r'}}{\partial\boldsymbol\xi^\Tran}&\mathbf I_2
|
||||
\end{bmatrix}.
|
||||
\end{aligned}
|
||||
\end{equation}
|
||||
%
|
||||
下两行构成完整四维变换,参考系数的角导数不能省略。换星后的方向夹角指标描述另一条物理视线;比较 A/B 星集可固定一个共同参考星,或把全部估计与界投影到同一报告视线。不同参考星的参考 Doppler 也不是同一物理量。CP-K 固定原参考 rate 后,换星通常得到随角度变化的已知约束,并不等价于把新参考 rate 固定为常数的另一个 K 实验。
|
||||
|
||||
在保持 $\boldsymbol\xi$ 定义于原 $t_0$ 时,内部时间居中仍使用 \eqref{eq:A7_affine_epoch_transform} 和完整四维协方差变换。若同时把 bearing 定义时刻改到新时刻,则须由 \eqref{eq:G_bearing_source_motion} 传播源位置,再重新计算新参考视线及其角 Jacobian。重新选择拟合窗口则重新定义 OLS 系数,一般不是单纯的时间原点变换。报告中的参考频移是拟合直线在指定原点的截距,未必等于该时刻的瞬时物理频移。
|
||||
|
||||
\paragraph{时间近似与高保真残差}
|
||||
窗口诊断在各星真实有限距离 LOS 上评估阵列导向变化与几何频移曲率。定义参考几何系数 $\mathbf k_r=\mathbf X^\dagger[b_r(t_0+s_p)]_p$,则各星拟合几何频移为 $[1,s](\mathbf k_r+\mathbf c_\ell)$。物理相位与 affine 相位的差为
|
||||
%
|
||||
\begin{equation}
|
||||
\label{eq:G_bearing_fidelity_residual}
|
||||
\epsilon_{\phi,\ell}(s)=2\pi\int_0^s
|
||||
\left\{b_\ell(t_0+v)-[1,v](\mathbf k_r+\mathbf c_\ell)\right\}\diff v .
|
||||
\end{equation}
|
||||
%
|
||||
即使相对频移残差很小,参考链路的非 affine 公共残差也可能存在;只报告相对残差不足以证明完整相位近似。若另加公共发射频偏轨迹,应同时计入其线性拟合以外的残差。高保真生成可保留实际 LOS、姿态、路径幅度与积分相位,估计模板保持短窗冻结空间与二次相位;模型差异应按这些分量记录,同星常相位及允许的幅度变化可被干扰参数吸收。对固定星集与已声明幅相模型,可进一步检查白化均值残差在干扰切空间外的分量,但该诊断本身不证明有限样本效率。
|
||||
|
||||
窗口、K/U、SS/MS、CP/IP 和星集敏感性分析均使用 \eqref{eq:G_bearing_window_ols} 的相同几何映射;前者另需相位及空间残差检查,后几类需重新生成候选导数与界。若旧样本确由同一有限距离模型产生,可先转换保存的估计与完整局部协方差;新 bearing 搜索域、捕获成功率、时间近似和高保真适用性仍须分别核查。
|
||||
|
||||
\subsection{DoA-融合基线的位置 CRB}
|
||||
\label{subsec:H4_doaFusion}
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
第~\ref{sec:multiArrayStatDetDoaDopplerEst}--\ref{sec:dynamicDoaDopplerEst}~节以公共全局方向为几何参数。有限距离下,各星到用户的视线不同,需要由同一个用户位置 $\mathbf p$ 分别生成这些方向。
|
||||
本节以有限距离下的用户位置 $\mathbf p$ 为几何参数,先建立逐星视线与差分 Doppler 映射,再引入传播时延。基线采用单观测块、单用户和已知导频,各星采样时间基对齐,复增益独立未知;多用户推广在节末给出,时间戳误差与多帧扩展分别见第~\ref{sec:timestampError}、\ref{sec:dynamicDoaDopplerEst}~节。
|
||||
逐星视差、差分 Doppler 和差分时延提供不同的几何约束。以位置为主参数、直接利用原始观测估计的方法称为直接定位(Direct Position Determination,DPD)\cite{liFastAccurateLEO2022,haoInterferenceGeolocationSatellite2021}。公共方向与位置模型的联系将在视线映射后说明。
|
||||
位置 \gls{crb} 推导见\appref{sec:userPositionCrb},已知高度下的经纬度参数化及其与公共方向模型的比较见\appref{subsec:A6_latlon_crb}。
|
||||
位置 \gls{crb} 推导见\appref{sec:userPositionCrb},已知高度下的经纬度参数化及其与公共方向模型的比较见\appref{subsec:A6_latlon_crb}。在已知曲面和局部唯一的可见交点条件下,也可用参考星来向的两个角描述几何;不利用传播时延的多帧 Doppler 映射与相应导数见\appref{subsec:G_reference_bearing}。
|
||||
|
||||
\subsection{位置参数化与逐星视线映射}
|
||||
\label{subsec:positionLosMap}
|
||||
|
||||
Reference in New Issue
Block a user