先用两个像素解一次
假设背景已经准确扣除,两颗星都只有两个像素贡献。目标的光有八成落进左像素、两成落进右像素;邻星恰好相反。观测到左边九百、右边六百光电子。这里先忽略噪声,未知量只有两颗星的总亮度。
把左像素方程乘四,再减去右像素方程,可以消去邻星;也可以先把两个方程相加,得到两颗星总共一千五百。代回去,目标一千,邻星五百。每个像素都混着两颗星的光,方程却仍能分开它们。
把像素排成一张方程表
真实图像有很多像素。用向量 表示一串观测值,用 表示三个未知数。矩阵 的每一行,依次存目标落入该像素的比例、邻星比例和常数一。把矩阵乘以这三个未知数,便得到所有像素的预期值。
有噪声时,通常找不到让每一行都精确相等的一组答案。于是给每个像素算残差:观测减预测。较不可靠的像素权重小一些,再让加权残差平方和尽量小。这叫加权最小二乘。
从最小残差求出亮度与误差
对每个未知亮度分别求导,意思是:微调这个亮度时,平方和还会不会继续下降。最低点的三个导数都为零。把三条条件排在一起,得到下面的线性方程。上标 表示把行列对调。
若三种空间形状可以独立分辨,左侧矩阵就有逆,乘上它可得拟合结果。逆矩阵也给出拟合量的协方差:对角线上是各自方差,非对角线上表示两个估计怎样一起涨落。开平方就得到亮度标准差。
教学模型把真实生成方差直接交给拟合,还固定了星心与高斯宽度。这相当于已知这些输入的理想实验。真实测光中,它们来自有误差的估计;固定输入的拟合误差没有包含这一部分。
对应阅读:Photutils 3.1.1, PSF photometry · Photutils 3.1.1, Aperture photometry
两团光越像,误差越大
回到两个像素的例子。若两颗星都恰好把一半光分到左右两个像素,无论怎样转移两颗星之间的亮度,总预测都一样。你可以测总和,却无法唯一决定各自有多亮。
接近这种情况时,数学仍能给出一个答案,但噪声只要有一点改变,就会让亮度分配变很多。邻星的估计往上偏时,目标常往下偏。误差增大反映的是图像真的缺少区分能力。给拟合多加几位小数不会补上这些信息。
把真实照片拟合完,还应看残差在哪里聚集。一圈有方向的残差,可能提示光斑形状不准;一边正、一边负的残差,可能提示位置偏了。它们需要新的模型或校准。改善光斑模型或位置标定,才是在处理这类图案的来源。
| 量 | 保存结果 |
|---|---|
| 注入目标 | |
| 补偿后的孔径估计 | |
| 双星拟合 | |
| 拟合标准差 | |
| 补偿后的邻星混光 |
孔径半径 2.8 像素,高斯宽度 1.2 像素,星距 3.2 像素,邻星与目标平均亮度之比 0.8;背景每像素 90 光电子,读出噪声标准差 4 光电子。随机种子 444、变化相位 1.2 弧度固定这次曝光。运行 node scripts/astronomy/ac02/default-benchmark.ts 可重算。连续曝光会推进相位和噪声,后续读数会变。
把人造星放进去,再找回来
注入回收试验提供一次可以知道答案的检查。先生成已知亮度的恒星,再加上背景与随机噪声,用同一套测量流程恢复它。重复许多次,可分别观察平均偏差、误差范围覆盖真值的频率,以及达到预设门槛的比例。
本路线固定了八组试验,每组二百次,门槛为拟合亮度大于五倍拟合标准差。目标位置已知,因此这里测试的是指定位置的条件回收,尚未包含搜索整幅图时的误报、多重比较和漏检定位。
在三百五十光电子这一组,邻星距目标一点四像素时,二百次中二十次过门槛;移到七像素时,一百九十二次过门槛。两组使用同一模拟规则。这个差别说明,邻星能显著降低暗星的回收率,即使平均亮度估计仍接近正确。结果文件同时保存每组偏差与均方根误差。