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]
Exemple #2
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({