雷达编程实战之恒虚警率(CFAR)检测

这篇具有很好参考价值的文章主要介绍了雷达编程实战之恒虚警率(CFAR)检测。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在雷达系统中,目标检测是一项非常重要的任务。检测本身非常简单,它将信号与阈值进行比较,超过阈值的信号则认为是目标信号,所以目标检测的真正工作是寻找适当的阈值。由于目标误检的严重后果,因此雷达系统希望有一个检测阈值,该阈值不仅能最大限度地提高检出概率,而且能将误报概率保持在预设水平以下。
有大量的文献对使用多个接收信号样本检测高斯白噪声中的信号的情况进行了分析,并获得了一些众所周知的结果,然而,所有这些经典结果都基于理论概率,并且仅限于具有已知方差与期望的高斯白噪声。在实际应用中,噪声通常是有色的,其功率是未知的🌒。

本文介绍了雷达编程中常会遇到的目标检测技术---CFAR(Constant False-Alarm Rate),还是笔者的老习惯,先来过一下文中涉及的一些公式以及解释📌。

  1. 恒虚警检测,车载毫米波雷达,目标检测,信号处理,汽车,雷达,这个公式我们后边称为公式一,它计算具有已知方差与期望的高斯白噪声符合虚警概率为恒虚警检测,车载毫米波雷达,目标检测,信号处理,汽车,雷达的阈值T。恒虚警检测,车载毫米波雷达,目标检测,信号处理,汽车,雷达恒虚警检测,车载毫米波雷达,目标检测,信号处理,汽车,雷达的反函数,erf可在matlab中直接使用,定义是恒虚警检测,车载毫米波雷达,目标检测,信号处理,汽车,雷达恒虚警检测,车载毫米波雷达,目标检测,信号处理,汽车,雷达是噪声的标准差,恒虚警检测,车载毫米波雷达,目标检测,信号处理,汽车,雷达是数学期望,而恒虚警检测,车载毫米波雷达,目标检测,信号处理,汽车,雷达为阈值。

  1. 恒虚警检测,车载毫米波雷达,目标检测,信号处理,汽车,雷达,这个公式我们称之为公式二,它反映了阈值与根据给定的检测窗口(CUT)估计出来的噪声功率恒虚警检测,车载毫米波雷达,目标检测,信号处理,汽车,雷达以及虚警概率之间的关系。恒虚警检测,车载毫米波雷达,目标检测,信号处理,汽车,雷达常为检测窗口的均值,表示为恒虚警检测,车载毫米波雷达,目标检测,信号处理,汽车,雷达。假设传入检测系统的脉冲为单个脉冲(不涉及脉冲积分),则恒虚警检测,车载毫米波雷达,目标检测,信号处理,汽车,雷达,其中恒虚警检测,车载毫米波雷达,目标检测,信号处理,汽车,雷达为虚警概率,N为估计检测窗口的大小。

恒定阈值即指提前对传入检测系统的噪声参数进行估计,并根据一定的虚警概率计算出一个恒定的阈值,在目标检测时大于预设的阈值即判断为有目标。然而,当雷达接收机输出到检测系统的噪声发生变化时(比如功率的变化),检测系统无法做出适当的调整,将会导致实际的虚警率发生了变化。

在雷达信号检测中,当外界噪声强度变化时,雷达能自动调整其目标检测阈值,使雷达的虚警概率保持不变,具有这种特性的检测手段称为恒虚警率检测。


基础理论知识

检测的作用就是在含有噪声的情况下确定目标的存在和不存在。在我们不知道目标是否存在的情况下,目标检测的工作就变成了针对两种可能假设的概率,来对当前的信号做出判决。

一种叫原假设,也叫零假设,用H0表示,我们针对雷达系统理解为噪声,另外一种叫备择假设,用H1表示,理解为目标。恒虚警检测,车载毫米波雷达,目标检测,信号处理,汽车,雷达表示当功率x为噪声的功率,恒虚警检测,车载毫米波雷达,目标检测,信号处理,汽车,雷达表示当输入信号功率x为信号的概率。Critial value为决策边界(判断阈值),大于边界(阈值)的我们认为是目标,而小于阈值的我们认为是噪声。因为我们的原假设是噪声,所以对应的接受区域在下图左侧,拒绝区域在下图右侧。对应的假拒绝概率(虚警概率)与假接收概率(漏检概率)如下图所示。

恒虚警检测,车载毫米波雷达,目标检测,信号处理,汽车,雷达

从雷达接收机输入到检测系统的信号是目标信号+噪声,如下图中的实线,我们可以计算噪声回波信号的统计特性,将噪声的概率密度函数也画出,如下图的虚线,然后根据确定的虚警概率,我们就可以知道检测阈值的大小,这也是恒定阈值法的基本思路。

恒虚警检测,车载毫米波雷达,目标检测,信号处理,汽车,雷达

我们假设噪声是高斯白噪声,功率表现符合高斯分布。通过计算噪声的统计特性之后,就可以通过公式一计算出相关的阈值。这个是恒定阈值的目标检测。而我们的噪声一般是有色的(不是纯的随机数,有一定相关性),功率的期望也是未知的。为了解决这个问题,我们先复习一下高斯分布与标准差之间的关系。

恒虚警检测,车载毫米波雷达,目标检测,信号处理,汽车,雷达

我们可以将这种有色,功率未知的噪声信号理解成很多个符合正态分布,但是具有不同统计特性的噪声拼接而成。我们根据上图可以看出,符合高斯分布的噪声概率分布与噪声的统计特性诸如标准差恒虚警检测,车载毫米波雷达,目标检测,信号处理,汽车,雷达和数学期望恒虚警检测,车载毫米波雷达,目标检测,信号处理,汽车,雷达都有关系,也就是说,我们可以根据噪声的统计特性来表示一个符合确定虚警率的阈值,恒虚警检测,车载毫米波雷达,目标检测,信号处理,汽车,雷达,这就是我们公式公式2的由来,我们通过把噪声切割成具有一定尺寸的窗口来获得当前检测单元的阈值,即每一个检测单元都对应一个根据周围单元估算出的噪声统计特性再乘以一个由虚警概率确定的恒虚警检测,车载毫米波雷达,目标检测,信号处理,汽车,雷达算出的判决阈值。所以对于CFAR,我们的阈值不是个定值,而是如下图一个蓝色曲线。

恒虚警检测,车载毫米波雷达,目标检测,信号处理,汽车,雷达

雷达一维恒虚警多算法Matlab实现

背景噪声生成函数

下面这个function主要实现了根据输入的统计特性输出符合高斯分布的均匀背景噪声矩阵,输入的参数包括标准差,噪声点数,平均dB,以及是否将噪声画出来的开关量。输出噪声一维矩阵。

在这里先说明一个dB的概念,dB表示的是系统的输出功率相对输入功率的增益。这里dB的引入是为了把乘除关系变换为加减,便于工程中的运算。恒虚警检测,车载毫米波雷达,目标检测,信号处理,汽车,雷达,后边的Matlab程序传递的参数,都将功率值转换为了dB.

%均匀背景噪声
function [ xc ] = env_uniform(variance,  shape, power_db, show_out)
    c=10^(power_db/10);     % power_db这里是幅度对应功率
    tes=random('Normal',0,variance,1,shape);
    xc=c + tes; 
    if show_out==1
        plot(10.*log10(abs(xc)));
    end
end

下面这个function也是输出噪声矩阵,只不过输出的噪声类型是杂波边缘背景噪声,即由多个不同均值的的噪声拼接而成,因此输入的平均dB也是一个具有多个元素的一维向量。

%杂波边缘背景噪声
function [ xc ] = env_edge(variance,  shape, power_db, show_out)
    c=10.^(power_db./10);               % 这里是幅度——功率
    xc=random('Normal',0,variance,1,shape(1,end)); 
    xc(1,1:end)=xc(1,1:end)+c(1,1);
    index=1;
    for i=1:length(power_db)
        xc(1,index:shape(1,i))=xc(1,index:shape(1,i)).*c(1,i)./c(1,1);
        index=shape(1,i)+1;
    end
    if show_out==1
       plot(20.*log10(abs(xc)));
    end
end

恒虚警率算法

到了最重要的CFAR算法实现了,本篇文章讨论最常见的均值类算法,核心思想是通过对参考窗内采样数据取平均来估计背景噪声功率。被检测单元由保护单元与训练单元所包围,保护单元不参与计算噪声平均功率。算法利用保护单元计算平均功率恒虚警检测,车载毫米波雷达,目标检测,信号处理,汽车,雷达,然后再乘以用虚警概率确定的系数恒虚警检测,车载毫米波雷达,目标检测,信号处理,汽车,雷达,最终得出针对当前检测单元的判决阈值。

恒虚警检测,车载毫米波雷达,目标检测,信号处理,汽车,雷达

CA-CFAR、GO-CFAR、SO-CFAR算法这三个是最经典的均值类CFAR算法,后续有其变形log-CFAR算法但是原理是相同的👀。

恒虚警检测,车载毫米波雷达,目标检测,信号处理,汽车,雷达

下面是这三种算法的Matlab实现,输入信号,训练单元数,保护单元数,以及恒定的虚警概率,输出与信号尺寸一样的阈值曲线。

function [ index, XT ] = cfar_ac( xc, N, pro_N, PAF)
    alpha=N.*(PAF.^(-1./N)-1);
    index=1+N/2+pro_N/2:length(xc)-N/2-pro_N/2;
    XT=zeros(1,length(index));

    for i=index
        cell_left=xc(1,i-N/2-pro_N/2:i-pro_N/2-1);
        cell_right=xc(1,i+pro_N/2+1:i+N/2+pro_N/2);
        Z=(sum(cell_left)+sum(cell_right))./N;

        XT(1,i-N/2-pro_N/2)=Z.*alpha;
    end
end

function [ index, XT ] = cfar_go( xc, N, pro_N, PAF)
    alpha=N.*(PAF.^(-1./N)-1);
    index=1+N/2+pro_N/2:length(xc)-N/2-pro_N/2;
    XT=zeros(1,length(index));

    for i=index
        cell_left=xc(1,i-N/2-pro_N/2:i-pro_N/2-1);
        cell_right=xc(1,i+pro_N/2+1:i+N/2+pro_N/2);
        Z=max([mean(cell_left),mean(cell_right)]);

        XT(1,i-N/2-pro_N/2)=Z.*alpha;
    end
end

function [ index, XT ] = cfar_so( xc, N, pro_N, PAF)
    alpha=N.*(PAF.^(-1./N)-1);
    index=1+N/2+pro_N/2:length(xc)-N/2-pro_N/2;
    XT=zeros(1,length(index));

    for i=index
        cell_left=xc(1,i-N/2-pro_N/2:i-pro_N/2-1);
        cell_right=xc(1,i+pro_N/2+1:i+N/2+pro_N/2);
        Z=min([mean(cell_left),mean(cell_right)]);

        XT(1,i-N/2-pro_N/2)=Z.*alpha;
    end
end

三种算法在目标检测方面各有优缺点,总结如下表🔢:

算法名称

优点

缺点

CA-CFAR(单元平均恒虚警)

损失率最少的一种算法

多目标遮掩,杂波边缘性能也欠佳

GO-CFAR(最大选择恒虚警)

杂波边缘区域虚警概率降低

多目标遮掩

SO-CFAR(最小选择恒虚警)

多目标效果有改进;

杂波边缘区域虚警概率提升


算法测试程序

最后要讲述的Matlab程序,是一段针对这三个算法其中一个算法的测试程序。程序模拟单目标,使用均匀噪声背景,噪声20dB,目标的信噪比是15dB。程序使用之前介绍的Function,最终画出信号曲线与阈值曲线。

clc
clear all
close all


shape=[200];
variance=200;
noise_db=20;
noise_p=10.^(noise_db./10);
show_out=0;
[ xc ] = env_uniform(variance,  shape, noise_db,show_out);

SNR1=15;    signal1_p=10.^(SNR1./10).*noise_p;
xc(1,90)=signal1_p;
N=36;
pro_N=2;
PAF=10^(-4);
[ index, XT ] = cfar_so( abs(xc), N, pro_N, PAF);
%[ index, XT ] = cfar_go( abs(xc), N, pro_N, PAF);
%[ index, XT ] = cfar_ac( abs(xc), N, pro_N, PAF);

figure(3);
plot(10.*log10(abs(xc))),hold on;
plot(index,10.*log10(abs(XT))),hold on;
legend('噪声pdf','信号pdf')

Matlab程序执行结果如下:

恒虚警检测,车载毫米波雷达,目标检测,信号处理,汽车,雷达

我们还可以针对杂波边缘背景噪声来试验不同算法在杂波的边缘的性能,我们也可以往噪声中多叠加一些不同信噪比的目标来观察不同算法在多目标情况下的效果。点击这里跳转到一个github上一个利用MATLAB GUI设计平台,设计多算法雷达一维恒虚警检测CFAR可视化界面的项目代码。

加速核嵌入式软件配置

下面的某平台针对Cfar加速核的配置代码段:


void BB_CFAR_Init(void){
        cfarCfg0_st.wrapDirA = CFAR_CFG0_WRAPDIR_INC;
        cfarCfg0_st.wrapDirB = CFAR_CFG0_WRAPDIR_INC;
        cfarCfg0_st.sumMode = CFAR_CFG0_SUMMODE_ABS;
        cfarCfg0_st.interCnt = USE_RANGE;
        cfarCfg0_st.intraCnt = NUM_VEL;
        cfarCfg0_st.thresDiv = CFAR_CFG0_THRESDIV4;           // = searchSize num
        cfarCfg0_st.divFac = CFAR_CFG0_DIVFAC1;
        cfarCfg0_st.mulFac = r2_str.cfarThV;
        cfarCfg0_st.searchSize = r2_str.cfarThVS;
        cfarCfg0_st.guardSize = r2_str.cfarThVG;
        cfarCfg0_st.totalSize = cfarCfg0_st.searchSize+cfarCfg0_st.guardSize;
        cfarCfg0_st.pdEn = CFAR_CFG0_PEAKDET_DIS; 
        cfarCfg0_st.cfarMode = CFAR_CFG0_CFARMODE_GO;
        BB_CFAR_CFG0(&cfarCfg0_st); //STRUCT_CFAR_CFG0
        BB_CFAR_CFG1(CFAR_MAX_NUM,NUM_BYTE32); //interInc
        BB_CFAR_CFG2(bb_prep.cfg2.jumpInc,FFT2D_CACHE_ADDR+USE_RANGE*CFAR_ANT*NUM_BYTE32);//intraInc,intraAddr
        BB_CFAR_CFG3((FFT2D_CACHE_ADDR+USE_RANGE*CFAR_ANT*NUM_BYTE32+(NUM_VEL-cfarCfg0_st.totalSize)*bb_prep.cfg2.jumpInc),FFT2D_CACHE_ADDR+USE_RANGE*CFAR_ANT*NUM_BYTE32);//wrapAddrA,wrapAddrB
        BB_CFAR_CFG4(CFAR_CACHE_ADDR);//dstBaseAddr
}

其中searchSize 对应的是训练单元的大小,guardSize是保护单元,恒虚警检测,车载毫米波雷达,目标检测,信号处理,汽车,雷达等于上面Matlab程序中的alpha,即阈值系数。恒虚警检测,车载毫米波雷达,目标检测,信号处理,汽车,雷达需要与searchSize保持一致。加速核支持不同算法的选择,这里cfarMode选择的是GO-CFAR。

此平台默认的将采样的窗口滑动的模式配置称为环状,即第一个检测点的左窗由信号末尾部分充当,最后一个检测点的右窗由信号的起始部分充当。

恒虚警检测,车载毫米波雷达,目标检测,信号处理,汽车,雷达

最后,我们可能会针对项目的技术需求调整CFAR的参数,这就需要我们知道这些参数和一些概念相互如何影响,下面简单的总结一些参数调整的影响。

  • 检测单元数N:在相同信噪比下,检测单元数越多的CFAR对应的检测概率越高,但同时计算量加大。

  • 保护单元数:保护单元过大或过小都会使检测概率降低,应不同实验选取适中的保护单元数。

  • 虚警概率恒虚警检测,车载毫米波雷达,目标检测,信号处理,汽车,雷达:在相同检测单元数目下,虚警概率的越高CFAR对应的检测概率越高,但虚警数也增多。

  • 信噪比SNR:当信噪比不断增加,检测概率也不断增加。文章来源地址https://www.toymoban.com/news/detail-719868.html


十六宿舍 原创作品,转载必须标注原文链接。
©2023 Yang Li. All rights reserved.
欢迎关注 『十六宿舍』 ,大家喜欢的话,给个👍 ,更多关于嵌入式相关技术的内容持续更新中。

到了这里,关于雷达编程实战之恒虚警率(CFAR)检测的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【虚警检测】基于CA-CFAR(单元平均恒虚警)、GO-CFAR(最大选择恒虚警)、SO-CFAR(最小选择恒虚警)算法的恒虚警检测附Matlab代码

    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab仿真内容点击👇 智能优化算法       神经网络预测       雷达通信       无线传感器        电力系统 信号处理

    2024年02月06日
    浏览(34)
  • CFAR(恒虚警率)目标检测算法

    毫米波雷达中,CFAR(Constant False Alarm Rate)算法是一种常用的目标检测和跟踪算法。它的主要作用是在背景噪声中检测出目标信号,同时保证误检概率不变。 CFAR算法的基本思想是,对于每个雷达测量的数据点,以该点为中心,建立一个检测窗口,在该窗口内计算信号功率的平

    2024年02月04日
    浏览(27)
  • 车载毫米波雷达的校准问题(1)

        任何精密的传感器都需要进行校准,校准的目的在于使测量的结果更加准确。车载毫米波雷达作为一个车规级的可能关系到生命安全的传感器,其测量结果的准确性显得尤为重要。 但是车载毫米波雷达(或者说任何传感器)的校准这个话题很大,涉及的东西有很多,想要详

    2023年04月21日
    浏览(50)
  • 自动驾驶感知——物体检测与跟踪算法|4D毫米波雷达

    DBSCAN: Density Based Spatial Clustering of Applications with Noise; DBSCAN是基于密度的聚类方法,对样本分布的适应能力比K-Means更好。 红色的点是核心对象 黑色的点是非核心对象 注意 :距离的度量不限于点的空间距离,还可以是其它点特征,比如速度、反射强度等 基本思路 假定类别可以

    2024年02月11日
    浏览(27)
  • STM32基于毫米波雷达的生命体征检测系统

    毫米波雷达我选择的了Seeedstudio企业的淘宝官方店铺,毫米波雷达包含有呼吸心跳检测雷达,人体存在感应雷达,睡眠呼吸等等,其单个模块并非只有单一功能,需要开发者根据原始数据分析解析。   由于毫米波模块是默认输出的,一直在不停歇的发送数据,所以或者原始数

    2024年01月16日
    浏览(31)
  • 【SAR雷达】基于FFT和CA-CFAR的雷达信号仿真与目标检测附matlab代码

     ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,代码获取、论文复现及科研仿真合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab完整代码及仿真定制内容点击👇 智能优化算法       神经网络预测       雷达通信       无

    2024年03月19日
    浏览(37)
  • 多传感器融合 | CenterFusion:毫米波雷达和相机后融合3D检测算法

    点击下方 卡片 ,关注“ 自动驾驶之心 ”公众号 ADAS巨卷干货,即可获取 今天自动驾驶之心很荣幸邀请到寒风分享RV后融合算法CenterFusion,如果您有相关工作需要分享,请在文末联系我们! 点击进入→ 自动驾驶之心【多传感器融合】技术交流群 后台回复 【多传感器融合综述

    2024年01月19日
    浏览(32)
  • 国内首门3D毫米波&4D毫米波雷达理论实战路线来了!

    自上世纪九十年代毫米波雷达首次前装量产上车起,已经经过了二十多个年头。近年来,随着新能源汽车智能化大潮来袭,主机厂对毫米波雷达的需求与日俱增,尤其是在辅助驾驶领域,不管是入门级L2,还是高阶NOA,毫米波雷达的单车搭载数量均显著提升。据研究数据显示

    2024年03月19日
    浏览(34)
  • 最全的整理:毫米波雷达在检测、分割、深度估计等多个方向的近期工作及简要介绍

    在之前,我已经有介绍过毫米波雷达在2D视觉任务上的一些经典网络[自动驾驶中雷达与相机融合的目标检测工作(多模态目标检测)整理 - Naca yu的文章 - 知乎],总结概括而言,其本质上都是对视觉任务的一种提升和辅助,主要的工作在于如何较好地在FOV视角中融合两种模态

    2024年02月10日
    浏览(28)
  • 现代雷达车载应用——第2章 汽车雷达系统原理 2.5节 检测基础

             经典著作,值得一读,英文原版下载链接【免费】ModernRadarforAutomotiveApplications资源-CSDN文库。         对于要测试目标是否存在的雷达测量,可以假定下列两个假设之一为真:         •H0:—测量结果仅为噪声。         •H1:—测量是噪声和目标回波

    2024年02月04日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包