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.

[参考译文] AWR2944:HWA FFT

Guru**** 2553450 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/1441550/awr2944-hwa-fft

器件型号:AWR2944

工具与软件:

您好:
使用2944LC HWA 加速器计算64点 FFT、结果与 MATLAB 不同。 结果如下所示。 结果是对称的。 FFT 参数集配置如下。 设置是否有任何问题?
谢谢你!!

{{
paramsetIdx++;
hwParamsetIdx++;

hwaParamCfg[paramsetIdx].triggerMode = HWA_TRIG_MODE_IMmediate;
hwaParamCfg[paramsetIdx].accelMode = HWA_ACCELMODE_FFT;

/* PREPROC 配置*/
hwaParamCfg[paramsetIdx].accelModeArgs.fftMode.preProcCfg.dcEstResetMode = HWA_DCEST_INTERFSUM_RESET_MODE_NOUPDATE;
hwaParamCfg[paramsetIdx].accelModeArgs.fftMode.preProcCfg.dcSubEnable = HWA_FEATURE_BIT_DISABLE;
hwaParamCfg[paramsetIdx].accelModeArgs.fftMode.preProcCfg.complexMultiply.cmultMode = HWA 复数乘法_mode_disable;

/* ACCELMODE 配置(FFT)*/
hwaParamCfg[paramsetIdx].accelModeArgs.fftMode.fftEn = HWA_FEATURE_BIT_ENABLE;
if (obj->numDopplerBins % 3 == 0){
hwaParamCfg[paramsetIdx].accelModeArgs.fftMode.fftSize = mathUtils_ceLog2 (obj->numDopplerBins/3);
hwaParamCfg[paramsetIdx].accelModeArgs.fftMode.fftSize3xEn = HWA_FEATURE_BIT_ENABLE;
}
否则{
hwaParamCfg[paramsetIdx].accelModeArgs.fftMode.fftSize = mathUtils_ceLog2 (obj->numDopplerBins);
hwaParamCfg[paramsetIdx].accelModeArgs.fftMode.fftSize3xEn = HWA_FEATURE_BIT_DISABLE;
}
hwaParamCfg[paramsetIdx].accelModeArgs.fftMode.butterflyScaling = 0;
hwaParamCfg[paramsetIdx].accelModeArgs.fftMode.windowEn = HWA_FEATURE_BIT_ENABLE;
hwaParamCfg[paramsetIdx].accelModeArgs.fftMode.windowStart = cfg->hwRes.hwaCfg.winRamOffset;
hwaParamCfg[paramsetIdx].accelModeArgs.fftMode.winSymm = cfg->hwRes.hwaCfg.winSym;

hwaParamCfg[paramsetIdx].accelModeArgs.fftMode.postProcCfg.magLogEn = HWA_FFT_MODE_MAGNITUDE_LOG2_DISABLED;
hwaParamCfg[paramsetIdx].accelModeArgs.fftMode.postProcCfg.fftOutMode = HWA_FFT_MODE_OUTPUT_DEFAULT;
hwaParamCfg[paramsetIdx].accelModeArgs.fftMode.preProcCfg.complexMultiply.cmultMode = HWA 复数乘法_mode_disable;

/*源配置*/
hwaParamCfg[paramsetIdx].source.srcAddr = DPU_DOPPLERHWADDMA_ADDR_DOPPLERFFT_PING_IN;

hwaParamCfg[paramsetIdx].source.srcAcnt = cfg->staticCfg.numChirps - 1;/*这是样本- 1 */
hwaParamCfg[paramsetIdx].source.srcAIdx = cfg->staticCfg.numRxtames * obj->dopplerDemodCfg.dopplerIOCfg.input.bytesPerSample;
hwaParamCfg[paramsetIdx].source.srcBcnt = cfg->staticCfg.numRxtames - 1;
hwaParamCfg[paramsetIdx].source.srcBIdx = obj->dopplerDemodCfg.dopplerIOCfg.input.bytesPerSample;

hwaParamCfg[paramsetIdx].source.srcRealComplex = obj->dopplerDemodCfg.dopplerIOCfg.input.isReal;

if (obj->dopplerDemodCfg.dopplerIOCfg.input.bytesPerSample == 2 ||
(obj->dopplerDemodCfg.dopplerIOCfg.input.bytesPerSample == 4 &&
(!obj->dopplerDemodCfg.dopplerIOCfg.input.isReal))){
hwaParamCfg[paramsetIdx].source.srcWidth = HWA_SAMPLE_WIDTH_16BIT;
}
否则{
hwaParamCfg[paramsetIdx].source.srcWidth = HWA_SAMPLE_WIDTH_32位;
}
hwaParamCfg[paramsetIdx].source.srcSign = obj->dopplerDemodCfg.dopplerIOCfg.input.isSigned;
hwaParamCfg[paramsetIdx].source.srcConjugate = 0;
hwaParamCfg[paramsetIdx].source.srcScale = 8;

/*目标配置*/
hwaParamCfg[paramsetIdx].dstAddr = DPU_DOPPLERHWADDMA_ADDR_DOPPLERFFT_PING_OUT;

hwaParamCfg[paramsetIdx].dstAcnt = obj->numDopplerBins - 1;
hwaParamCfg[paramsetIdx].destAIdx = cfg->staticCfg.numRxtames * obj->dopplerDemodCfg.dopplerIOCfg.output.bytesPerSample;
hwaParamCfg[paramsetIdx].dest.dstBITx = obj->dopplerDemodCfg.dopplerIOCfg.output.bytesPerSample;

hwaParamCfg[paramsetIdx].dstRealComplex = obj->dopplerDemodCfg.dopplerIOCfg.output.isreal;
if (obj->dopplerDemodCfg.dopplerIOCfg.output.bytesPerSample == 2 ||
(obj->dopplerDemodCfg.dopplerIOCfg.output.bytesPerSample == 4 &&
(!obj->dopplerDemodCfg.dopplerIOCfg.output.isreal))){
hwaParamCfg[paramsetIdx].dstWidth = HWA_SAMPLE_WIDTH_16BIT;
}
否则{
hwaParamCfg[paramsetIdx].dstWidth = HWA_SAMPLE_WIDTH_32位;
}
hwaParamCfg[paramsetIdx].dstSign = obj->dopplerDemodCfg.dopplerIOCfg.output.isSigned;
hwaParamCfg[paramsetIdx].dest.dstConjugate = hwa_feature_bit_disable;
hwaParamCfg[paramsetIdx].dest.dstScale = 0;
hwaParamCfg[paramsetIdx].destSkipInit = 0;

errCode = HWA_configParamSet (obj->hwaHandle、
hwParamsetIdx、
&hwaParamCfg[paramsetIdx]、NULL);
if (错误代码!= 0)

转至退出;
}

}

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我将查看图表、并在星期二之前回复您。

    此致、

    Samhitha

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Yu Zhu、

    这是 SDK 中使用的多普勒 FFT ParamSet、没有变化。 所以、您应该能看到正确的结果。 您能否检查 MATLAB 脚本的输入和此 ParamSet 的输入是否相同? 我可以看到输出是彼此的镜像。

    此致、

    Samhitha