微信公众号:EW Frontier
关注可了解更多的雷达、通信、人工智能相关代码。问题或建议,请公众号留言;
如果你觉得EW Frontier对你有帮助,欢迎加入我的知识星球或面包多,更多代码等你来学
知识星球:https://wx.zsxq.com/dweb2/index/group/15552518881412
面包多:https://mbd.pub/o/author-a2mYl2tsbA==/workQQ交流群:1022600869
如有侵权请联系删除~
m-DT处理算法原理
m-DT 处理算法是一类在子阵-多普勒域进行降维的后多普勒算法,在工程中有很广泛的应用,其中 m 可以取 1、3、5 等值,表示多普勒通道的个数,该方法通过在多普勒域上选取一个较小的窗口进行滑窗来实现 STAP 系统自由度的降低。当 m=1 时,该算法退化为一种空时级联的空域自适应滤波方法,性能比空时联合方法要差些;当 m 取值较大时,计算量随着系统自由度的增加而增加,而且算法的稳定性也要受到多普勒通道间相关性的限制。因此,本节我们重点研究3DT 算法。
同 JDL 算法一样,3DT 方法也是一类固定结构的降维 STAP 算法,即通过变换矩阵将数据从子阵-脉冲域变换到子阵-多普勒域,然后再在变换域内进行类似传统 STAP 的自适应滤波处理,并通过划窗来覆盖所有的多普勒单元。
3DT 方法在大幅降低 STAP 计算量的同时,具有很好的稳定性;接下来我们采用正侧视数据对 3DT 算法进行简要性能分析,关于该算法在正前视杂波抑制中的应用我们将在第四章中进行讨论。
MATLAB代码
%空时降维3dt方法
clc;clear all;close all;
load clutter_matrix.mat;
[NK,L]=size(clutter_matrix);
N=16;
K=10;
CNR=60;
Rc=clutter_matrix*clutter_matrix'/L;
noise=max(max(Rc))/(10^(CNR/10))*eye(N*K);
Rx=Rc+noise;
anoise=max(max(noise)); %噪声功率
Qs=eye(N); %空域降维矩阵
psi0=pi/2;
% 全维STAP
fd=-1:1/50:1;
inv_Rx=inv(Rx);
for i=1:length(fd);
Ss=exp(j*pi*(0:N-1)'*cos(psi0)); %目标方向确定时,Ss固定,但目标doppler频率未知,故每一个fd有一个最优权矢量wopt
St=exp(j*pi*(0:K-1)'*fd(i));
S=kron(St,Ss);
wopt=inv_Rx*S/(S'*inv_Rx*S);
IF(i)=abs(wopt'*S)^2*(10^(CNR/10)+1)*anoise/(wopt'*Rx*wopt);
end
figure
plot(fd,10*log10(abs(IF)))
xlabel('2f_d/f_r');ylabel('IF/dB');
grid on
index=0;
for fd=-1:1/50:1
index=index+1;
Qt=[exp(j*pi*(0:K-1).'*(fd-1/K)),exp(j*pi*(0:K-1).'*fd),exp(j*pi*(0:K-1).'*(fd+1/K))];%时域降维矩阵
Q=kron(Qt,Qs);
Ry=Q'*Rx*Q;
inv_Ry=inv(Ry);
Ss=exp(j*pi*(0:N-1).'*cos(psi0));
St=exp(j*pi*(0:K-1).'*fd);
g1=(exp(j*pi*(0:K-1).'*(fd-1/K)))'*St/((exp(j*pi*(0:K-1).'*fd))'*St);
g2=(exp(j*pi*(0:K-1).'*(fd+1/K)))'*St/((exp(j*pi*(0:K-1).'*fd))'*St);
Sy=[g1*Ss;Ss;g2*Ss];
% Sy1=kron(Qt'*St,Qs'*Ss)/K;
W_3dt=inv_Ry*Sy/(Sy'*inv_Ry*Sy);
IF_3dt(:,index)=abs(W_3dt'*Sy).^2*(10^(CNR/10)+1)*anoise/(W_3dt'*Ry*W_3dt);
end
hold on
plot(-1:1/50:1,10*log10(IF_3dt),'r');
legend('最优','3DT')
数据集加群获取~