clear;
clc;
close all;
%--------加载信号----------
load signal.mat
signal=signal/10; %功率归一化
%-------------------------
N=100; %---距离单元个数
M=8; %---脉冲数
Ns=37; %---飞机目标所在距离单元
kk=0;
Monte_Carlo=1000;
SNR=zeros(1,10); %---杂噪比初始化
Pd_GO=zeros(1,10); %---GO-CFAR检测概率初始化
Pd_GO2=zeros(1,10); %---GO-CFAR检测概率初始化
for A=logspace(0,2,30);
kk=kk+1
SNR(kk)=A^2; %---杂噪比
B_GO=zeros(1,Monte_Carlo);
B_GO2=zeros(1,Monte_Carlo);
for MC=1:Monte_Carlo
%---产生噪声----
Noise=sqrt(2)/2*(randn(size(signal))+j*randn(size(signal)));
%---加杂波、噪声----
echo=A*signal*(sqrt(2)/2*(randn(1,1)+j*randn(1,1)))+Noise;%-信号起伏SwerlingI
echo2=A*signal+Noise;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
P_St=sum(abs(echo).^2,2)/M; %---功率
%----------------- GO-CFAR检测器 ---------------------------
Nin=16; %一侧参考单元个数
Np=1; %一侧保护单元个数
temp=P_St; %功率
jj=Ns; %目标所在位置
temp1=temp(jj-Nin-Np:jj-Np-1);sum_te1=sum(abs(temp1))/Nin; %单侧平均功率
temp2=temp(jj+Np+1:jj+Nin+Np);sum_te2=sum(abs(temp2))/Nin; %单侧平均功率
max_tem=[sum_te1,sum_te2];
T_GO=max(max_tem); %单元平均选大CFAR(GO-CA-CFAR)
C=15.7244; %---虚警率1e-6
T_GO=C*T_GO; %---20倍约等于13dB
B_GO(MC)=(P_St(Ns)>=T_GO);
P_St2=sum(abs(echo2).^2,2)/M; %---功率
%----------------- GO-CFAR检测器 ---------------------------
Nin=16; %一侧参考单元个数
Np=1; %一侧保护单元个数
temp=P_St2; %功率
jj=Ns; %目标所在位置
temp1=temp(jj-Nin-Np:jj-Np-1);sum_te1=sum(abs(temp1))/Nin; %单侧平均功率
temp2=temp(jj+Np+1:jj+Nin+Np);sum_te2=sum(abs(temp2))/Nin; %单侧平均功率
max_tem=[sum_te1,sum_te2];
T_GO2=max(max_tem); %单元平均选大CFAR(GO-CA-CFAR)
C=15.7244; %---虚警率1e-6
T_GO2=C*T_GO2; %---20倍约等于13dB
B_GO2(MC)=(P_St2(Ns)>=T_GO2);
end
Pd_GO(kk)=sum(B_GO)/Monte_Carlo; %---检测概率
Pd_GO2(kk)=sum(B_GO2)/Monte_Carlo; %---检测概率
end
%%--------------理论值-------------------
N=32; %参考单元(必须是偶数)
C_GO=zeros(1,N/2-1); %组合数
n=0;
%虚警1e-6
alpha_GO=15.7244;
Pd=zeros(1,20);
for SNR1=logspace(0,4,30);
for k=0:N/2-1
C_GO(k+1)=nchoosek(N/2-1+k,k)*((2+alpha_GO/(N/2)/(1+SNR1))^(-N/2-k));
end
X_GO=sum(C_GO); %求和
n=n+1;
Pd(n)=2*(1+alpha_GO/(N/2)/(1+SNR1))^(-N/2)-2*X_GO;
end
figure(1)
plot(10*log10(SNR),Pd_GO,'-+r','LineWidth',2);hold on;
plot(10*log10(SNR),Pd_GO2,'-vk','LineWidth',2);
plot(10*log10(SNR),Pd,'-ob','LineWidth',2);hold off;
legend('信号功率加起伏控制','信号功率恒定','理论值')
title('GO-CFAR虚警率为1e-6,参考单元为32')
xlabel('信噪比(dB)');
ylabel('检测概率');
axis([0,40,0,1]);
grid on
没有合适的资源?快使用搜索试试~ 我知道了~
基于MATLAB实现的GO-CFAR检测是信号处理中非常常用的检测方法+使用说明文档
共4个文件
mat:1个
md:1个
m:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 197 浏览量
2024-05-22
17:11:07
上传
评论
收藏 44KB RAR 举报
温馨提示
CSDN IT狂飙上传的代码均可运行,功能ok的情况下才上传的,直接替换数据即可使用,小白也能轻松上手 【资源说明】 基于MATLAB实现的GO-CFAR检测是信号处理中非常常用的检测方法该程序比较了理论值和实际值的仿真结果实际中雷达信号往往是起伏的,该程序从SweringI型为例+使用说明文档 1、代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2020b;若运行有误,根据提示GPT修改;若不会,私信博主(问题描述要详细); 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可后台私信博主; 4.1 期刊或参考文献复现 4.2 Matlab程序定制 4.3 科研合作 功率谱估计: 故障诊断分析: 雷达通信:雷达LFM、MIMO、成像、定位、干扰、检测、信号分析、脉冲压缩 滤波估计:SOC估计 目标定位:WSN定位、滤波跟踪、目标定位 生物电信号:肌电信号EMG、脑电信号EEG、心电信号ECG 通信系统:DOA估计、编码译码、变分模态分解、管道泄漏、滤波器、数字信号处理+传输+分析+去噪、数字信号调制、误码率、信号估计、DTMF、信号检测识别融合、LEACH协议、信号检测、水声通信 5、欢迎下载,沟通交流,互相学习,共同进步!
资源推荐
资源详情
资源评论
收起资源包目录
基于MATLAB实现的GO-CFAR检测是信号处理中非常常用的检测方法该程序比较了理论值和实际值的仿真结果实际中雷达信号往往是起伏的,该程序从SweringI型为例+使用说明文档.rar (4个子文件)
GO_CFAR仿真
performace_of_GOCFAR_detecton.m 3KB
signal.mat 477B
GO_CFAR检测概率(蒙特卡洛10000次).jpg 46KB
使用说明文档.md 13KB
共 4 条
- 1
资源评论
IT狂飙
- 粉丝: 4778
- 资源: 2640
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功