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.

IWR1642BOOST: Calculate Maximum distance from ADC rate and frequency slope

Part Number: IWR1642BOOST

Hi,

I am trying to calculate the maximum distance given an ADC sampling rate of 2500ksps and frequency slope of 60 MHz/us. The Dmax is given by (ADC sampling rate * C)/Slope from the Introduction 1.1 video. I get a dmax of 12.49 meters from the above parameters but according to the chirp database's case 1 the max range is 5.6 meters. I got the slope and ADC sampling rate from the corresponding cfg file (2500ksps and 60MHz/us). How did they get get 5.6? Or am I doing something wrong? Lastly, can someone also explain/derive their max velocity as well.

  • I figured out the range_max and range_res, the following is a python script to calculate them.

    C = 299792458 #speed of loght
    MHz_us_Hz_s = 1e+12 #convert MHz/us to Hz/s
    GHz_Hz = 1e+9 #convert MHz/s to Hz/s
    GHz_MHz = 1e+6 #convert MHz/s to Hz/s
    us_s = 1e-6 #convert us to seconds
    
    #ADC_sampling - ksps
    #Slope - MHz/us
    #range - meters
    def get_max_range(ADC_sampling, Slope):
        return (0.9*ADC_sampling*1000*C)/(2*Slope*MHz_us_Hz_s)
    
    #ADC_sampling - ksps
    #Range_max - meters
    #Slope - MHz/us
    def get_slope(ADC_sampling, Range_max):
        return (0.9*ADC_sampling*1000*C)/(2*Range_max*MHz_us_Hz_s)
    
    #Bandwidth - MHz
    #Range_res - meters
    def get_range_res(Bandwidth):
        return c/(2*Bandwidth*GHz_MHz)
    
    print("Max Range    = {:.4f} Meters".format(get_max_range(2500, 60)))
    print("Slope        = {:.4f} MHz/us".format(get_slope(2500, 5.62)))
    print("Range Res    = {:.4f} Meters".format(get_range_res(3061.22)))

    But, I am still stuck with the velocity resolution and max velocity calculation. 

  • The max velocity is given by (lambda)/(4*Tc)
    Assuming initial frequency of 71GHz its wavelength is 0.00389 meters
    and the cfg file says the idle time is 30us and ramp end time is 62us.
    So, velocity max should be ((0.00389 meters)/((92us*1e-6)seconds * 4 ))*3.6 km/hr
    The above gave me 38.0877 km/hr. But the database shows a maximum valocity of 19.057 km/hr.
    I am not what I am missing.
  • Former Member
    0 Former Member in reply to Kalvik Jakkala

    Hello Kalvik,

    You are missing that in the MIMO configuration you need to consider the number of transmit antennas:

     

        P.dataPath.numChirpsPerFrame = (P.frameCfg.chirpEndIdx -...
                                                P.frameCfg.chirpStartIdx + 1) *...
                                                P.frameCfg.numLoops;
        P.dataPath.numDopplerBins = P.dataPath.numChirpsPerFrame / P.dataPath.numTxAnt;
        P.dataPath.numRangeBins = pow2roundup(P.profileCfg.numAdcSamples);
        P.dataPath.rangeResolutionMeters = 3e8 * P.profileCfg.digOutSampleRate * 1e3 /...
                         (2 * P.profileCfg.freqSlopeConst * 1e12 * P.profileCfg.numAdcSamples);
        P.dataPath.rangeIdxToMeters = 3e8 * P.profileCfg.digOutSampleRate * 1e3 /...
                         (2 * P.profileCfg.freqSlopeConst * 1e12 * P.dataPath.numRangeBins);
        P.dataPath.dopplerResolutionMps = 3e8 / (2*P.profileCfg.startFreq*1e9 *...
                                            (P.profileCfg.idleTime + P.profileCfg.rampEndTime) *...
                                            1e-6 * P.dataPath.numDopplerBins * P.dataPath.numTxAnt);
        P.dataPath.maxRange = 300 * 0.9 * P.profileCfg.digOutSampleRate /(2 * P.profileCfg.freqSlopeConst * 1e3);
        P.dataPath.maxVelocity = 3e8 / (4*P.profileCfg.startFreq*1e9 *(P.profileCfg.idleTime + P.profileCfg.rampEndTime) * 1e-6 * P.dataPath.numTxAnt);
     

    Amanda

  • Amanda,

    Are you sure that is right? The range resolution should depend only on the bandwidth. I am not able to get the right resolution or max values using your solution. Could you please provide example parameters you used to test it?

  • Former Member
    0 Former Member in reply to Kalvik Jakkala
    Kalvik,

    Yes, from the physics range resolution is dependent on bandwidth. The effective range resolution however is the resolution per FFT bin.

    Amanda
  • Amanda,
    But according to the values in the chirp database. My calculation of max range and range resolution is right. So, are the resolutions and max values in the chirp database wrong? Also, with the solution you suggested, the resolutions and max values I am getting are way off compared to the database values and the sensingEstimator values. Do you mind sharing a complete working script or perhaps show the output of your method with the values you used to compute them.