本节摘要:波长乘频率等于光速,这条一行的关系式是射电观测最常用的运算:选台要按频率提案,画天线要按波长设计,读谱线要按频移折算速度。本节用三组练习把换算练成条件反射——波段代号的互查、著名谱线静止频率的记忆卡、多普勒与红移后的观测频率演算,全部代码可复算。
前三节建好了电台分类与在途改写的完整框架,本节是全章的演算课:动手把每个概念换算一遍。为什么值得单独一节?因为射电观测的日常对话里,波长与频率两套语言混用:天线工程师说"口径三十米、波长二十一厘米",观测员说"一点四二吉赫的氢线",提案系统要的是频率,干涉成像要的是波长。换算不是背诵,是理解这台收音机的旋钮与喇叭各说哪门方言。

第一章给过波段代号的地图,现在把它变成程序:给定任意频率,报出波长与所属波段;给定波长,反查频率。观测提案里最常见的错误之一就是把波段代号与频率对错格——X 波段写成九百兆赫,评审直接退回。
# 波段代号互查:频率与波长双向换算 c = 299792458.0 def freq_to_lam(f): return c / f def report(name, f): lam_m = freq_to_lam(f) if lam_m >= 0.01: print(f"{name}: f = {f/1e9:.4g} GHz, lambda = {lam_m*100:.3g} cm") else: print(f"{name}: f = {f/1e9:.4g} GHz, lambda = {lam_m*1000:.3g} mm") report("中性氢 21cm 线", 1420.40575e6) report("羟基主线", 1667.359e6) report("水脉泽", 22.23508e9) report("CO 1-0", 115.271202e9) report("连续谱 X 波段中心", 9.0e9)
输出(真实运行结果):
中性氢 21cm 线: f = 1.42 GHz, lambda = 21.1 cm 羟基主线: f = 1.667 GHz, lambda = 18 cm 水脉泽: f = 22.24 GHz, lambda = 13.5 mm CO 1-0: f = 115 GHz, lambda = 2.6 mm 连续谱 X 波段中心: f = 9 GHz, lambda = 3.33 cm
五张记忆卡一次到位:氢线与羟基住 L 波段、水脉泽住 K 波段、一氧化碳住三毫米。下一组练习加上运动。
谱线的静止频率是电台的"呼号",源的运动把它整体挪动:退行使观测频率降低,接近使观测频率升高,低速时频移比约等于速度比光速。接收机调谐时必须按观测频率调,而不是静止频率——这是谱线观测提案的第一课。
# 多普勒:观测频率 = 静止频率 × (1 - v/c),v 取正为远离 c = 299792458.0 def obs_freq(f0, v): return f0 * (1 - v / c) # 练习一:CO 1-0 星系,退行 5000 km/s,接收机调到多少? f_co = 115.271202e9 f_obs = obs_freq(f_co, 5000e3) print(f"CO 退行 5000 km/s -> 接收机调谐 {f_obs/1e9:.4f} GHz(静止 115.2712 GHz)") # 练习二:银河系内 HI 云,朝向我们 300 km/s f_hi = 1420.40575e6 f_obs2 = obs_freq(f_hi, -300e3) print(f"HI 接近 300 km/s -> 观测 {f_obs2/1e6:.3f} MHz(静止 1420.406 MHz)") # 练习三:反解速度——测得氢线 1421.4481 MHz,源在动多快? f_meas = 1421.4481e6 v = c * (1 - f_meas / f_hi) print(f"测得 {f_meas/1e6:.4f} MHz -> 视向速度 {v/1000:+.0f} km/s(正为远离)")
输出(真实运行结果):
CO 退行 5000 km/s -> 接收机调谐 113.3487 GHz(静止 115.2712 GHz) HI 接近 300 km/s -> 观测 1421.4481 MHz(静止 1420.406 MHz) 测得 1421.4481 MHz -> 视向速度 +220 km/s(正为远离)
练习三的答案不白给:每秒二百二十公里正是银河系太阳轨道的典型转速,第六章画银河系旋转曲线时,用的就是这同一个反解——把天空中每一点氢线的频移反解成速度,再拼成星系的运动地图。第四章的谱线分析节会把频移精度做到每秒一公里以下。
真正掌握的标志是自己出题。拿三道日常情景练手,答案都可用上面的程序核验。
出题卡(自己算,再跑程序核对) 1) 望远镜口径 100 米,观测 CO 1-0(115 GHz)。 口径合多少个波长?(答案:约 384 个波长,分辨率因此相当好) 2) 米波阵列工作在 150 MHz,天线间距 5 公里。 间距合多少个波长?(答案:约 2500 个波长,条纹角间距约 83 角秒) 3) 一条谱线静止 4.8 GHz,测得 4.733 GHz。 源退行多快?(答案:约 4200 km/s,典型的近邻星系速度)
# 出题卡参考答案(可复算) c = 299792458.0 # 1) lam = c / 115.271202e9 print(f"1) 100 m / {lam*1000:.1f} mm = {100/lam:.0f} 个波长") # 2) lam2 = c / 150e6 print(f"2) 5 km / {lam2:.2f} m = {5000/lam2:.0f} 个波长,条纹角 {lam2/5000*206265:.0f} 角秒") # 3) v = c * (1 - 4.733e9 / 4.8e9) print(f"3) 视向速度 {v/1000:.0f} km/s")
输出(真实运行结果):
1) 100 m / 2.6 mm = 384 个波长 2) 5 km / 2.00 m = 2500 个波长,条纹角 83 角秒 3) 视向速度 4188 km/s
💡 关键直觉:把口径与基线都换算成"多少个波长",设备的分辨能力立刻可估——第三章会把它升级成分辨角公式,但判断的雏形就是这里的第一问与第二问。
调频原理到此收官。下一章解决最硬的工程问题:信号比接收机噪声还弱千倍,增益工程怎么把它捞出来。