reserve_neighbor=True) # --- Peak Grouping detObj2D = dsp.peak_grouping_along_doppler(detObj2DRaw, det_matrix, numDopplerBins) SNRThresholds2 = np.array([[2, 23], [10, 11.5], [35, 16.0]]) peakValThresholds2 = np.array([[4, 275], [1, 400], [500, 0]]) detObj2D = dsp.range_based_pruning(detObj2D, SNRThresholds2, peakValThresholds2, numRangeBins, 0.5, range_resolution) azimuthInput = aoa_input[detObj2D['rangeIdx'], :, detObj2D['dopplerIdx']] x, y, z = dsp.naive_xyz(azimuthInput.T, num_tx=numTxAntennas, num_rx=numRxAntennas, fft_size=numADCSamples) xyzVecN = np.zeros((3, x.shape[0])) xyzVecN[0] = x * range_resolution * detObj2D['rangeIdx'] xyzVecN[1] = y * range_resolution * detObj2D['rangeIdx'] xyzVecN[2] = z * range_resolution * detObj2D['rangeIdx'] Psi, Theta, Ranges, xyzVec = dsp.beamforming_naive_mixed_xyz( azimuthInput, detObj2D['rangeIdx'], range_resolution, method='Bartlett') # Capon # (5) 3D-Clustering # detObj2D must be fully populated and completely accurate right here numDetObjs = detObj2D.shape[0]
numDopplerBins, reserve_neighbor=True) # --- Peak Grouping detObj2D = dsp.peak_grouping_along_doppler(detObj2DRaw, det_matrix, numDopplerBins) SNRThresholds2 = np.array([[2, 23], [10, 11.5], [35, 16.0]]) peakValThresholds2 = np.array([[4, 275], [1, 400], [500, 0]]) detObj2D = dsp.range_based_pruning(detObj2D, SNRThresholds2, peakValThresholds2, numRangeBins, 0.5, range_resolution) azimuthInput = aoa_input[detObj2D['rangeIdx'], :, detObj2D['dopplerIdx']] x, y, z = dsp.naive_xyz(azimuthInput.T) xyzVecN = np.zeros((3, x.shape[0])) xyzVecN[0] = x * range_resolution * detObj2D['rangeIdx'] xyzVecN[1] = y * range_resolution * detObj2D['rangeIdx'] xyzVecN[2] = z * range_resolution * detObj2D['rangeIdx'] Psi, Theta, Ranges, xyzVec = dsp.beamforming_naive_mixed_xyz( azimuthInput, detObj2D['rangeIdx'], range_resolution, method='Bartlett') # (5) 3D-Clustering # detObj2D must be fully populated and completely accurate right here numDetObjs = detObj2D.shape[0] dtf = np.dtype({