雷达无线电系列(三)经典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开发过程中遇到的各种问 ...
随机推荐
- Eclipse创建的Java Web项目,如何启用外置浏览器访问jsp或者html页面
当我们用Eclipse创建了一个Java Web项目,想访问一个jsp或者html页面时,通常会在目标页面(以jsp为例)上点击鼠标右键,选择[Run As]——>[Run on Server] ...
- 【django学习】request.POST与request.POST.get两者主要区别
本文链接:https://blog.csdn.net/xun527/article/details/87777576request.POST是用来接收前端传过来的数据 一.request.POST.g ...
- Activity: launchMode 和 Intent.FLAG_ACTIVITY_CLEAR_TOP
Activity 的 launchMode: 1. standard: 标准模式 这种启动模式为标准模式,也是默认模式.每当我们启动一个Activity,系统就会相应的创建一个实例,不管这个实例是否已 ...
- Java基础 import 要在所有的class前面
JDK :OpenJDK-11 OS :CentOS 7.6.1810 IDE :Eclipse 2019‑03 typesetting :Markdown code ...
- shell编程系列15--文本处理三剑客之awk格式化输出printf
shell编程系列15--文本处理三剑客之awk格式化输出printf printf的格式说明符 格式符 含义 %s 打印字符串 %d 打印十进制数 %f 打印一个浮点数 %x 打印十六进制数 %o ...
- IMDB-WIKI – 500k+ face images with age and gender labels论文学习
DEX: Deep EXpectation of apparent age from a single image 这个论文我们使用深度学习解决了在静态人脸图像中面部年龄的估计.我们的卷积神经网络使用 ...
- JAVA 或与非运算符 与(&)、或(|)、异或(^)
运算步骤: 第一步:.转成二进制,即01表示的数字,如5的二进制为 0000 0101,我用八位表示. 第二步:比较二者位数上的数字 1.与运算符 与运算符用符号“&”表示,其使用规律如下: ...
- 123457123456#2#----com.MCgame.ShuXueKoSuan98--前拼后广--儿童小学数学口算Game-mc22222
com.MCgame.ShuXueKoSuan98--前拼后广--儿童小学数学口算Game-mc
- Flink 物理分区
本文来自官网: https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/stream/operators/#physical-p ...
- docker容器中解决出现:^H^H^H^H
docker容器中解决出现:^H^H^H^H 环境:docker容器是debain系统 解决: 把stty erase ^H 添加到.bash_profile中 vim /etc/profile st ...