毫米波雷达的系统设计细节(3):关于SNR-虚警率-检出率
本篇博文探讨关于雷达目标检测的问题,特别地,是关于目标的SNR与虚警率、检出率之间的关系,较为详细地介绍了关于目标检测的一些概念及其背后的原理,给出了关于目标的SNR、虚警率、检出率之间的数学关系式,并简要探讨了我们在做系统设计时对这些参数的考量。
说明
本篇博文作为毫米波雷达系统设计细节这系列文章中的一篇,在规划时是想探讨CFAR检测时的SNR、虚警率、目标检出率三者之间的关系(虚警率和目标检出率是雷达的一项重要参数),写着写着想上升为目标检测这个更高的高度上,目标检测是一个很大的话题,本博文也会涉及通用性的关于目标检测的相关知识,不过现阶段的核心还是探讨SNR与虚警率与目标检出率的关系,关于目标检测更丰富的内容我会基于经验的积累和理解的加深不定期更新和丰富。
Blog
20230327 博文第一次写作
文章架构
目录
一、目标检测概述
信号检测是对接收机输出的由信号、噪声和其它干扰组成的混合信号经过信号处理以后,以规定的检测概率(通常比较高)输出所希望得到的有用信号,而噪声和其它干扰则以低概率产生随机虚警(通常以一定的虚警概率为条件)。检测概率和虚警概率取决于噪声和其它干扰信号,以及伴随这些信号的目标信号的幅度分布(概率密度函数),因此,检测是一个统计过程。
雷达信号检测属于二元检测问题:要么有、要么没有。
表1.1 关于雷达目标检测的条件和结果列表
信号s(t) | 判决结果 | 概率 | 判决属性 |
存在 | 有信号 | 检出概率,Pd | 正确判决 |
不存在 | 无信号 | 正确不发现概率,Pn | |
不存在 | 有信号 | 虚警概率,Pfa | 错误判决 |
存在 | 无信号 | 漏警概率,Pm |
其中:Pd + Pm = 1; Pfa + Pn = 1;
上表中也包含了关于本博文想要探讨的关于虚警率和目标检出率的定义:直白点来说,虚警就是没有目标但是却检测出了目标,虚警率Pfa就是指发生这种情况的概率;检出就是有目标且这个目标被雷达检测到了,检出率Pd就是指目标被雷达检测到的概率。
对于雷达的目标检测,我们自然是希望虚警的情况尽可能少地发生而目标检出率又要尽可能地高。我们从统计学的角度来更定量地分析一下前述几个概念。
正是因为我们接收的信号中包含有噪声才导致我们的检测出错,而噪声相对来说是随机的,我们可以用高斯分布来表征它:高斯分布是指随机变量X服从一个数学期望为μ、方差为σ2的正态分布,记为N(μ,σ2)。其期望值μ决定了其位置,其标准差σ2决定了分布的幅度。当μ=0, σ2=1时称为标准正态分布。
高斯分布的概率密度函数为:
(1.1)
我用Mtalab自带的函数所产生的一个均值为0,方差为1的正态分布如下:
图 1.1 正态分布示意图
我们假设噪声服从均值为0,方差为的高斯分布。则观测信号x(t)的两种条件(只有噪声、有目标和噪声)概率密度函数为:
(1.2)
(1.3)
假定判决门限为V(高于V的部分被认为有目标存在),则可得检出概率Pd为:
(1.4)
虚警率Pfa为:
(1.5)
如下述两图中的阴影部分所示:仿真中设置信号的均值为1,设置阈值为2。
图1.2 均值为0,方差为1的噪声的概率密度分布
对阴影部分进行积分即为虚警率Pfa,我们可以得到高斯分布下的噪声其虚警率与阈值之间的关系式:
(1.6)
(1.7)
称为标准门限,噪声功率归一化门限电压。
图1.3 虚警率随阈值的变化
图1.3 均值为1的信号与正态分布的噪声混合后的概率密度分布
对阴影部分积分即可的目标的检出率。
在上面的内容中有提及到:对于雷达的目标检测,我们自然是希望虚警的情况尽可能少地发生而目标检出率又要尽可能地高。但从上面两幅图来看,这是似乎是相互矛盾的:如果我们希望虚警率尽可能地小,那么我们需要提高阈值,但是阈值提高后可以看到目标检出率是在减小的。不过如果我们能提高目标的SNR,我们可以去解决这个矛盾:提高目标的SNR后对应曲线整体往右平移,此时在阈值一定的情况下我们的目标检出率是提高的。
后文开始讨论这三者之间的关系。
二、目标SNR、虚警率、检出率之间的关系
前文中给出了呈高斯分布的噪声下阈值与虚警率的关系,虚警率说的噪声被检测出来为目标,所以虚警率与目标没有关系,但是检出率就与目标有关系了,这章的内容主要是弄清楚在不同的虚警率下,目标的检出率与目标SNR的关系。
关于数学关系式的具体推导确实比较复杂,我没有自信我可以比书(见参考资料1)上讲得更好,这里还是直接写结论吧… ,对过程感兴趣的可以看看书本的第8.2节。
A、信号的幅度不变时
(2.1)
Q称为Marcum Q函数,其积分很复杂,有几个大佬(Parl、North、DiFranco & Rubin等)提出了一些近似的解法。我这里给出按照Parl给的方法写的函数以及Matlab自带的Marcumq函数得到的结果对比:
图2.1 特定Pfa下,目标检出率与SNR关系的变化曲线(1)
图2.2 特定Pfa下,目标检出率与SNR关系的变化曲线(2)
两者差别不大,我们自己写的函数得到的结果似乎更往下一点..
B、信号的幅度变化时
实际上由于各种因素的存在(我也说不清),接收到的信号的其幅度是会随时间发生变化?此时需要对这未知信号的幅度进行积分运算。我们假定信号的幅度变化呈瑞利分布,其概率密度函数为:
(2.2)
图2.3 瑞利分布示意图
图2.4 使用Matlab自带的函数生成的瑞利分布值及其拟合效果
总之,当信号的幅值在前述的分布之下时,我们可以得到一个新的检出概率Pd与SNR以及虚警率Pfa的关系式:
(2.3) 画出其结果:
图2.5 特定Pfa下,目标检出率与SNR关系的变化曲线(目标信号幅度呈瑞利分布)
并给出同一个Pfa下,信号幅度不变与信号幅度呈瑞利分布的对比:
图2.5 两种信号幅度模型下的关系曲线对比
关于这两种情况的对比,可以得到的一个结论是:当信号有起伏时,在大的Pd区域,这种起伏将会引起检测损失,而在小的检测概率区域,情况恰好相反,有起伏信号比无起伏信号的检测概率要大,不过雷达通常不会工作在这么小的检测概率区域中。具体到车载毫米波雷达我们应该是认为信号的幅度是不变的?
C、从上面的仿真结果中我们可以得到的一些结论:
1、虚警率不变时,检出率会随着目标SNR的增加而增加的,这呼应了我们之前对检出率的定义,虚警率不变说明阈值不变,对应到上图的1.3,SNR增加表示曲线整体右移,于是检出率(阴影部分面积)自然增加。
2、如果我们使目标SNR不变,去看检出率与虚警率的变化关系(对应图中固定横坐标):检出率会随着虚警率的增加而增加:虚警率变大说明阈值变小了,阈值变小了自然检出率会增加,所以我们要想提高检出率,要么想办法提高目标的SNR,而如果在目标SNR没法提高时我们只能牺牲虚警率。
3、接上面第2点,这条曲线只是告诉我们特定Pfa下目标SNR与检出率的关系,我们可以通过设计不同的Pfa来使得这条曲线上下移动,也即:由Pfa的变化导致的阈值的变化只是会影响同一个SNR下的检测概率发生变化,不是说设定某个阈值后阈值以下的SNR的目标就检测不出来了!
三、做系统设计的考量
前面关于目标检测的概念性的内容我介绍了很多,具体到关于目标检测的实际应用时,我们使用最多的检测的方法是大家所熟知的恒虚检测法(Constant False Alarm Rate, CFAR)。恒虚警检测的概念和原理很简单,网上的资料很多这里暂时不表(后面我计划会上传一些自己写的关于CFAR、聚类、跟踪等算法的理解和代码)。恒虚警检测顾名思义就是虚警率恒定,我在前文中给出了一个关于阈值与虚警率的公式(式1.7),这个公式是基于呈高斯分布的噪声得到的,我们在做CFAR时有另外的计算公式,阈值因子a与Pfa的关系为:
(3.1)
式中,N为参考单元的总数量,a为阈值因子,且对于CUT,只有当:a*CUT大于求得的参考单元的平均能量P(所谓的各种不同CFAR方法,其差别就在于这里求噪声平均能量的方式方法上的差别)时才认为该CUT为目标。
if a*CUT > P
CUT is a target
else
CUT is a noise
end
那么其实这里也有一个SNR:
SNR_threhold = 20*log10(P/CUT) = 10*log(a)
P为参考单元的平均能量幅值,CUT为待检测单元的能量幅值。
这时就需要理清楚其中的关系:当我们设定一个虚警率时,我们就可以得到一条目标不同SNR下的检出概率和SNR的关系曲线,我们虽然因为虚警率而设定了一个我们做目标检测的阈值,但是不表示目标SNR小于前述SNR_threhold的不会被检测出来!(它只是被检测出来的概率小,同样大于该SNR阈值的也不一定就能百分百检测出来)我们在进行系统设计时,一般是从性能要求来推导和设计参数,而检出率和虚警率是给出的,我们可以通过曲线知道当满足该检出率时需要的目标SNR是多少,以及通过该SNR值和雷达方程来分析目标的距离是多少时可以满足SNR的要求(也即满足检出率的要求)。
前面这段话我不太自信是否说对了【后面我会基于理解的加深来修改和丰富这个章节的内容】,说这么多总结起来就是:由Pfa而有的阈值SNR和那条曲线中的SNR之间没有关系!Pfa的不同只是会导致曲线的上下移动而影响不同SNR下的检出概率。所以如果雷达的性能要求中只对检出率提出要求,那么我们其实也可以调节虚警率来使得低SNR的目标(或者说距离更远的目标)也可以满足检出率的要求。
四、总结
本篇博文探讨关于雷达目标检测的问题,特别地,是关于目标的SNR与虚警率、检出率之间的关系,较为详细地介绍了关于目标检测的一些概念及其背后的原理,给出了关于目标的SNR、虚警率、检出率之间的数学关系式,并简要探讨了我们在做系统设计时对这些参数的考量。
五、参考资料
1、《现代雷达系统设计与分析》
六、代码
博文中所设计到的全部仿真的代码在如下链接:
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)