
 


算法实现如下:
parameter:雷达参数设置。
antVet:目标点 对应的非相参积累天线数据。
function [angle,doa_abs] = caponMethod(parameter,antVec)txAntenna = parameter.txAntenna;  % 发射天线 [1  1]rxAntenna = parameter.rxAntenna;  % 接收天线 [1  1  1  1]txNum = length(txAntenna);        % 发射天线个数  2rxNum = length(rxAntenna);        % 接收天线个数  4lambda = parameter.lambda;        % 波长dx = parameter.dx;   % 天线间隔virtualAntenna = parameter.virtualAntenna;  % 虚拟天线个数Rx = antVec * antVec' / virtualAntenna; deg = -90:0.1:90;a = zeros(virtualAntenna,1);kk = 1;for degscan = degfor txId = 1:txNumfor rxId = 1:rxNumvirtualAntennaId = (txId-1) * rxNum + rxId - 1;dphi = 2 * pi / lambda * dx * virtualAntennaId * sind(degscan);a((txId-1) * rxNum + rxId) = exp(-1i * dphi);endendRxInv = inv(Rx);  % inv矩阵的逆P_out(kk) = 1/(a'*RxInv*a);kk = kk + 1;enddoa_abs = abs(P_out);[pk,loc]=max(doa_abs);angle = deg(loc);end