3. 信号环境建模:威胁辐射源模型、信号传播模型与PDW生成
好,咱们进入第三个核心模块——信号环境建模。
说实话,很多做电子对抗系统的人,容易忽略这一步。他们觉得,算法才是核心,环境建模不过是“搭个台子”。但我个人的经验是——台子搭歪了,戏就没法唱。你想想看,如果威胁辐射源的参数都不准,传播模型又过于理想化,那后面验证出来的结果,你敢信吗?
3.1 威胁辐射源模型
威胁辐射源,说白了就是我们要对抗的“敌人”。它可能是雷达、通信电台,也可能是干扰机。建模时,我习惯从三个维度入手:
- 发射参数:频率、功率、脉宽、重频(PRI)
- 天线特性:波束宽度、扫描方式、极化方式
- 调制样式:常规脉冲、线性调频(LFM)、相位编码(BPSK/QPSK)等
举个例子。我在项目中遇到过一种典型的火控雷达,它的参数大致是这样的:
| 参数项 | 典型值 | 备注 |
|---|---|---|
| 工作频率 | 9.5 GHz | X波段 |
| 峰值功率 | 200 kW | —— |
| 脉冲宽度 | 1 μs | 窄脉冲模式 |
| PRI | 1 ms | 固定重频 |
| 天线增益 | 35 dBi | —— |
| 扫描方式 | 机械扫描 | 360° 方位,2 rpm |
嗯,这里要注意。威胁辐射源模型不能只给一个“静态”的参数表。因为实际战场上,雷达是会切换工作模式的。比如搜索模式、跟踪模式、制导模式,它们的PRI和脉宽可能完全不同。我建议在建模时,至少准备2~3种模式的状态机。
3.2 信号传播模型
信号从辐射源飞到接收机,中间会发生什么?衰减、多径、多普勒频移……这些都得考虑进去。
3.2.1 自由空间传播模型
自由空间模型是最基础的。它假设信号在真空中传播,没有反射、没有遮挡。公式很简单:
Pr = Pt * Gt * Gr * (λ / (4πR))²
其中 Pr 是接收功率,Pt 是发射功率,Gt/Gr 是天线增益,λ 是波长,R 是距离。
但说实话,这个模型在实战中很少单独用。为什么?因为真实环境里,地面、建筑物、海面都会产生反射。你想想看,如果只算自由空间,那接收功率会偏大,导致你误判“我能截获到信号”,实际上可能根本收不到。
3.2.2 多径传播模型
多径,是电子对抗里最头疼的问题之一。我曾经在一个城市环境测试中,发现接收到的信号出现了“分裂”——同一个脉冲,因为地面反射,变成了两个甚至三个脉冲。PDW 解析直接乱掉。
多径模型通常用两径模型或射线追踪模型。两径模型考虑直达波和地面反射波:
Pr_total = Pr_direct + Pr_reflected * exp(-j * Δφ)
Δφ 是两条路径的相位差。如果相位差是 180°,信号会相互抵消,这就是所谓的“衰落”。
3.3 脉冲描述字(PDW)生成
PDW,是电子对抗系统里最核心的数据结构。它描述了一个脉冲的“身份信息”。典型的 PDW 包含:
- TOA(到达时间)
- DOA(到达角)
- RF(射频频率)
- PW(脉冲宽度)
- PA(脉冲幅度)
- PRI(脉冲重复间隔)—— 通常由 TOA 差分得到
PDW 生成的过程,其实就是把“辐射源模型”和“传播模型”结合起来,模拟出接收机端看到的脉冲流。
我习惯用 Python 写一个简单的 PDW 生成器。核心逻辑是这样的:
# 伪代码示例:PDW 生成
for each pulse in pulse_train:
# 1. 计算传播延迟 -> TOA
toa = pulse.emission_time + distance / speed_of_light
# 2. 计算传播衰减 -> PA
pa = compute_path_loss(freq, distance, terrain_type)
# 3. 添加多径效应(如果有)
if multipath_enabled:
pa += multipath_fading(distance, freq)
# 4. 添加接收机噪声
pa += noise(noise_floor)
# 5. 生成 PDW 记录
pdw = {
'toa': toa,
'rf': pulse.freq,
'pw': pulse.pulse_width,
'pa': pa,
'doa': compute_doa(pulse.azimuth, receiver_position)
}
pdw_list.append(pdw)
嗯,这里有个细节。PDW 的生成顺序很重要。你不能先算 PA 再算 TOA,因为 TOA 决定了信号到达的时刻,而 PA 依赖于传播路径。我见过有人把顺序搞反了,结果 TOA 和 PA 对不上,后面分选直接崩溃。
3.4 小结
信号环境建模,是原型验证的“地基”。威胁辐射源模型决定了“敌人长什么样”,传播模型决定了“信号怎么变”,PDW 生成则是把这两者串起来的“生产线”。
我个人建议,在开始写任何算法之前,先把这三块模型搭好、调通。你花在建模上的时间,会在后续的验证阶段成倍地省回来。
好,这一章就到这里。下一章我们聊聊接收机前端建模——天线阵列和射频前端怎么在原型里快速验证。