Post Go back to editing

Mapping DFE DPD Calibration Results to dBFS

Thread Summary

The user is mapping DFE_APP_CAL_DPD_STABILITY_MEAN_ORX_POWER results to dBFS for the ORX ADC. The correct conversion formula is: Orx power in dBFS = 20*log10(sqrt(dpdStatus.stability[4]) / 32768). The user also noted that the mean_orx_power is in linear units, not mdB, and suggested an alternative formula: pow(dBFS) = 10*log10(orx_mean_power / (2^16 * capture_length)), which may be more accurate for their setup.
AI Generated Content
Category: Software
Product Number: ADRV9040
Software Version: 2.12.0.13

I'm trying to work out how to map the results of DFE_APP_CAL_DPD_STABILITY_MEAN_ORX_POWER to dBFS at the ORX ADC. When I run my setup I get a float that seems to be in mdB and it increases by ~10000 as I increase input power by 10dB, however the number is roughly +80 or 90dB and I'm not sure how that maps to the input full scale signal. My estimate, based on ORX captures I too, is that the +90dB maps roughly to -30dBFS but I'd prefer it if my mapping were derived from documented behavior of the chip. It's especially helpful to know these because the DPD behavior of the chip changed depending on the ORX power relative to full scale.

The other fields like TX Power would also benefit from knowing the averages in a documented way.

The specific API I am referring to is the adi_adrv904x_DfeDpdCalSpecificStatusGet API which returns these stability measurements (as well as some others)

  • I wrote this before coming back and looking at it again. I now see mean_orx_power changing by 10x showing it is indeed linear units rather than mdB. That being said, my measured number (~750000) is much larger than the max for the 16 bit ORX ADC so presumably it's the mean of some internal accumulator used for averaging. Given that I used a capture length of 16384 and I believe my input signal to be -30dBFS the following formula makes sense: pow(dBFS) = 10*log10(orx_mean_power / (2^16 * capture_length)). (perhaps this should be 2^15 ideally you would be able to tell me).

    Presumably the same logic applies to the tx power as well?

  • Correct equation to convert the Mean Orx power to dBFS is Orx power in dBFS= 20*log10(sqrt(dpdStatus.stability[4]) / 32768) where dpdStatus = adi_adrvgen6_DfeAppCalDpdStatus_t().Same applicable for Tx power as well.

Before You Switch


Switching languages will make ADI Explorer unavailable. Resume your session by switching back to English and reopening ADI Explorer.