本节摘要:本节以一个虚构但参数真实的观测项目为剧本,把全册流程完整回放:探测一颗十兆秒差距外矮星系的中性氢,从科学问题、波段与设备选择、灵敏度预算、计划编排、校准与排噪,到最后读谱出质量。每一步都标注功法出处——这是全册知识地图的一次总装演练。
上一节的翻译表是零件,本节把它们装成整车。学会各道工序与能完成一次完整观测之间,隔着的是"顺序感"与"取舍感":先做什么后做什么、哪一步出错会在哪一步暴露、预算不够时先砍什么。复盘是最好的练法——剧本虚构,数字真实,每个环节的演算都能复算,每个决策都能追问"如果换一个选择会怎样"。
科学问题:邻近星系群里一颗矮星系(距离约十兆秒差距)据信几乎没有恒星形成活动,它还剩多少中性氢?氢的含量决定它是"暂时休眠"还是"永久熄火"——这是第六章星系演化叙事的最小案例。翻译成观测语言:测该方向的二十一厘米谱线,报出积分流量(换质量)、线心频率(换速度)、线宽(换内部运动)。预期流量:类似矮星系的氢线积分流量约零点五央斯基乘每秒公里量级,峰值流量几毫央斯基——第四章节里那种"弱源"。
先做灵敏度预算(第三章的辐射计方程):五倍信噪比探测五毫央斯基的峰值,用一兆赫宽的通道(对应二十厘米波段约每秒二百一十公里的速度覆盖——足够容纳矮星系的线宽),问需要多长积分。再决定设备:单口径二十五米天线与二十五面天线组成的小阵,账面差距惊人。
# 复盘第一幕:灵敏度预算与设备选择 import math SEFD = 420.0 # Jy,25m 口径天线的账(第三章演算过) eta = 0.88 npol = 2 snr = 5.0 S_target = 5e-3 # Jy,目标峰值流量 sigma_req = S_target / snr dnu = 1e6 # 1 MHz 通道 tau_single = (SEFD / (eta * sigma_req))**2 / (npol * dnu) print(f"要求噪声 σ = {sigma_req*1000:.1f} mJy") print(f"单口径 25m:需要积分 {tau_single:.0f} s ≈ {tau_single/3600:.1f} 小时") # 25 面天线的小阵:阵灵敏度按单天线 SEFD 除以根号下 N(N-1) nant = 25 SEFD_arr = SEFD / math.sqrt(nant * (nant - 1)) tau_arr = (SEFD_arr / (eta * sigma_req))**2 / (npol * dnu) print(f"25 面阵:阵 SEFD = {SEFD_arr:.1f} Jy,需要积分 {tau_arr:.0f} s ≈ {tau_arr/60:.0f} 分钟") print("阵列的真正价值:不是天线更大,而是把 hours 变成 minutes")
输出(真实运行结果):
要求噪声 σ = 1.0 mJy 单口径 25m:需要积分 113895 s ≈ 31.6 小时 25 面阵:阵 SEFD = 17.1 Jy,需要积分 190 s ≈ 3 分钟
预算给出清晰裁决:单口径要熬三十二小时(拆成几个夜晚),小阵只要几分钟。但别忘了第一章的提醒——阵列没有大口径的视场与"零空间分辨率"便利,而且要为此目标定制通道与构型。最终方案:二十五面天线、最紧凑构型(矮星系是点源,要灵敏度不要分辨率)、L 波段接收机、一兆赫通道。
计划层面(第四章第一站):目标在秋夜上中天,安排在高度最高时段观测两次各三分钟,前后各切一次相位定标源;流量与带宽定标用干涉阵列的标准烛光源,一晚早各一次。流水线层面(第二站):通道一兆赫、积分时间十秒、三维落盘。处理层面(第三、四站):带宽与流量定标后,用中位数加中位绝对偏差的判据扫描时间-频率网格——剧本里安排了一次卫星过境,恰好当考题。
# 复盘第二幕:排噪考题与质量验收 import math rng = [1.02, 0.98, 1.01, 6.8, 7.4, 6.9, 1.00, 0.97, 1.03, 1.01] # 十个时间片的带内功率 def median(xs): s = sorted(xs); n = len(s) return s[n//2] if n % 2 else (s[n//2-1]+s[n//2])/2 med = median(rng) mad = median([abs(x - med) for x in rng]) threshold = med + 6 * 1.4826 * mad flagged = [i for i, x in enumerate(rng) if x > threshold] clean = [x for i, x in enumerate(rng) if i not in flagged] print(f"标记的时间片: {flagged}(卫星过境)") print(f"保留 {len(clean)}/{len(rng)} 片,灵敏度损失 {100*(1-len(clean)/len(rng)):.0f}%")
输出(真实运行结果):
标记的时间片: [3, 4, 5](卫星过境) 保留 7/10 片,灵敏度损失 30%
三成数据被牺牲——但对比第三章的预算表,三分钟的积分损失三成仍远优于单口径三十二小时,这就是当初选阵列的分红。
成图(第四章第五站)后,在目标位置抽出像素谱:谱峰清晰,进入最后一站的翻译(本章第一节)。
# 复盘第三幕:五数体检 import math c = 299792.458 # km/s f0 = 1420.40575e6 # 氢线静止频率 f_peak = 1419.913e6 # 观测线心 S_peak = 8.0 # mJy,谱峰 fwhm = 60.0 # km/s,线宽(含星系自转与湍流) D = 10.0 # Mpc,距离 v_sys = c * (1 - f_peak/f0) gauss_factor = 1.064 # 高斯线形的积分形状因子 Stot = (S_peak/1000.0) * fwhm * gauss_factor # 积分流量 Jy km/s M_HI = 2.356e5 * D**2 * Stot print(f"线心频率 -> 视向速度 = +{v_sys:.0f} km/s(退行)") print(f"积分流量 ≈ {Stot:.3f} Jy km/s") print(f"氢质量 M_HI = 2.356e5 x D^2 x S_tot ≈ {M_HI:.2e} 太阳质量")
输出(真实运行结果):
线心频率 -> 视向速度 = +104 km/s(退行) 积分流量 ≈ 0.511 Jy km/s 氢质量 M_HI = 2.356e5 x D^2 x S_tot ≈ 1.20e+07 太阳质量
体检报告出炉:一千二百万倍太阳质量的氢、每秒一百零四公里的退行速度、六十公里每秒的线宽(对矮星系偏宽,暗示扰动或伴星系相互作用)。科学结论:这颗矮星系燃料尚存,属于"休眠待机"而非"永久熄火"。从一句话的科学问题到一组物理参数,全册的每道工序都出了力。
回放完毕,用一张清单自检功法是否真的连成了线。
复盘验收清单(每条都能对回一章) [ ] 科学问题翻译成了流量、波段、分辨率的观测预算(第三章) [ ] 波段选择说得出物理理由:为什么是 21cm(第一章) [ ] 设备选择比较过至少两种方案的账面(第三章) [ ] 计划里有定标循环与干扰窗口规避(第四章) [ ] 通道与时间片的选择说得出依据(第四章) [ ] 排噪有判据、有代价核算(第四章) [ ] 读谱产出五数:成分 速度 湍流 密度 温度(第五章) [ ] 结论回到了最初的科学问题(闭环)
💡 关键直觉:观测是全册知识的总装线——任何一道工序单独看都不难,难点在"顺序与取舍"。复盘多做几遍,性能表、辐射计方程与翻译表就会从记忆变成手感。
翻译与复盘全部完工,功法齐装。下一章开始逐台收听:太阳、分子云、脉冲星、星系核、宇宙余音,一一过堂。