DBF算法实现程序如下:
输入: parameter 是 毫米波雷达的参数设置。
antVec 是 目标点的8个虚拟天线的非相参积累数据。
function [angle,doa_abs] = dbfMethod(parameter,antVec)txAntenna = parameter.txAntenna; % 发射天线 [1 1]rxAntenna = parameter.rxAntenna; % 接收天线 [1 1 1 1]virtualAntenna = parameter.virtualAntenna; % 虚拟天线个数 8lambda = parameter.lambda; % 发射波长txNum = length(txAntenna); % 发射天线个数rxNum = length(rxAntenna); % 接收天线个数dx = parameter.dx; % 接收天线水平间距deg = -90:0.1:90; % 角度weightVec = zeros(virtualAntenna,1); %doa_dbf = zeros(length(deg),1); % kk = 1;for degscan = deg %for txId = 1:txNum for rxId = 1:rxNum dphi = ((txId-1) * rxNum + rxId - 1) * 2 * pi / lambda * dx * sind(degscan); % 相位差 weightVec((txId-1) * rxNum + rxId) = exp(-1i * dphi); % 方向相量endenddoa_dbf(kk) = antVec'*weightVec; %加权kk = kk + 1;enddoa_abs = abs(doa_dbf);[pk,loc]=max(doa_abs);angle = deg(loc);
end