首页 > 其他分享 >m基于matlab的超宽带MIMO雷达对目标的检测仿真,考虑时间反转

m基于matlab的超宽带MIMO雷达对目标的检测仿真,考虑时间反转

时间:2023-01-02 17:01:09浏览次数:40  
标签:end 反转 超宽带 matlab 信号 alpha 接收 Nt MIMO

1.算法概述

     (不加时间反转处理)参看框图1:天线阵A发送信号,经过目标场,在接收阵B端接收数据记为Y1,然后对所接收到的信号处理(匹配滤波等处理过程),得到回波的信噪比,目标的位置及成像;用图示表示如下:

 不加时间反转处理的程序,其基本流程图如下所示:

 

 

 

 (加上时间反转处理)在B端接收到信号Y1,对Y1做时间反转处理,能量归一化后再发射出去,经过同样的空间场,然后在A端接收数据记为Y2,对接收到的数据Y2再做处理(匹配滤波等),得到回波的信噪比(与第一步未加时间反转做对比),目标的位置信息及成像。用图示表示如下:

 

 

 

 

 加时间反转处理的程序,其基本流程图如下所示:

 

 

 

 

       发射天线数Nt个,接收天线数Nr个(Nt,Nr可以自由设置或确定设置为某一值,如Nt=2,Nr=3等等),空间中放置检测目标(目标个数可以自定,简化下,目标可看成是点目标),发射端发射信号为超宽带信号(高斯脉冲信号),并且Nt个发射信号为正交信号(即将前面的高斯脉冲信号进行处理,使信号正交),信号经过探测空间后,接收端对回波进行处理,得到空间中目标的位置及成像。

 

具体步骤:假设收发双方分别为天线阵A和天线阵B

 

        第一步:(不加时间反转处理)参看框图1:天线阵A发送信号,经过目标场,在接收阵B端接收数据记为Y1,然后对所接收到的信号处理(匹配滤波等处理过程),得到回波的信噪比,目标的位置及成像;

 

        第二步:(加上时间反转处理)在B端接收到信号Y1,对Y1做时间反转处理,能量归一化后再发射出去,经过同样的空间场,然后在A端接收数据记为Y2,对接收到的数据Y2再做处理(匹配滤波等),得到回波的信噪比(与第一步未加时间反转做对比),目标的位置信息及成像。

 

2.仿真效果预览

matlab2022a仿真结果如下:

 

 

 

 

 

 

 

 

3.MATLAB部分代码预览

 

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
figure;
color = ['b','g','r','k'];
for i   = 1:length(alpha)
    [gt,f]  = func_UWB_gspluse(E0,fc,f1,f2,k,scale,alpha(i));
    tmp     = color(i);
    plot(f,gt,tmp);
    hold on;
    axis([898,902,-0.5,1.2]);
end
title('超宽带高斯脉冲信号');
legend('alpha = 0','alpha = 0.75','alpha = 1.5','alpha = 3');
% clear E0 alpha fc f1 f2 k scale color gt f
%进行传统算法
%下面开始实际的算法
%这里发送天线和接收天线设置为4和1,如果要修改
%%
%参数的初始化
Nt   = 3;
Nr   = 3;
L    = length(gt);
l    = 1:L;
T    = 1/(10^6);
ts   = T/L;
SNR  =-10:1:20;
times= 200;
Pfa  = 10e-5;%虚警概率
%%
%超带宽高斯脉冲信号
[gt,f]  = func_UWB_gspluse(E0,fc,f1,f2,k,scale,alpha(1));
 
%MIMO发送信号
X = func_MIMO_trans(gt,Nt,ts,T);
ind = 0;
for j = 1:length(SNR)
    N0    = 10^(SNR(j)/10);
    count = 0;
    mui   = 1;
    for i = 1:times%利用门特卡罗的设计仿真思想,计算不同信噪比下的检测概率
        ind = ind + 1 
        %通过MIMO信道
        [alpha,H]=func_MIMO_channel(Nt,N0);
        %接收机接收到的信号
        for l=1:L           
            r(:,l)=H*X(:,l);
        end 
        
        %将时间反转的信号通过信道发送回去
        for l=1:L      
            r2(:,l)=H*conj(r(:,l));
        end         
 
        %匹配滤波
        [E,R] = func_match_filter(r2,X,L);
        %目标检测 
        Theta_doa = func_MIMORadar_DOA(E,R);
        %判断是否被检测到
        threshold = 10000;
        if(Theta_doa>threshold)
           detected = 1;
           count    = count + 1;
        else
           p = rand(1,1);
           if p > 1-Pfa    %虚警概率
              detected = 1;
              count    = count + 1;
           else
              detected = 0;
           end
        end
    end
    pc(j) = count/times;
end
toc
figure;
plot(SNR,pc,'b-o');        
xlabel('SNR');
ylabel('Pmd');
grid on;
01_049_m

 

  

 

标签:end,反转,超宽带,matlab,信号,alpha,接收,Nt,MIMO
From: https://www.cnblogs.com/51matlab/p/17020163.html

相关文章