Other Parts Discussed in Thread: IWR1443BOOST, , IWR1443
Dear Engineer,
A steel water bottle was placed at a distance of about 60cm as the radar observation object, and the raw radar data were captured using IWR1443BOOST+DCA1000EVM+ MMWave Studio2.1.1.0.
After FFT is done for the raw data of each chirp, the range between water bottle and radar can be obtained in the frequency domain. The figure below is the result of FFT on the data of a chirp. Due to the range resolution, there are three points in the attachment at 65cm (63cm, 68cm, 73cm) :
Then I observed the phases of these three points, and found that their phases were unstable (theoretically speaking, the phase of a stationary target is stable and constant). The following three figures are the phase values of these three points from the first frame to the 10,000th frame respectively (the phases of these three points in each chirp are obtained by using atan2 function):
The next two files are chirp configuration and Frame configuration.
{
"createdByVersion": "2.1.0",
"createdOn": "2021-12-02T21:39:23.7773582+08:00",
"configUsed": "E:\\adc_data\\test\\1443.mmwave.json",
"captureHardware": "DCA1000",
"DCA1000Config": {
"dataLoggingMode": "raw",
"dataTransferMode": "LVDSCapture",
"dataCaptureMode": "ethernetStream",
"packetSequenceEnable": 1,
"packetDelay_us": 25
},
"mmWaveDevice": "iwr1443",
"operatingFreq": 77,
"mmWaveDeviceConfig": {
"RS232COMPort": "COM15",
"RS232BaudRate": "115200",
"radarSSFirmware": "C:\\ti\\mmwave_studio_02_01_01_00\\rf_eval_firmware\\radarss\\xwr12xx_xwr14xx_radarss.bin",
"masterSSFirmware": "C:\\ti\\mmwave_studio_02_01_01_00\\rf_eval_firmware\\masterss\\xwr12xx_xwr14xx_masterss.bin"
},
"capturedFiles": {
"numFilesCollected": 1,
"fileBasePath": "E:\\adc_data\\test",
"files": [
{
"rawFileName": "adc_data_Raw_0.bin",
"processedFileName": "adc_data.bin",
"processedFileSummary": {
"numZeroFillBytes": 0
}
}
]
}
}
{
"configGenerator": {
"createdBy": "mmWaveStudio",
"createdOn": "2021-12-02T19:55:06.8110913+08:00",
"isConfigIntermediate": 1
},
"currentVersion": {
"jsonCfgVersion": {
"major": 0,
"minor": 4,
"patch": 0
},
"DFPVersion": {
"major": 1,
"minor": 2,
"patch": 0
},
"SDKVersion": {
"major": 3,
"minor": 0,
"patch": 0
},
"mmwavelinkVersion": {
"major": 1,
"minor": 2,
"patch": 0
}
},
"lastBackwardCompatibleVersion": {
"DFPVersion": {
"major": 1,
"minor": 1,
"patch": 0
},
"SDKVersion": {
"major": 2,
"minor": 0,
"patch": 0
},
"mmwavelinkVersion": {
"major": 1,
"minor": 1,
"patch": 0
}
},
"regulatoryRestrictions": {
"frequencyRangeBegin_GHz": 77,
"frequencyRangeEnd_GHz": 81,
"maxBandwidthAllowed_MHz": 4000,
"maxTransmitPowerAllowed_dBm": 12
},
"systemConfig": {
"summary": "This is a comments field not passed to device",
"sceneParameters": {
"ambientTemperature_degC": 20,
"maxDetectableRange_m": 10,
"rangeResolution_cm": 5,
"maxVelocity_kmph": 26,
"velocityResolution_kmph": 2,
"measurementRate": 10,
"typicalDetectedObjectRCS": 1
}
},
"mmWaveDevices": [
{
"mmWaveDeviceId": 0,
"rfConfig": {
"waveformType": "legacyFrameChirp",
"MIMOScheme": "TDM",
"rlCalibrationDataFile": "",
"rlChanCfg_t": {
"rxChannelEn": "0xF",
"txChannelEn": "0x1",
"cascading": 0,
"cascadingPinoutCfg": "0x0"
},
"rlAdcOutCfg_t": {
"fmt": {
"b2AdcBits": 2,
"b8FullScaleReducFctr": 0,
"b2AdcOutFmt": 2
}
},
"rlLowPowerModeCfg_t": {
"lpAdcMode": 0
},
"rlProfiles": [
{
"rlProfileCfg_t": {
"profileId": 0,
"pfVcoSelect": "0x0",
"pfCalLutUpdate": "0x0",
"startFreqConst_GHz": 77.0,
"idleTimeConst_usec": 7.0,
"adcStartTimeConst_usec": 5.0,
"rampEndTime_usec": 57.0,
"txOutPowerBackoffCode": "0x0",
"txPhaseShifter": "0x0",
"freqSlopeConst_MHz_usec": 59.9630012512207,
"txStartTime_usec": 0.0,
"numAdcSamples": 512,
"digOutSampleRate": 10000,
"hpfCornerFreq1": 0,
"hpfCornerFreq2": 0,
"rxGain_dB": "0x1E"
}
}
],
"rlChirps": [
{
"rlChirpCfg_t": {
"chirpStartIdx": 0,
"chirpEndIdx": 0,
"profileId": 0,
"startFreqVar_MHz": 0.0,
"freqSlopeVar_KHz_usec": 0.0,
"idleTimeVar_usec": 0.0,
"adcStartTimeVar_usec": 0.0,
"txEnable": "0x1"
}
}
],
"rlFrameCfg_t": {
"chirpEndIdx": 0,
"chirpStartIdx": 0,
"numLoops": 1,
"numFrames": 10000,
"framePeriodicity_msec": 1.0,
"triggerSelect": 1,
"numDummyChirpsAtEnd": 0,
"frameTriggerDelay": 0.0
},
"rlBpmChirps": [],
"rlRfPhaseShiftCfgs": [],
"rlRfProgFiltConfs": [],
"rlLoopbackBursts": [],
"rlDynChirpCfgs": [],
"rlDynPerChirpPhShftCfgs": []
},
"rawDataCaptureConfig": {
"rlDevDataFmtCfg_t": {
"iqSwapSel": 0,
"chInterleave": 0
},
"rlDevDataPathCfg_t": {
"intfSel": 1,
"transferFmtPkt0": "0x1",
"transferFmtPkt1": "0x0",
"cqConfig": 2,
"cq0TransSize": 132,
"cq1TransSize": 132,
"cq2TransSize": 72
},
"rlDevLaneEnable_t": {
"laneEn": "0xF"
},
"rlDevDataPathClkCfg_t": {
"laneClkCfg": 1,
"dataRate_Mbps": 600
},
"rlDevLvdsLaneCfg_t": {
"laneFmtMap": 0,
"laneParamCfg": "0x1"
}
},
"monitoringConfig": {
}
}
],
"processingChainConfig": {
"detectionChain": {
"name": "TI_GenericChain",
"detectionLoss": 1,
"systemLoss": 1,
"implementationMargin": 2,
"detectionSNR": 12,
"theoreticalRxAntennaGain": 9,
"theoreticalTxAntennaGain": 9
}
}
}
My question is: why are the phase values so confused and unstable? How do I get the correct phase value?
Best Regards,
kelong