This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AWR1243BOOST: AWR1243单芯片的虚拟天线排列和方位角、俯仰角如何求取

Part Number: AWR1243BOOST
Other Parts Discussed in Thread: AWR1243

我想询问的问题如下:

1、关于AWR1243BOOST这块板子的虚拟天线阵列排布的文档可以在哪里获取,我翻阅了很多文档没有找到。

2、我想绘制目标在XY平面上的投影情况如图,因此我需要知道俯仰角和方位角。但是我尝试了很久得到的XY-PLANE图一直与我的现场目标放置不同,我觉得可能出问题的地方是天线排列与求角的方式。

在求解俯仰角的时候,我的计算方式是用垂直天线4个 和水平天线四个,分别获取目标所在位置的相位,并作差取平均得到俯仰角的相位差,根据公式计算得到俯仰角角度。在求解水平角的时候,我选择八个水平天线做FFT,取最大峰值的索引代入我的[-ANGLE_SAMPLE/2:ANGLE_SAMPLE/2]*ANGLE_RES中得到对应的水平角。请问您觉得是否有问题,或者是否能够提供AWR1243相关绘制XY-PLANE图的例程程序

我从我的代码中提取出了最小程序部分用于提问,SPEED_PROFILE是经过RANGE-DOPPLER维度后的数据,维度分别对应为ADC_SAMPLE,虚拟天线,chirp维,帧数维 即1024*12*64*200

TARGET_INDEX = [54,68,80,89,94,100,107,111,134,141,149]; % 目标位置bin2

Azimuth_Angle = [];
Vertical_Angle = [];
TARGET_DATAS = squeeze(sum(SPEED_PROFILE(:,:,:,9),3));
for target_index = 1:length(TARGET_INDEX)
TARGET_DATA = TARGET_DATAS(TARGET_INDEX(target_index),:);
AZIMUTH_TARGET_DATA= cat(2,TARGET_DATA(1),TARGET_DATA(4),...
TARGET_DATA(7),TARGET_DATA(10),...
TARGET_DATA(3),TARGET_DATA(6),...
TARGET_DATA(9),TARGET_DATA(12));

TARGET_ANGLE = fftshift(fft(AZIMUTH_TARGET_DATA,ANGLE_SAMPLE));
[TARGET_MAX_VALUE,TARGET_ANGLE_INDEX] = max(TARGET_ANGLE);
Azimuth_Angle(target_index) = ANGLE_AXIS(TARGET_ANGLE_INDEX);

TARGET_DATA1 = cat(2,TARGET_DATA(2),TARGET_DATA(5),TARGET_DATA(8),TARGET_DATA(11)); % 垂直天线
TARGET_ANGLE1 = angle(TARGET_DATA1);
VERTICAL_ANGLE1 = TARGET_ANGLE1;

TARGET_DATA2 = cat(2,TARGET_DATA(7),TARGET_DATA(10),TARGET_DATA(3),TARGET_DATA(6)); % 水平天线和垂直天线重叠部分
TARGET_ANGLE2 = angle(TARGET_DATA2);
VERTICAL_ANGLE2 = TARGET_ANGLE2;
VERTICAL_ANGLE = mean(VERTICAL_ANGLE2 - VERTICAL_ANGLE1);
Vertical_Angle(target_index) = asind(VERTICAL_ANGLE/pi);

% TARGET_ANGLES = fftshift(fft(TARGET_DATA1,ANGLE_SAMPLE));
% [MAX_VALUE1,ANGLE_INDEX1] = max(TARGET_ANGLES);
% Vertical_Angle(target_index) = ANGLE_AXIS(ANGLE_INDEX1);
% TARGET_ANGLE2 = fft(TARGET_DATA2,ANGLE_SAMPLE);
% [MAX_VALUE2,ANGLE_INDEX2] = max(TARGET_ANGLE2);
% VERTICAL_ANGLE2 = ANGLE_AXIS(ANGLE_INDEX2);
end

for target_index = 1:length(TARGET_INDEX)
AXIS_X = RANGE_AXIS(TARGET_INDEX(target_index)) * cosd((Vertical_Angle(target_index))) * ...
sind((Azimuth_Angle(target_index)));
AXIS_Y = RANGE_AXIS(TARGET_INDEX(target_index)) * cosd((Vertical_Angle(target_index))) * ...
cosd((Azimuth_Angle(target_index)));
scatter(AXIS_X,AXIS_Y,'r');hold on;
xlabel('X(m)');ylabel('Y(m)');grid on;
% xlim([-10 10]);ylim([0 15]);
% AMPLITUDE = abs(TARGET_DATAS(target_index,1));
end

  • 1、关于AWR1243BOOST这块板子的虚拟天线阵列排布的文档可以在哪里获取,我翻阅了很多文档没有找到。

    请参考下面的文档

    https://www.ti.com/lit/pdf/swra554

    虚拟天线排布和你预想的不同,请参考上面文档后再做计算。

  • 请问我的计算方法有问题吗?

  • 我的发射天线配置顺序是TX1,TX3,TX2.从bin文件解析出来的数据为4*32321600,4表示接收天线。也就是说我要是扩展从虚拟天线维度12个通道的话,从前往后排列应该是RX1TX1,RX1TX3,RX1TX2,RX2TX1,RX2TX3,RX2TX2,RX3TX1,RX3TX3,RX3TX2,RX4TX1,RX4TX3,RX4TX2这12个通道。TX2为垂直天线,TX1和TX3为水平天线。因此我的天线排列图如下图所示。

    在上图中我选择绿色部分的水平天线求解方位角,选择黄色部分的垂直天线求解俯仰角。这样不对吗?

    for target_index = 1:length(TARGET_INDEX)
    TARGET_DATA = TARGET_DATAS(TARGET_INDEX(target_index),:);
    AZIMUTH_TARGET_DATA= cat(2,TARGET_DATA(1),TARGET_DATA(4),...
    TARGET_DATA(7),TARGET_DATA(10),...
    TARGET_DATA(2),TARGET_DATA(5),...
    TARGET_DATA(8),TARGET_DATA(11));

    TARGET_ANGLE = fftshift(fft(AZIMUTH_TARGET_DATA,ANGLE_SAMPLE));
    [TARGET_MAX_VALUE,TARGET_ANGLE_INDEX] = max(TARGET_ANGLE);
    Azimuth_Angle(target_index) = asind(ANGLE_AXIS(TARGET_ANGLE_INDEX)/pi)

    TARGET_DATA1 = cat(2,TARGET_DATA(3),TARGET_DATA(6),TARGET_DATA(9),TARGET_DATA(12)); % 垂直天线
    TARGET_ANGLES = fftshift(fft(TARGET_DATA1,ANGLE_SAMPLE));
    [MAX_VALUE1,ANGLE_INDEX1] = max(TARGET_ANGLES);
    Vertical_Angle(target_index) = asind(ANGLE_AXIS(ANGLE_INDEX1)/pi);
    end

    figure(3);
    for target_index = 1:length(TARGET_INDEX)
    AXIS_X = RANGE_AXIS(TARGET_INDEX(target_index)) * cosd((Vertical_Angle(target_index))) * ...
    sind((Azimuth_Angle(target_index)));
    AXIS_Y = RANGE_AXIS(TARGET_INDEX(target_index)) * cosd((Vertical_Angle(target_index))) * ...
    cosd((Azimuth_Angle(target_index)));
    % AXIS_Z = RANGE_AXIS(TARGET_INDEX(target_index)) * sind((Vertical_Angle(target_index)));
    % scatter3(AXIS_X,AXIS_Y,AXIS_Z,'r');hold on;
    scatter(AXIS_X,AXIS_Y,'r');hold on;
    xlabel('X(m)');ylabel('Y(m)');grid on;
    xlim([-20 20]);
    ylim([0 20]);
    end

  • 在上图中我选择绿色部分的水平天线求解方位角

    选择黄色部分的垂直天线求解俯仰角

    不对。使用任意一对垂直的天线对。

  • 也就是说我选择5 2 7 10 和 12 9 6 3这一4对垂直天线做FFT然后找到他们的最大峰值处索引,然后转换为角度,取平均得到的角度也可以作为我的俯仰角。不过这种采用FFT的测角与实际感觉有较大的的误差?这个过程我能否补偿?又如何补偿?

  • 你好,

    你看看TI mmwave sdk 里mmw demo里面的校准:

    file:///C:/ti/mmwave_sdk_03_05_00_04/packages/ti/demo/xwr68xx/mmw/docs/doxygen/html/index.html#Calibration_section