4. 水声信道水池多径冲激响应测量
水池多径测量的物理约束与信号选择
水池是有限尺寸的封闭声场,池壁、水面、池底都会产生强反射。与开阔水域不同,水池中的多径不是"稀疏的几条海面/海底反射",而是直达波 + 多次壁面反射的密集叠加。因此测量目标不是分辨单个反射体,而是获得信道冲激响应 h(τ) 并从中提取两个关键参数:
- 多径时延扩展:冲激响应中首个有效到达与最后一个超过门限的到达之间的时间差,常用均方根时延扩展 τrms 表征;
- 相干带宽:Bc ≈ 1/(5τrms),决定后续通信波形可用的带宽上限。
探测信号选用线性调频(LFM)宽带信号:时宽 T 决定处理增益与抗噪能力,带宽 B 决定时延分辨率 Δτ ≈ 1/B。例如 B = 20 kHz 时 Δτ ≈ 50 μs,对应水中声速 1500 m/s 的距离分辨率约 7.5 cm,足以分辨池壁反射。接收端用匹配滤波(相关处理)压缩脉冲,得到等效的冲激响应包络。
测量实施:从发射到冲激响应
下面给出一个可直接运行的 Python 处理脚本,输入为已采集的接收信号(示例用合成数据模拟水池多径,实际测量时替换为采集到的 wav 数据即可)。脚本完成匹配滤波、包络提取、门限检测与 τrms 计算。
import numpy as np
fs = 200_000 # 采样率 200 kHz
B = 20_000 # LFM 带宽 20 kHz
T = 0.010 # LFM 时宽 10 ms
c = 1480.0 # 水中声速 m/s
# 1) 生成 LFM 探测信号 s(t)
t = np.arange(int(T*fs)) / fs
k = B / T
s = np.cos(2*np.pi*(0.5*k*t**2 - 0.5*B*t)) # 基带等效,中心频率已下变频
# 2) 模拟水池多径接收信号(实际测量时替换为采集数据)
# 直达 + 3 条壁面反射,时延与幅度为示例假设值
delays = np.array([0.0, 0.35e-3, 0.80e-3, 1.40e-3])
gains = np.array([1.0, 0.55, 0.32, 0.18])
n_total = int(1.6e-3*fs) + len(s)
rx = np.zeros(n_total)
for d, g in zip(delays, gains):
i0 = int(d*fs)
rx[i0:i0+len(s)] += g * s
rx += 0.02 * np.random.randn(n_total) # 加性噪声
# 3) 匹配滤波:rx 与 s 相关
mf = np.correlate(rx, s, mode='full')
mf = mf / np.max(np.abs(mf)) # 归一化
env = np.abs(mf) # 包络
tau = (np.arange(len(mf)) - (len(s)-1)) / fs # 相对时延轴
# 4) 门限检测,提取有效多径
thr = 0.15
idx = np.where(env > thr)[0]
# 合并相邻过门限点为一个到达峰
peaks, last = [], -10
for i in idx:
if i - last > int(0.05e-3*fs):
peaks.append(i)
last = i
peaks = np.array(peaks)
tau_p = tau[peaks]
amp_p = env[peaks]
# 5) 计算均方根时延扩展
p = amp_p**2
p = p / p.sum()
tau_mean = np.sum(p * tau_p)
tau_rms = np.sqrt(np.sum(p * (tau_p - tau_mean)**2))
Bc = 1.0 / (5.0 * tau_rms)
print("到达时延(ms):", np.round(tau_p*1e3, 3))
print("相对幅度 :", np.round(amp_p, 3))
print(f"平均时延 : {tau_mean*1e3:.3f} ms")
print(f"τ_rms : {tau_rms*1e3:.3f} ms")
print(f"相干带宽 Bc: {Bc/1e3:.2f} kHz")
示例数据下预期输出(由给定输入直接推出,非实测):到达时延约 0、0.35、0.80、1.40 ms,τrms 约 0.4 ms 量级,Bc 约 0.5 kHz 量级。若实测结果与预期差异明显,按下表排查。
结果判读与常见问题
| 现象 | 可能原因 | 处理 |
|---|---|---|
| 直达峰不明显或分裂 | 收发未对准、换能器指向性旁瓣 | 调整对位,检查换能器指向角 |
| 反射峰过多且密集 | 水池未消声或测量距离过近 | 加吸声尖劈,增大收发间距 |
| τrms 偏大、Bc 偏小 | 强反射未被抑制 | 调整换能器高度避开对称反射路径 |
| 包络底噪高 | 发射功率不足或环境噪声大 | 提高发射电平,增加平均次数 |
测量前先用示波器确认接收信号未削顶;匹配滤波前对接收数据做带通滤波(通带覆盖 B),可显著降低池外噪声对包络的影响。