水中声速约 1500 米每秒,随温度、盐度、深度变化形成声速剖面,剖面弯折声线形成声道;传播损失 = 球面扩展 + 吸收;声呐方程把源级、传播损失、目标强度、噪声级与检测阈值列成一次预算,回答"探不探得到"。
科考船的故事从介质本身讲起。声在水里走得远,但"远"不是无限的——预算表就是声呐方程。
水中声速近似 c ≈ 1449 + 4.6T − 0.055T² + 1.4(S−35) + 0.017D(T 摄氏温度、S 盐度、D 深度米)。温度随深度下降,声速先降;到千米以下温度稳定,压力项接管,声速回升——剖面呈"勺形",最小值在约 1000 米深处。声线向低速区弯折(斯涅尔定律),于是被禁闭在勺底附近上下反射前进,损耗极小——深海声道(SOFAR)。鲸的低频歌声与百千克级炸药信号横穿洋盆,走的都是这条免费高速路。二战期间的声发系统曾在南太平洋用三座岸站交叉定位落海飞行员,靠的正是声道远距离传播。
import numpy as np def sound_speed(T, S=35, D=0): """UNESCO 简化声速公式(m/s)""" return 1449.2 + 4.6*T - 0.055*T**2 + 1.4*(S-35) + 0.017*D for T, D in [(24, 0), (18, 200), (8, 600), (4, 1000), (2, 3000)]: print(f"T={T:2d} °C, D={D:4d} m -> c = {sound_speed(T, D=D):6.1f} m/s") # T=24 °C, D= 0 m -> c = 1538.0 m/s(暖表层,声速高) # T=18 °C, D= 200 m -> c = 1517.2 m/s # T= 8 °C, D= 600 m -> c = 1479.6 m/s # T= 4 °C, D=1000 m -> c = 1474.6 m/s(声道轴附近,声速最小) # T= 2 °C, D=3000 m -> c = 1525.2 m/s(深水压力接管,声速回升)
球面扩展损失 20lg(r);此外海水对声的吸收随频率陡增——硼酸与硫酸镁的化学弛豫在千赫兹段吃掉几分贝每公里,到 100 千赫兹每公里损失几十分贝。所以远程探测只能用低频,而低频换能器又大又重、波束又宽——水声的第一对矛盾:距离对频率。
import numpy as np def absorption(f_khz): """海水吸收系数 dB/km(Thorp 经验式,量级示意)""" f2 = f_khz**2 return 0.11*f2/(1+f2) + 44*f2/(4100+f2) + 2.75e-4*f2 + 0.003 def tl(r_km, f_khz): return 20*np.log10(r_km*1000) + absorption(f_khz)*r_km for f in (0.1, 1, 10, 50): print(f"{f:5.1f} kHz @ 20 km: 吸收 {absorption(f):7.2f} dB/km, " f"总传播损失 ≈ {tl(20, f):6.1f} dB") # 0.1 kHz @ 20 km: 吸收 0.00 dB/km, 总传播损失 ≈ 66.0 dB # 1.0 kHz @ 20 km: 吸收 0.06 dB/km, 总传播损失 ≈ 66.2 dB # 10.0 kHz @ 20 km: 吸收 1.05 dB/km, 总传播损失 ≈ 87.1 dB # 50.0 kHz @ 20 km: 吸收 10.71 dB/km, 总传播损失 ≈ 280.0 dB # 低频几乎免费走 20 公里,50 kHz 连零头都走不完 —— # 潜艇远程警戒用百赫兹级,鱼雷制导与测深用几十千赫兹短距离。

主动声呐方程:回波信号级 = SL − 2TL + TS ≥ NL − DI + DT。源级 SL 是发射声功率的对数度量;回波往返承受两次传播损失 2TL;目标强度 TS 刻画目标反射能力(潜艇正横远强于艏向);背景噪声 NL 经基阵指向性 DI 压低;检测阈值 DT 由虚警概率与积分时间决定。等式左边是"听到的",右边是"需要的"——预算能否平衡,一算便知:
import numpy as np SL, TS, NL, DI, DT = 220.0, 15.0, 60.0, 20.0, 10.0 # dB need = NL - DI + DT r_km = 20.0 echo = SL - 2*tl(r_km, 0.5) + TS # 用 0.5 kHz 低频 print(f"需要回波 ≥ {need:.0f} dB;20 km、0.5 kHz 回波 ≈ {echo:.0f} dB") margin = echo - need print("余量 = %+.0f dB -> %s" % (margin, "可检测" if margin >= 0 else "需加源级或降低检测阈")) # 需要回波 ≥ 50 dB;20 km、0.5 kHz 回波 ≈ 100 dB # 余量 = +50 dB -> 可检测
余量 50 分贝看似宽裕,但这是理想球面扩展:浅海多径、海面混响、目标 TS 随姿态的剧变随时吃掉几十分贝——声呐设计的现实就是把这张预算表在最坏工况下再算一遍。
💡 关键直觉:声呐方程与链路预算(无线通信)同构——发射功率、路径损失、接收灵敏度、噪声门限的会计学,跨领域的工程语言常常是同一本账。
下一节把单个换能器排成阵列:波束形成。
浅海和深海传播差在哪? 浅海受海面海底反复反射,多径干涉使传播损失随距离剧烈起伏;温跃层还可能把声源"关"在混合层内或层下。深海声道反而是稳定信道——水声工程师最怕的不是远,是浅。
被动声呐方程有什么不同? 去掉回波项:SL − TL ≥ NL − DI + DT,测的是目标自身辐射。潜艇安静化就是把 SL 往下压;被动声呐的军备竞赛本质是 SL 的降噪与 NL 的处理增益之争。
为什么不用电磁波通信? 海水对无线电的吸收以每米数十分贝计,几十米就失联。蓝绿激光窗口也只在百米量级。声虽慢(约 5 秒横跨大西洋),却是深海唯一实用的远程载体——水声通信的编码与组网因此自成一支学问。