⚠️ Alpha内测版本警告:此为早期内部构建版本,尚不完整且可能存在错误,欢迎大家提Issue反馈问题或建议。
Skip to content

1.6 信号检测

核心问题: 如何判断信号是否存在?如何在噪声中检测信号?

在线 Notebook

对应的交互式版本可在 Google Colab 打开,统一使用方式见 第0章说明


检测问题的数学框架

问题设置

观测模型:

y[n]={w[n]假设 H0(无信号)s[n]+w[n]假设 H1(有信号)

其中:

  • y[n]:观测信号
  • s[n]:待检测的信号
  • w[n]:加性高斯白噪声(AWGN)

检测器的任务

给定观测 y[n],判断:

  • H0:信号不存在(零假设)
  • H1:信号存在(备择假设)

决策规则:

如果 T(y)>γ,则判定 H1;否则判定 H0

其中 T(y) 是检验统计量,γ 是判决阈值。


假设检验理论

两类错误

第一类错误(假警报,False Alarm):

Pfa=P(判定 H1|H0 真实)

含义:信号不存在,但错误地判定为存在。

第二类错误(漏检,Miss Detection):

Pmd=P(判定 H0|H1 真实)

含义:信号存在,但错误地判定为不存在。

检测概率:

Pd=1Pmd=P(判定 H1|H1 真实)

含义:正确检测到信号的概率。

权衡关系

关键观察: PfaPd 不能同时很小。

  • 降低阈值 γPd 增加,Pfa 也增加
  • 提高阈值 γPfa 减少,Pd 也减少

设计目标: 在给定 Pfa 的约束下,最大化 Pd


似然比检验(Likelihood Ratio Test, LRT)

最优检验

Neyman-Pearson引理: 最优检验是似然比检验。

Λ(y)=p(y|H1)p(y|H0)H1γ

其中 p(y|Hi) 是在假设 Hi 下的似然函数。

高斯信号的LRT

假设:

  • 信号 s[n] 已知
  • 噪声是AWGN,方差为 σ2

似然函数:

p(y|H0)=n12πσ2exp(y[n]22σ2)p(y|H1)=n12πσ2exp((y[n]s[n])22σ2)

对数似然比:

lnΛ(y)=n2y[n]s[n]s[n]22σ2

简化后的检验统计量:

T(y)=ny[n]s[n]H1γ

直观理解: 检验统计量是观测信号与已知信号的相关性。


接收机工作特性(Receiver Operating Characteristic, ROC)

ROC曲线

定义: 在不同阈值下,PdPfa 的关系曲线。

绘制方法:

  1. 改变阈值 γ
  2. 对每个 γ,计算 PdPfa
  3. 绘制 (Pfa,Pd) 曲线

ROC曲线的性质

完美检测器:

  • 曲线经过点 (0,1)
  • 可以同时实现 Pfa=0Pd=1

随机检测器:

  • 曲线是对角线 Pd=Pfa
  • 检测性能等同于随机猜测

实际检测器:

  • 曲线在对角线上方
  • 越接近左上角,性能越好

Signal Detection Performance

代码文件: code/ch01_dsp/signal_detection.py
运行方式: python code/ch01_dsp/signal_detection.py

图1.6:这组图分成两个层面来展示检测权衡。左图固定检测器与阈值,观察不同 SNR 下检测概率 Pd 和虚警率 Pfa 如何变化;右图固定 SNR、扫描不同阈值,得到标准 ROC 曲线。两者合起来说明:阈值决定单点工作位置,而 SNR 决定整条性能曲线能否向左上角移动。

曲线下面积(AUC)

定义: ROC曲线下的面积。

AUC=01Pd(Pfa)dPfa

性质:

  • AUC = 1:完美检测器
  • AUC = 0.5:随机检测器
  • AUC越大,检测器越好

常见检测器

1. 能量检测器(Energy Detector)

适用场景: 信号未知,只知道噪声功率。

检验统计量:

T(y)=n=0N1|y[n]|2

决策规则:

T(y)H1γ

优点:

  • 简单,计算快
  • 不需要知道信号形式

缺点:

  • 性能不如相关检测器
  • 对噪声功率估计敏感

2. 相关检测器(Correlation Detector)

适用场景: 信号已知。

检验统计量:

T(y)=n=0N1y[n]s[n]

决策规则:

T(y)H1γ

优点:

  • 在给定虚警率、已知信号和高斯噪声等假设下具有 Neyman-Pearson 最优性
  • 对已知信号有较高的检测概率

缺点:

  • 需要精确知道信号

3. 匹配滤波器(Matched Filter)

思想: 用与信号相匹配的滤波器。这是卷积在检测中的直接应用。

冲激响应:

h[n]=s[N1n]

其中 s[n] 是待检测的信号,N 是信号长度。

输出(卷积运算):

yout[n]=m=0N1y[m]h[nm]=m=0N1y[m]s[N1n+m]

n=N1 时的输出:

yout[N1]=m=0N1y[m]s[m]=T(y)

这正好是相关检测器的统计量!

与相关检测器的关系:

  • 相关检测器:直接计算 T(y)=n=0N1y[n]s[n]
  • 匹配滤波器:通过卷积实现相同的功能,在 n=N1 时输出等于 T(y)
  • 本质:两者都是卷积运算,只是实现方式不同

优点:

  • 在已知信号和高斯噪声等条件下最大化输出信噪比(SNR)
  • 可实现相关检测器对应的检验统计量
  • 实现灵活 — 可用硬件或软件实现卷积
  • 直观理解 — 滤波器与信号"匹配"程度越高,输出越大

缺点:

  • 需要精确知道信号形式
  • 计算复杂度较高(O(N2)),可用FFT加速到 O(NlogN)

应用场景:

  • 雷达系统:检测已知脉冲信号
  • 通信系统:检测已知调制信号
  • 声纳系统:检测已知声纳信号
  • 医学诊断:检测已知的生物信号模式

检测性能分析

信噪比(Signal-to-Noise Ratio, SNR)

定义:

SNR=PsPn=ns[n]2σ2

其中 Ps 是信号功率,Pn 是噪声功率。

单位: dB(分贝)

SNRdB=10log10(SNR)

检测性能与SNR的关系

高斯信号的检测性能:

对于相关检测器,检验统计量 T(y) 在两个假设下的分布为:

T(y)|H0N(0,σ2s2)T(y)|H1N(s2,σ2s2)

检测概率:

Pd=Q(2SNRQ1(Pfa))

其中 Q(x)=12πxet2/2dt 是Q函数。

关键观察:

  • SNR越高,Pd 越高
  • 要达到相同的 Pd,SNR越高越容易

典型场景

检测框架的形式相同,差别主要在于信号先验、阈值设置和误判代价。

1. 雷达系统

  • 已知发射信号时,通常直接用相关检测器或匹配滤波器
  • 通过 ROC 曲线选择阈值,在虚警率和漏检率之间做权衡
  • 航空管制更怕虚警,防空场景更怕漏检

2. 通信系统

Signal Detection

代码文件: code/ch01_dsp/signal_detection.py
运行方式: python code/ch01_dsp/signal_detection.py

图1.7:噪声背景下的信号检测示意。检测器通过统计量把“纯噪声”和“信号+噪声”两种情况分开。

  • 用于判断接收端是否真正收到了有效信号
  • 同步检测和导频检测本质上都是“在噪声里找已知模式”

3. 医学诊断

  • ECG 常用来检测心律不齐
  • EEG 常用来检测癫痫发作
  • EMG 常用来检测肌肉异常

4. 地震学

  • 用台站观测判断是否发生地震
  • 结合多个传感器做震源定位
  • 在早期波形上尽快触发预警

本节小结

信号检测是信号处理的重要应用:

  • 数学框架:假设检验、似然比检验
  • 性能指标PdPfa、ROC曲线
  • 常见检测器:能量检测器、相关检测器、匹配滤波器
    • 匹配滤波器是卷积在检测中的应用,在已知信号和高斯噪声等假设下具有最优性
  • 性能分析:SNR与检测性能的关系
    • 本质上是在“信号已知程度”和“噪声不确定性”之间做设计
  • 典型场景:雷达、通信、医学、地震学

与后续章节的联系

检测理论提供了一套“在不确定性下做判断”的框架,后续章节会反复用到:二元判断、似然比较、阈值权衡和相关性匹配。这些思想会在第 5 章训练目标、第 6 章评估和第 8 章工程部署中继续出现。


下一节: 1.7 信号估计

本教程采用 CC BY-NC-SA 4.0 许可协议