-
Notifications
You must be signed in to change notification settings - Fork 223
Description
Hi, first of all thank you for this open source package, it's very helpful! I just have one question when I try to write a function to generate point cloud from IWR1443BOOST raw ADC data, only 2 of the transmitting antennas on the azimuth (horizontal) axis are used and receiving antennas are 4. I think the demo/visualizer/main.py
gives a good enough example to generate point cloud, but I can't understand the following steps inside beamforming_naive_mixed_xyz()
which is invoked after aoa_bartlett()
and peak_search_full_variance()
:
higher_rung = inputSignal[8:12]
lower_rung = inputSignal[2:6]
for j in range(num_out):
ele_out = aoa_estimation_bf_one_point(4, higher_rung, steering_vec[max_theta[j]])
azi_out = aoa_estimation_bf_one_point(4, lower_rung, steering_vec[max_theta[j]])
num = azi_out * np.conj(ele_out)
wz = np.arctan2(num.imag, num.real) / np.pi
temp_angle = -est_range + max_theta[j] * est_resolution # Converts to degrees, centered at boresight (0 degrees)
# Make sure the temp angle generated is within bounds
if np.abs(temp_angle) <= est_range and estimated_variance[j] < doa_var_thr:
e_angle = np.arcsin(wz)
a_angle = -1 * (np.pi / 180) * temp_angle # Degrees to radians
output_e_angles.append((180 / np.pi) * e_angle) # Convert radians to degrees
output_a_angles.append((180 / np.pi) * np.arcsin(np.sin(a_angle) * np.cos(e_angle)))
output_ranges.append(input_ranges[i])
Can someone tell me the process of these steps and what are higher_rung
and lower_rung
used for? In my case to get azimuth angle, shall I ignore those steps and directly take the result from peak_search_full_variance()
after aoa_bartlett()
as azimuth angle estimation? Many thanks in advance!