匹配滤波器 模拟器 返回
信号处理模拟器

匹配滤波器 模拟器 — 噪声中的脉冲检测

在白色噪声中检测已知脉冲的匹配滤波器可视化。通过卷积运算,改变振幅、脉冲长度和噪声强度,直观了解输出 SNR 如何按脉冲长度 L 倍改善的机制。

参数设置
信号振幅 A
脉冲长度 L
样本
噪声标准差 σ
随机数种子

噪声由确定性 LCG 生成,因此相同种子总是产生相同的波形。

暂停时,拖动滑块即可即时更新结果。

计算结果
输入 SNR (A²/σ²)
峰值相关输出
检测阈值
检测判定
接收信号·滤波器系数·输出波形

上行=接收信号 r[n] = s[n] + n[n](蓝色)/中行=滤波器系数 h[n] = s[L−1−n](绿色)/下行=输出 y[n](红色,黄点=峰值)

理论·主要公式

将接收信号 r[n] = s[n] + n[n] 与已知信号的时间反转 h[n] = s[L−1−n] 进行卷积,在信号到达位置输出达到最大。这就是匹配滤波器。

滤波器输出。* 表示卷积运算:

$$y[n] = \sum_{k=0}^{L-1} h[k]\,r[n-k] = (h * r)[n]$$

输入 SNR 和输出峰值 SNR。E_s = A²·L 为信号能量:

$$\mathrm{SNR}_\mathrm{in} = \frac{A^2}{\sigma^2}, \qquad \mathrm{SNR}_\mathrm{out} = \frac{E_s}{\sigma^2} = \frac{A^2 L}{\sigma^2}$$

匹配滤波器的处理增益(脉冲长度本身):

$$G = \frac{\mathrm{SNR}_\mathrm{out}}{\mathrm{SNR}_\mathrm{in}} = L$$

脉冲越长,增益越大,即使输入 SNR 较低也能检测。这是雷达脉冲压缩和通信匹配接收的基本原理。

匹配滤波器 模拟器说明

🙋
在雷达书中经常看到"匹配滤波器"这个词,是说从噪声堆中"掘出"信号吗?
🎓
大概没错。简单说就是"如果事先知道想找的波形是什么样,就用它来当量尺和接收信号相关,雑噪中最强反应的地方就是找到的信号"。用公式表示就是把滤波器系数设为已知信号的时间反转 $h[n]=s[L-1-n]$,然后和接收信号 $r[n]$ 进行卷积,在信号到达的时刻输出达到最大。看上面模拟器的"接收信号"和"输出 y[n]"对比一下。接收信号的矩形脉冲看不清在哪,但输出中红线在中央附近会尖锐地跳起来。
🙋
这个即使 SNR 更差(噪声更大)也有用吗?
🎓
这正是匹配滤波器的绝妙之处。试试把噪声标准差 σ 调到 3 或 4。接收信号完全被噪声淹没,什么都看不见。可输出里峰值还是立得好好的。那是因为输出 SNR 比输入高了 L 倍(脉冲长度倍)。默认 L=20 就高了 13 dB。要是 100 样本就 20 dB。
🙋
听说"把脉冲拉长增益就上去",那无限长是不是就能一直检测?
🎓
理论上是,但实机完全不同。脉冲拉长会坏掉距离分辨能力。雷达的话就是"看不清位置在哪"。所以实机用线频调(LFM)信号——"既长又尖锐"。这就是"脉冲压缩"。模拟器只演示矩形脉冲,但原理一样——和已知波形相关就能得到脉冲长度倍的增益。
🙋
把"随机数种子"推子一动,峰值一点点变化啊。不能完全是 20 吗?
🎓
讲得好。理论峰值 $E_s = A^2 L$ 是"只算信号"的值,实际上峰值位置也叠着噪声。那噪声项的标准差大约 $\sigma\sqrt{L}\cdot A$。L=20, A=1, σ=1 的话,大概摇动 ±4.5 这样。所以观测峰值在 20 为中心,上下波动 15~25。种子一变就看到不同噪声实现,你能体会到检出统计的"摇动"。

常见问题

不是。$h[n] = s[L-1-n]$ 这种简单形式仅在噪声为白色(平坦频谱)时最优。对于有色噪声(某些频率噪声强)的情况,需要用噪声频谱 $S_n(f)$ 对接收信号进行白化后再整合——这叫"白化匹配滤波器"。实机中通常是预先估计噪声频谱后加逆滤波,或者在噪声少的频段加权重。
相关 $R_{sr}[\tau] = \sum_n s[n]\,r[n+\tau]$ 和卷积 $y[\tau] = \sum_n h[n]\,r[\tau-n]$ 在 $h[n] = s[L-1-n]$ 的情况下在数学上等价。教科书常叫"相关器",但实现通常是反转滤波器系数后进行卷积。模拟器也是这样构造滤波器系数的。物理意义是"用已知波形和接收信号的重叠度在全部时移上计算"。
是的。数字通信中发送符号波形(如 RRC 根升余弦)对应的匹配接收滤波器必不可少。发送端 RRC × 接收端 RRC = 整体升余弦,满足"奈奎斯特条件"使得符号间干扰为零,同时每个符号的 SNR 最大化。在 AWGN 通道上这是 BER 最小的最优接收。
主要有两点。一是时间分辨率:脉冲拉长增益上升,但输出峰值的宽度也变宽,相近的目标难以分离。雷达用脉冲压缩(LFM、位相编码)来同时实现"长且尖"。二是自适应性:匹配滤波器与已知信号 $s[n]$ 完全整合,固定形式,信号波形一旦偏离想定就增益急跌。实机需要考虑多普勒偏移、码元误差这类鲁棒性。

实际应用

雷达脉冲压缩:匹配滤波器最活跃的舞台就是雷达。发射脉冲调制线频(LFM、啁啾)或位相编码(巴克码),接收端和该波形相关,就能同时拿到长脉冲的能量(=检测距离远)和短脉冲的分辨率。气象雷达、空管、防务、卫星 SAR,基本上所有现代雷达都这个原理。

数字通信匹配接收:4G/5G OFDM、卫星通信、Wi-Fi、蓝牙,发送符号波形对应的匹配接收滤波器都得有。AWGN 通道最优接收器(BER 最小),实现最接近香农极限。与基带解调链结合工作。

声纳和地震勘探:潜艇声纳、海底多波束测深、地震屈折法勘探,都是用已知发射波相关的方式。海中、地下这种 SNR 恶劣的环境要实现远距离高分辨,不用脉冲压缩无法做到。地球物理勘探更是标配——振动车(重型车)连续扫频波形的相关处理。

引力波检测(LIGO):2015 年引力波首次直接探测 GW150914,黑洞双星合并的波形模板库和观测数据的相关性(匹配滤波)用来提取信号。对数百万个模板并行做匹配滤波,最大相关值对应的就是"检测"。从微弱噪声中掘极微弱信号,正是这个原理的最高成就。

常见误解和注意事项

最常见误解:"通过匹配滤波器信号会增幅"的想法。实际只是信号能量在时轴方向被"压缩"集中在峰值,绝对能量量并不增加。$E_s = A^2 L$ 的能量在滤波器输出中以宽度约 1 样本的峰值 $A^2 L$ 现身。模拟器改一改脉冲长度 L,就看得到出力峰值正比于 L。本质是"信号在时间向集中,噪声不集中"——这就是 SNR 改善的根本。

第二常见:"脉冲长 2 倍增益就 2 倍(+3 dB)"这个思路不对。确实单独滤波器 G = L,所以 2 倍是 +3 dB。但现实中总是"等平均功率约束",拉长脉冲的话峰值振幅 A 会降,$E_s = A^2 L$ 就不是单纯倍数关系。模拟器能独立控制 A 和 L,这有助区分两者的角色。

最后:"峰值应该完全等于理论值"这种期待要注意。理论峰 $E_s = A^2 L$ 是不含噪声推的,实际出力峰位置还要加上噪声项 $\sum h[k] n[\text{peak}-k]$。这项平均零、标准偏差 $\sigma\sqrt{L}\cdot A$ 量级。默认参数(A=1, L=20, σ=1)下理论值 20,标准差大约 4.5。模拟器边改"随机种子"边看峰值,能体会检出统计是个随机变量。实机检出阈值设计就得考虑这个噪声摇动——"误警概率""检出概率"很关键。

使用指南

  1. 用推子设置脉冲振幅 A(推荐 0.5~5V),生成模拟信号
  2. 调整脉冲长 L(毫秒单位,0.1~2ms),决定匹配滤波器脉冲响应长
  3. 设置白色噪声标准差 σ(0.1~1.5V),控制输入 SNR
  4. 改变噪声种子值,多次运行模拟,确认检出性能的统计特性
  5. 观察输出 SNR 与滤波器增益(理论值:L/σ²)的关系

具体计算例

在雷达脉冲检测中,假设脉冲宽 L=0.5ms、振幅 A=2V、噪声 σ=0.3V 的情况。输入 SNR_in = 4/(0.09) ≈ 44.4dB。应用匹配滤波器后,能量 E_s = A²×L = 4×0.0005 = 0.002J,输出 SNR_out = 0.002/(0.09) ≈ 22.2dB。滤波器增益 = 0.5ms/0.3V² ≈ 5.56 倍,脉冲越短检测灵敏度越高。

实务注意事项