毫米波雷达 3发4收 阵列信号回波模拟(基于信号的延时来建模)以及DOA和MVDR方法测角 (二)

雷达阵列回波模拟和DOA、MVDR仿真

下列matlab程序主要是仿真了3发4收等效为1发12收的连续扫频波制式下的阵列回波,并在阵列的基础上做DOA和MVDR角度分辨率实验。

这于上一篇《毫米波雷达 3T4R 阵列回波信号模拟 以及 mvdr角度的分辨(一)》

https://blog.csdn.net/taiyangshenniao/article/details/116278475?spm=1001.2014.3001.5501

的另外一种建模方法,本片文章是基于信号的延时来建立数学模型和仿真的。

以下是matlab的程序:

%% 本程序为FMCW制式雷达发射信号与回波信号仿真,雷达采用3发4收构造MIMO虚拟孔径,仿阵列回波,以验证超分辨算法
% 本例程是基于发射信号的延时的方式来构建的个接受天线的回波数据,推导原理参考
%天线间距为半波长,发射频率为24G,目标信息可设置
%V01 此版本没有考虑速度的影响,只考虑了角度和距离的影响

close all;clearvars;clc;
dbstop if error;
 
%------------------------参数设置----------------------------------------
F0                = 24e9;                              %载频
B                 = 200e6;                             %带宽
T                 = 10E-3;                              %
u                 = B/T;
c                 = 3E8;
PL                = 1;                              %快拍数
RXannate          = 4;
TXannate          = 3;
virtueRxannate    = TXannate * RXannate;
lamada            = c/F0;
D                 = lamada/2;
samplenum         = 256;
FS                = samplenum / T;
t                 = [1/FS : 1/FS : samplenum/FS];
RPT               = 50E-3;                              %总共仿真RPT * PL 时间
rsolution         = c/2/B;

targetnumber= 2;
% 每一个目标的信息按顺序分别为距离(m)、速度(靠近为﹣,远离为+)(m/s)、角度(°)、信噪比 DB;
% 此处的距离是按照第一幅发射天线维坐标原点建立的相对位置
targetinfoR = [20 20.2]';
targetinfoV = [0 0]';
targetinfoP = [18 21]';
signalAmplitude = [20 20]';                      

%% 构造目标到每一副接受天线之间的延时
TXarraydis = [0 4*D 8*D]';                                      %发射天线在坐标轴上的位置
RXarraydis = TXannate*RXannate*D + [0 : 1 : RXannate-1]' * D;   %接受天线在坐标轴上的位置
for i = 1 : targetnumber    %生成目标的TX延时txrtao
    
    txrtao(:,i) = sqrt(repmat(targetinfoR(i)^2 , TXannate , 1) + TXarraydis.^2 - 2*targetinfoR(i)*TXarraydis*cosd(90 - targetinfoP(i)))/c;
end

for i = 1 : targetnumber    %生成目标的RX延时txrtao
    
    rxrtao(:,i) = sqrt(repmat(targetinfoR(i)^2 , RXannate , 1) + RXarraydis.^2 - 2*targetinfoR(i)*RXarraydis*cosd(90 - targetinfoP(i)))/c;
end

% 按照3法4收获取12副接受天线的延时,用于后续构造阵列使用
cnt = 1;
for i=1 : 1 : TXannate
   for j = 1 : 1 : RXannate
      
       tao(cnt,:) = txrtao( i , :) + rxrtao( j,:);
       cnt = cnt + 1;
   end    
end

%% 回波信号模拟
Sr = zeros(virtueRxannate , samplenum);
signalAmplitude = 10.^(signalAmplitude / 10);
for i = 1 : 1 : targetnumber
    %产生零均值、方差为1的复高斯白噪声v(n)
    % 此处产生的是12路无关的噪声,所以他的自相关矩阵的秩是满秩矩阵
    noise = (randn(virtueRxannate,samplenum)+1j*randn(virtueRxannate,samplenum))/sqrt(2);
    Sr = Sr + signalAmplitude(i) * exp(-1i * 2 * u * pi * tao(: , i) * t) .* exp(1i*u*pi*(tao(: , i).^2)) .* exp(-1i*2*pi*F0*tao(: , i)) + noise;
end
Sr = Sr';

%% 正确性检测与侧向
% 频率检测(距离检测)
sr_fft = fft(Sr);
sr_abs = abs(sr_fft);
figure;plot([0 : 1 : samplenum-1]*rsolution  , sum(sr_abs , 2));title('目标距离');

% 角度检测 FFT 测角法
angledata = sum(sr_abs , 2);
angledata(angledata < 5000) = 0;
[~ , peaks] = findpeaks(angledata);
angledata = sr_fft(peaks , :);
angledata = abs(fft(angledata' , 256));
angledata = fftshift((angledata ./max(angledata)));
figure;plot(asind([-pi : 2*pi / 255 : pi] ./ pi) , 10*log10(angledata));title('目标角度(FFT求解)');
xlabel('角度');ylabel('DB');

% 常规波束形成方法求角度分辨率
relatematrix = sr_fft' * sr_fft;
% relatematrix = Sr' * Sr;
pisearch = -90 : 0.1 : 90;
CBF = zeros(1 , length(pisearch));
for phi = 1 : length(pisearch)

    a = exp(-1i* 2* pi .* [0 : 1 : virtueRxannate-1].*D * sind(pisearch(phi)) ./  lamada );
    CBF(phi) = abs(a * relatematrix * a');
end
CBF = CBF / max( CBF);
figure;
plot(pisearch , 10*log10(CBF));xlabel('角度');ylabel('DB');title('CBF解角');

invmatrix = inv(relatematrix);
% MVDR 波束形成
for phi = 1 : length(pisearch)

    a = exp(-1i* 2* pi .* [0 : 1 : virtueRxannate-1]*D * sind(pisearch(phi)) ./  lamada );
    MVDR(phi) = 1/abs(a * invmatrix * a');              
end

MVDR = MVDR / max( MVDR);
figure;
plot(pisearch , 10*log10(MVDR));xlabel('角度');ylabel('DB');title('MVDR解角');

%% ----------------------------------------------------------------
% 结束

实验分析:

1、目标的位置在20m处,从频谱上看是正确的

毫米波雷达 3发4收 阵列信号回波模拟(基于信号的延时来建模)以及DOA和MVDR方法测角 (二)_第1张图片

2、目标通过FFT方法解角结果,可以看到相同距离单元上的两个目标一个在18°、一个在21°;由于FFT解角分辨率不够高,无法分辨两个目标的角度

毫米波雷达 3发4收 阵列信号回波模拟(基于信号的延时来建模)以及DOA和MVDR方法测角 (二)_第2张图片

3、CBF解角,貌似还是没有区分开来

毫米波雷达 3发4收 阵列信号回波模拟(基于信号的延时来建模)以及DOA和MVDR方法测角 (二)_第3张图片

4、mvdr解角

毫米波雷达 3发4收 阵列信号回波模拟(基于信号的延时来建模)以及DOA和MVDR方法测角 (二)_第4张图片

 

5、matlab中回波建模推导

毫米波雷达 3发4收 阵列信号回波模拟(基于信号的延时来建模)以及DOA和MVDR方法测角 (二)_第5张图片

毫米波雷达 3发4收 阵列信号回波模拟(基于信号的延时来建模)以及DOA和MVDR方法测角 (二)_第6张图片

毫米波雷达 3发4收 阵列信号回波模拟(基于信号的延时来建模)以及DOA和MVDR方法测角 (二)_第7张图片

毫米波雷达 3发4收 阵列信号回波模拟(基于信号的延时来建模)以及DOA和MVDR方法测角 (二)_第8张图片

6、实验总结

本版本的程序暂时没有考虑速度,需要在下一版本中加入速度因素;可以看出MVDR在静止目标的区分上还是效果挺好的,此处目标信噪比也是比较高的,如果降低后,可能性能会有所下降

你可能感兴趣的:(空间谱估计学习和应用,阵列信号处理,雷达回波,doa,mvdr)