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.

AWR6843AOP: Questions about Beamforming and .cfg File Configuration for AWR6843AOP

Part Number: AWR6843AOP

Tool/software:

Dear Sir,

The MMWAVE SDK User Guide states that I can perform a phase shift on three TX antennas by changing the <txPhaseShifter> parameter in the configuration file.

Furthermore, the document "Beamforming_in_LRPD.pdf" provides a MATLAB script as an example for calculating the  <txPhaseShifter> parameter necessary for beamforming, using a one-dimensional antenna array indexed as m_ind = [0 1 2].

If I want to implement beamforming on the AWR6843AOP as well, I am wondering if there is a similar MATLAB script available to calculate the control numbers for the AWR6843AOP antenna array.

Sincerely,

HC.Chang

  • Hi,

    Could you provide links and/or install paths to the documents you are referring to?

    Thanks,

    Clinton

  • Dear sir:

    The  MMWAVE SDK User Guide's path is: C:/ti/mmwave_studio_02_01_01_00/docs/mmwave_studio_cascade_user_guide.pdf

    And the link of Beamforming in LRPD is: https://dev.ti.com/tirex/explore/node?a=1AslXXD__1.20.00.11&node=A__AE-Bpc-wQfi-OR.2V9TzCw__radar_toolbox__1AslXXD__1.20.00.11&r=1AslXXD__1.00.00.26&r=1AslXXD__1.00.01.07

    Sincerely,

    HC.Chang

  • Hello,

    For the AOP device, we provide the layout of our antenna patterns also in the radar toolbox:

    https://dev.ti.com/tirex/explore/node?node=A__AEHBDXaS3MIoORQMpX07MQ__radar_toolbox__1AslXXD__LATEST 

    You'll have to modify matlab script to work with such antenna pattern.

    Regards,

    Tim

  • Dear Tim,

    Here is the MATLAB script we adjusted for calculating the phase shift based on the AWR6843AOPEVM antenna. Could you help us verify if the calculated phase shift control parameters are correct?

    clear;
    clc;
    f = 60e9;
    c = 3e8;
    lambda = c / f;
    k = 2 * pi / lambda;
    dx = lambda;
    dy = lambda;
    phi_deg = input('Phi(degree):');
    theta_deg = input('Theta(degree):');
    phi = deg2rad(phi_deg);
    theta = deg2rad(theta_deg);
    I = [1 1; 1 0];
    phase_shifts = zeros(2, 2);
    for m = 0:1
    for n = 0:1
    x = m * dx;
    y = n * dy;
    phase_shifts(m+1, n+1) = k * (x * sin(theta) * cos(phi) + y * sin(theta) * sin(phi));
    end
    end
    phase_shifts_deg = rad2deg(phase_shifts);
    phase_shifts_deg_wrap = mod(phase_shifts_deg, 360);
    phaseInc = 5.625;
    phase_control = round(phase_shifts_deg_wrap / phaseInc);
    combined_control = phase_control(1,1) * 2^0 + phase_control(1,2) * 2^8 + ...
    phase_control(2,1) * 2^16;
    packed_control = combined_control * 4;
    disp('Phase control number:');
    disp(num2str(packed_control, '%d'));
    fprintf('Phase shifts (degrees):\n');
    fprintf('tx1 (0, lambda): %f\n', phase_shifts_deg_wrap(1,2));
    fprintf('tx2 (lambda, 0): %f\n', phase_shifts_deg_wrap(2,1));
    fprintf('tx3 (0, 0): %f\n', phase_shifts_deg_wrap(1,1));
    fprintf('tx4 (lambda, lambda) [DISABLED]: %f\n', phase_shifts_deg_wrap(2,2));
    phi_vals = linspace(0, 2*pi, 360);
    theta_vals = linspace(0, pi, 180);
    [Phi, Theta] = meshgrid(phi_vals, theta_vals);
    AF = zeros(size(Phi));
    for i = 1:size(Phi, 1)
    for j = 1:size(Phi, 2)
    af_sum = 0;
    for m = 0:1
    for n = 0:1
    if I(m+1, n+1) == 1
    adjusted_phase = k * (m * dx * sin(Theta(i,j)) * cos(Phi(i,j)) + n * dy * sin(Theta(i,j)) * sin(Phi(i,j))) - phase_shifts(m+1, n+1);
    af_sum = af_sum + I(m+1, n+1) * exp(1j * adjusted_phase);
    end
    end
    end
    AF(i, j) = abs(af_sum);
    end
    end
    AF = AF / max(AF(:));
    AF_dB = 20 * log10(AF);
    AF_dB(AF_dB < -40) = -40;
    figure;
    [X, Y, Z] = sph2cart(Phi, pi/2 - Theta, AF);
    surf(X, Y, Z, AF_dB);
    title(sprintf('Radiation Pattern at Phi = %d°, Theta = %d°', phi_deg, theta_deg));
    xlabel('X');
    ylabel('Y');
    zlabel('Z');
    shading interp;
    colorbar;
    colormap jet;
    view(140, 30);
    hold on;
    plot3([0 max(X(:))], [0 0], [0 0], 'k--', 'LineWidth', 1);
    plot3([0 0], [0 max(Y(:))], [0 0], 'k--', 'LineWidth', 1);
    plot3([0 0], [0 0], [0 max(Z(:))], 'k--', 'LineWidth', 1);
    text(max(X(:)), 0, 0, ' \phi=0', 'HorizontalAlignment', 'right');
    text(0, 0, max(Z(:)), ' \theta=0', 'HorizontalAlignment', 'right');

    Best regards,
    Hsiu-Che Chang
  • Hello,

    Just a heads up, most of our engineers will be out until July 8th due to a United States holiday. If you have any updates or questions, please hold off on replying until next week when we can respond to you then. We will also try to get back to you next week as well.

    Thank you for your patience,

    Kristien

  • Hi,

    I wanted to check to see if you were able to move forward on your project.

    Thanks,

    Clinton

  • Dear Clinton,

    As mentioned previously, we still need to verify whether the phase shifter parameters calculated by our proposed MATLAB script can correctly control the AWR6843AOP for phase shifting.
    My MATLAB script is as follows:

    Best Regards,

    Hsiu-Che Chang
  • Hi,

    Have you tried using the results of your calculations and observed the behavior of the device?  Is it not working as you expect?

    Thanks,

    Clinton

  • Hi Clinton,

    After enabling the TX phase shift, we initially intended to perform beamsteering on the TX array to improve the point cloud resolution for adults and children. However, the current experimental results show that after changing the phase shift parameters, firstly, the point cloud at the main beam position did not improve, and secondly, the points in the point cloud exhibit a deviation issue.

    Best,

    Hsiu-Che Chang

  • Hi, Hsiu-Che:

    Our understanding is TX beamforming can increase the SNR, but do not really improve the angle resolution.  

    From our TX beamforming notes https://dev.ti.com/tirex/explore/node?node=A__AE-Bpc-wQfi-OR.2V9TzCw__radar_toolbox__1AslXXD__LATEST, we provided an example of phase rotation for one-dimensional antenna.  

    theta_desired = -33.75;

    m_ind = [0 1 2]; % antenna distance in unit of lambda in the azimuth direction

    phaseTX_rad = 2*pi*(m_ind*sind(theta_desired));

    For two-dimensional TX antenna layout, you can consider the following code. 

    theta_desired = -33.75; %desired beam focus-angle in azimuth direction

    thetaE_desired = 20;   % desired beam focus-angle in elevation direction

    m_ind = [0 1 2]; % antenna distance in unit of lambda in the azimuth direction

    n_ind = [ 0 1/2 0]; % antenna distance in unit of lambda in the elevation direction

    phaseTX_rad = 2*pi*(m_ind*sind(theta_desired)*cosd(thetaE_desired) + n_ind*sind(thetaE_desired));

    Note that this is not used in any of our formal release code, because we never try TX beamforming with AWR6843AOP or AWR6843ISK-ODS type of antenna.  You can use this code at your own risk.  

    Other than this, we can not help you with any code review/debug.

    Best,

    Zigang