前言 本文汇集CA、SO、GO、OS、杂波图等恒虚警算法的门限因子求解方法及其函数

1,CA-CFAR 【非常简单,可以直接求解】

%% 均值恒虚警_门限因子计算公式
%% 版本:v1
%% 时间:2019.11.08
%% 终版【不在优化】 function [ alpha ] = form_ALPHA_ca( PFA,N )
%FORM_ALPHA_CA 此处显示有关此函数的摘要
% PFA:虚警概率
% N:参考单元个数 alpha=N.*(PFA.^(-1./N)-1); end

  

2,SO-CFAR  【这个门限因子求解是一个非常复杂的高阶函数,基本上无法通过反函数求解,这里使用二分求解法解决】

PFA计算函数

%% 虚警概率_均值选小
%% 时间:2019.11.27
%% 版本:v1【不在优化】 function [ PFA ] = form_PFA_so( ALPHA,N )
%FORM_PFA_GO 此处显示有关此函数的摘要
% ALPHA:门限因子
% N:参考窗个数 PFA=0;
n=N/2;
for i=0:n-1
PFA=PFA+2.*gamma(n+i)./gamma(i+1)./gamma(n).*(2+ALPHA./n).^(-(n+i));
end end

  

2,GO-CFAR

PFA计算函数

%% 虚警概率_均值选大
%% 时间:2019.11.27
%% 版本:v1【不在优化】 function [ PFA ] = form_PFA_go( ALPHA,N )
%FORM_PFA_GO 此处显示有关此函数的摘要
% ALPHA:门限因子
% N:参考窗个数 PFA=0;
n=N/2;
for i=0:n-1
PFA=PFA-2.*gamma(n+i)./gamma(i+1)./gamma(n).*(2+ALPHA./n).^(-(n+i));
end
PFA=PFA+2.*(1+ALPHA./n).^(-n); end

  

3,OS-CFAR

%% 虚警概率_有序
%% 时间:2019.11.27
%% 版本:v1【不在优化】 function [ PFA ] = form_PFA_os( ALPHA,N,Rate )
%FORM_PFA_GO 此处显示有关此函数的摘要
% ALPHA:门限因子
% N:参考窗个数
% Rate:比例点 k=ceil(N.*Rate);
PFA=gamma(N+1).*gamma(N-k+ALPHA+1)./gamma(N-k+1)./gamma(N+ALPHA+1); end

  

4,杂波图

点参数

%% 虚警概率_杂波图_点参数
%% 时间:2019.11.27
%% 版本:v1【不在优化】 function [ PFA ] = form_PFA_cm_point( ALPHA,m,r )
%FORM_PFA_CM 此处显示有关此函数的摘要
% ALPHA:门限因子
% m:天线旋转周期 PFA=1;
for n=0:m-1
PFA=PFA.*(1+ALPHA.*r.*(1-r).^n).^-1;
end end

面参数

%% 虚警概率_杂波图_面参数
%% 时间:2019.11.27
%% 版本:v1【不在优化】 function [ PFA ] = form_PFA_cm_surface( ALPHA,m,r,M )
%FORM_PFA_CM 此处显示有关此函数的摘要
% ALPHA:门限因子
% m:天线旋转周期
% M:参考单元数 PFA=1;
for n=0:m-1
PFA=PFA.*(1+ALPHA.*r.*(1-r).^n./M).^-1;
end
end

  

5,二分求解法核心函数

%% 二分法求解方程的解
%% 时间:2019.11.27
%% 版本:v1【不在优化】 function [ d1 ] = func_SOLUTION_binary( d1_scope,d2_precision,func,parameter)
%FUNC_SOLUTION_BINARY 此处显示有关此函数的摘要
% d1: 已知数值
% d2: 目标数值
% d2_scope: 目标初始范围【小值,大值】
% d1_precision: 目标数值精度【精度值】
% func: 公式
% parameter: 相关参数【类型自定】 1=ALPHA, end=d2 shape=size(parameter);
if shape(2)==2 %只有一个参数额外参数需要输入
while 1
d1=mean(d1_scope);
d2=func(d1,parameter(1,1)); % 本质上是PFA_pre
d2_difference=1/d2-1/parameter(1,end);
if abs(d2_difference)<d2_precision || abs(d1_scope(1,1)-d1_scope(1,2))<0.001
return;
elseif d2_difference<0
d1_scope(1,1)=d1;
else
d1_scope(1,2)=d1;
end
end
elseif shape(2)==3 % 用于OS_CFAR门限因子的计算
while 1
d1=mean(d1_scope);
d2=func(d1,parameter(1,1),parameter(1,2)); % 本质上是PFA_pre
d2_difference=1/d2-1/parameter(1,end);
if abs(d2_difference)<d2_precision || abs(d1_scope(1,1)-d1_scope(1,2))<0.001
return;
elseif d2_difference<0
d1_scope(1,1)=d1;
else
d1_scope(1,2)=d1;
end
end
end
end

  

6,测试样例及其输出结果

clear;

PFA=10^(-4);
N=36;
Rate=0.5; [ ALPHA ] = form_ALPHA_ca( PFA,N );
[ PFA1 ] = form_PFA_ca( ALPHA,N ); d1_scope=[0,100];
d2_precision=1;
func1=@form_PFA_ca;
func2=@form_PFA_so;
func3=@form_PFA_go;
func4=@form_PFA_os; func5=@form_PFA_cm_point; parameter=[N,PFA];
parameter4=[N,Rate,PFA];
parameter5=[100,1./512,PFA]; [ ALPHA1 ] = func_SOLUTION_binary( d1_scope,d2_precision,func1,parameter);
[ ALPHA2 ] = func_SOLUTION_binary( d1_scope,d2_precision,func2,parameter);
[ ALPHA3 ] = func_SOLUTION_binary( d1_scope,d2_precision,func3,parameter);
ALPHA3_1=form_ALPHA_os (N,Rate,PFA);
[ ALPHA4 ] = func_SOLUTION_binary( d1_scope,d2_precision,func4,parameter4); [ ALPHA5 ] = func_SOLUTION_binary( d1_scope,d2_precision,func5,parameter5);

输出结果展示:

链接:https://pan.baidu.com/s/1mQjpBfzgAFYtsQLPPEAe7Q  提取码:48p6

雷达无线电系列(三)经典CFAR算法门限因子alpha计算(matlab)的更多相关文章

  1. 雷达无线电系列(二)经典CFAR算法图文解析与实现(matlab)

    一,CFAR基础知识介绍 简介 恒虚警检测技术是指雷达系统在保持虚警概率恒定条件下对接收机输出的信号与噪声作判别以确定目标信号是否存在的技术. 前提 由于接收机输出端中肯定存有噪声(包括大气噪声.人为 ...

  2. 雷达无线电系列(一)几种常见的幅度分布函数(matlab)

    文件下载地址: https://github.com/mufasa007/myblog/tree/master/%E9%9B%B7%E8%BE%BE%E6%97%A0%E7%BA%BF%E7%94%B ...

  3. Web 开发人员和设计师必读文章推荐【系列三十】

    <Web 前端开发精华文章推荐>2014年第9期(总第30期)和大家见面了.梦想天空博客关注 前端开发 技术,分享各类能够提升网站用户体验的优秀 jQuery 插件,展示前沿的 HTML5 ...

  4. JVM系列三:JVM参数设置

    JVM系列三:JVM参数设置.分析   不管是YGC还是Full GC,GC过程中都会对导致程序运行中中断,正确的选择不同的GC策略,调整JVM.GC的参数,可以极大的减少由于GC工作,而导致的程序运 ...

  5. 前端构建大法 Gulp 系列 (三):gulp的4个API 让你成为gulp专家

    系列目录 前端构建大法 Gulp 系列 (一):为什么需要前端构建 前端构建大法 Gulp 系列 (二):为什么选择gulp 前端构建大法 Gulp 系列 (三):gulp的4个API 让你成为gul ...

  6. MyBatis学习系列三——结合Spring

    目录 MyBatis学习系列一之环境搭建 MyBatis学习系列二——增删改查 MyBatis学习系列三——结合Spring MyBatis在项目中应用一般都要结合Spring,这一章主要把MyBat ...

  7. MySQL并发复制系列三:MySQL和MariaDB实现对比

    http://blog.itpub.net/28218939/viewspace-1975856/ 并发复制(Parallel Replication) 系列三:MySQL 5.7 和MariaDB ...

  8. WCF编程系列(三)地址与绑定

    WCF编程系列(三)地址与绑定   地址     地址指定了接收消息的位置,WCF中地址以统一资源标识符(URI)的形式指定.URI由通讯协议和位置路径两部分组成,如示例一中的: http://loc ...

  9. 【JAVA编码专题】 JAVA字符编码系列三:Java应用中的编码问题

    这两天抽时间又总结/整理了一下各种编码的实际编码方式,和在Java应用中的使用情况,在这里记录下来以便日后参考. 为了构成一个完整的对文字编码的认识和深入把握,以便处理在Java开发过程中遇到的各种问 ...

随机推荐

  1. gogs 实现webhook钩子(php接口形式)

    1.概要流程 2.准备工作 gogs服务器 linux网站服务器(宝塔) 本地客户端 3.编写钩子访问的接口 在public下新建githook.php文件,代码如下: <?php $cmd = ...

  2. Android输入法遮挡了输入框,使用android:fitsSystemWindows="true"后界面顶部出现白条解决方案

    我的最外层是LinearLayout,自定义CustomLinearLayout继承LinearLayout,重写fitSystemWindows和onApplyWindowInsets两个方法: p ...

  3. 004-行为型-08-状态模式(State)

    一.概述 允许一个对象在其内部状态改变时,改变它的行为 在状态模式中,我们创建表示各种状态的对象和一个行为随着状态对象改变而改变的 context 对象. 注意事项:在行为受状态约束的时候使用状态模式 ...

  4. Angular常用命令:

    新建项目: ng new angualrdermo08 --skip-install 创建需要的组件: ng g component home

  5. 查看所使用的Linux系统是32位还是64 位的方法

    方法一:getconf LONG_BIT # getconf LONG_BIT 1 1 我的Linux是32位!!! 方法二:arch # arch 1 1 显示 i686 就是32位,显示 x86_ ...

  6. 【WebView】Android WebView中的Cookie操作

    Hybrid App(混合式应用)的开发过程中少不了与WebView的交互,在涉及到账户体系的产品中,包含了一种登录状态的传递.比如,在Native(原生)界面的登录操作,进入到Web界面时,涉及到账 ...

  7. Unity 3D网络游戏实战 pdf

    Unity 3D网络游戏实战(全) 目录: 掌握Unity3D基本元素 1.1 简单的游戏 1.1.1在场景中创建一个立方体 1.1.2编写可以使立方体运动的程序 1.1.3测试游戏1.1.4总结1. ...

  8. sqoop import mysql to hive table:GC overhead limit exceeded

    1. Scenario description when I use sqoop to import mysql table into hive, I got the following error: ...

  9. this page isn't working (ERR_EMPTY_RESPONSE)

    特定情况触发了PHP的Call to undefined function(函数不存在)的Fatal error(致命错误),PHP异常终止执行,Apache收到PHP的异常信号时,认为PHP处理请求 ...

  10. 删除pod后又重新创建pod发现还是访问原先的服务状态---解决

    因为做了数据持久化存储,需要删除数据目录下的数据才可以 参照: https://www.cnblogs.com/effortsing/p/10496391.html