雷达无线电系列(三)经典CFAR算法门限因子alpha计算(matlab)
前言 本文汇集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)的更多相关文章
- 雷达无线电系列(二)经典CFAR算法图文解析与实现(matlab)
一,CFAR基础知识介绍 简介 恒虚警检测技术是指雷达系统在保持虚警概率恒定条件下对接收机输出的信号与噪声作判别以确定目标信号是否存在的技术. 前提 由于接收机输出端中肯定存有噪声(包括大气噪声.人为 ...
- 雷达无线电系列(一)几种常见的幅度分布函数(matlab)
文件下载地址: https://github.com/mufasa007/myblog/tree/master/%E9%9B%B7%E8%BE%BE%E6%97%A0%E7%BA%BF%E7%94%B ...
- Web 开发人员和设计师必读文章推荐【系列三十】
<Web 前端开发精华文章推荐>2014年第9期(总第30期)和大家见面了.梦想天空博客关注 前端开发 技术,分享各类能够提升网站用户体验的优秀 jQuery 插件,展示前沿的 HTML5 ...
- JVM系列三:JVM参数设置
JVM系列三:JVM参数设置.分析 不管是YGC还是Full GC,GC过程中都会对导致程序运行中中断,正确的选择不同的GC策略,调整JVM.GC的参数,可以极大的减少由于GC工作,而导致的程序运 ...
- 前端构建大法 Gulp 系列 (三):gulp的4个API 让你成为gulp专家
系列目录 前端构建大法 Gulp 系列 (一):为什么需要前端构建 前端构建大法 Gulp 系列 (二):为什么选择gulp 前端构建大法 Gulp 系列 (三):gulp的4个API 让你成为gul ...
- MyBatis学习系列三——结合Spring
目录 MyBatis学习系列一之环境搭建 MyBatis学习系列二——增删改查 MyBatis学习系列三——结合Spring MyBatis在项目中应用一般都要结合Spring,这一章主要把MyBat ...
- MySQL并发复制系列三:MySQL和MariaDB实现对比
http://blog.itpub.net/28218939/viewspace-1975856/ 并发复制(Parallel Replication) 系列三:MySQL 5.7 和MariaDB ...
- WCF编程系列(三)地址与绑定
WCF编程系列(三)地址与绑定 地址 地址指定了接收消息的位置,WCF中地址以统一资源标识符(URI)的形式指定.URI由通讯协议和位置路径两部分组成,如示例一中的: http://loc ...
- 【JAVA编码专题】 JAVA字符编码系列三:Java应用中的编码问题
这两天抽时间又总结/整理了一下各种编码的实际编码方式,和在Java应用中的使用情况,在这里记录下来以便日后参考. 为了构成一个完整的对文字编码的认识和深入把握,以便处理在Java开发过程中遇到的各种问 ...
随机推荐
- CMD命令打包文件夹成jar
网上的很多例子都是直接将在dos界面下输入jar命令出现的帮助信息给贴上了.不明白的人根本看不懂.当然我也看不懂,好在自己试了好多遍,终于成功了.现在我就根据我刚刚的操作来说明一下. 我介绍的是将一个 ...
- Java回调机制在RPC框架中的应用示例
完整源码: https://gitee.com/shiyanjun/x-callback-demo 应用场景描述: 服务提供者在项目启动时,创建并启动一个TCP服务器,然后将自己提供的所有服务注册到注 ...
- iptables 的安装与配置
iptables 的安装与配置 由于centos7默认是使用firewall作为防火墙,下面介绍如何将系统的防火墙设置为iptables. #停止firewall systemctl stop fi ...
- 【433】COMP9024 复习
目录: 01. Week01 - Lec02 - Revision and setting the scene 02. Week02 - Lec01 - Data structures - memor ...
- 毫无PS痕迹 你的第一本Photoshop书 完整版
毫无PS痕迹 你的第一本Photoshop书 目录 <毫无PS痕迹-你的本Photoshop书>全书分为四大部分: 第1.2章讲解色彩和图像的原理与基础知识要点. 第3至11章全面讲解了使 ...
- Spring Cloud Config 分布式配置管理 5.3
Spring Cloud Config简介 在传统的单体式应用系统中,我们通常会将配置文件和代码放在一起,但随着系统越来越大,需要实现的功能越来越多时,我们又不得不将系统升级为分布式系统,同时也会将系 ...
- git切换到某个tag, 从tag切换回当前分支
git clone 整个仓库后使用,以下命令就可以取得该 tag 对应的代码了 git checkout tag_name 但是,这时候 git 可能会提示你当前处于一个“detached HEAD& ...
- Swift4.0复习循环
1.for-in循环: 2.while循环: 3.repeat-while循环: repeat { // 循环体中的一条或多条执行语句 } while condition 4.标签语句: if_lab ...
- idea使用快捷键ALT+/的时候,本来想在new后面创建对象,结果又出来一个new
我们知道eclipse的自动提示补齐new 后面的对象的快捷键是ALT+/,当我使用idea的时候,把idea的快捷键换成了eclipse的风格. 然而当我按下ALT+/的时候,就给我自动输入了一个n ...
- POJ Corn Fields 状态压缩DP基础题
题目链接:http://poj.org/problem?id=3254 题目大意(名称什么的可能不一样,不过表达的意思还是一样的): 种玉米 王小二从小学一年级到现在每次考试都是班级倒数第一名,他的爸 ...