Question on how to reduce DC offset in PPG measurement of ADPD410x

My customer is using ADPD4101.
In the following situation, please advise on how to reduce the DC offset in the PPG signal.

- Measured AC level is about -20~+20 (ADC max = 65535)
- DC value is already ~ 44000, which is 2/3 of ADC max.
-> We cannot increase LED, because DC offset is high and ADC saturation.
- TIA gain 100k, ODR 25Hz, Pulse count = 8 (ADC MAX 65535)
- My customer wants to decrease the DC offset without increasing the pulse count.


  • 0
    •  Analog Employees 
    on Oct 22, 2020 1:34 PM


    Are they using integrator chopping? Integrator chopping automatically removes the digital offsets due to ADC. Please enable integrator chopping, because it will also help for noise.

    If integrator chopping is not used, please use register 0x10E(0x12E,0x14E,...) and 0x10F(0x12F,0x14F,...) to subtract from ADC value. This can (artificially) remove the DC offset. Also make sure that ZERO_ADJUST_x is set to zero because it adds artificial 2048 codes for test purposes. 

    However, if the DC offset is due to some system level issue, that should be fixed within the schematic or layout. Please make sure that there is no unwanted current flowing into the input(s). You should make sure that only photocurrent is flowing in.

    TIA gain could be reduced. Decreasing TIA gain will help to increase the effective ADC range, because you would amplify the signal less. I don't know the exact application but for red and IR PPG, typically low TIA gains are used (12.5k to 50k are typical for red and IR).

    Also, excessive ambient light could increase the codes (although most of ambient light is rejected, it is not 100% rejected). If eval board is used, please cover that up with a black box or black cover. If they have their own system, they should make sure ambient light is not excessive on the photodiode.

    Lastly, setting TIA_Vref to 1.265 V will increase the dynamic range (of TIA, not ADC).

    As a side note, photodiode should be reverse biased for optimal noise performance. 

  • Thanks for your reply

    My customer says your advice is to deliver the attachment as a result of measuring with software (register settings) already applied.

    The influence of ambient light seems to be less. Because the product is a band product worn on the wrist.

    The method of reducing TIA gain in the presence of DC offset seems to be difficult to apply because it is disadvantageous for PPG measurement because it reduces the AC.

    My customer is asking if there is a way to reduce DC offset at AFE (Analog Front End).

    Please advise on how to reduce the DC offset at the AFE.

    I look forward to your advice.

    Thank you.

  • 0
    •  Analog Employees 
    on Oct 23, 2020 8:58 AM in reply to swjung

    The ADPD4100 uses a patented architecture that does need of any external cancellation techniques, such as DC current subtraction or optical filters. The ADPD4100 uses 2 us LED pulses rather than the traditional method of using very long pulses of up to 100’s of microseconds.  

    This provides superior automatic rejection of DC and high frequency ambient light sources. This ensures that only light intensity that changes at the specific frequency of the pulsed LED is seen by the sensor. 

    The DC part of the signal is a part of reflected pulsed LED signal, because the perceived reflected PPG signal is a total response of pulsatile veins, nonpulsatile veins and tissue. The TIA linear range and ADC range are very close to each other, so even if you do not saturate ADC, you will saturate TIA because there is no way of reducing DC before TIA due to the architecture. You can get rid of DC part by artificially using registers 10E,10F(12E,12F,14E,14F,..) to subtract codes. Obviously you will still have a TIA saturation limit. The architecture does not allow a DC current subtraction before TIA stage because of the use of short pulses.

    And actually, it is not an offset, it is a part of the reflected signal due to the response of the body to the pulsed LED signal. Therefore, DC part of the signal actually contains info regarding the body, which is useful for some applications such as SpO2 measurement and blood pressure estimation. The DC part and AC part are correlated to each other by a term called modulation(or perfusion) index.

    Basically AC signal = DC signal * modulation index

    Modulation index is a function of body/tissues itself changing with wavelength/location of measurement. It has nothing to do with the AFE. 

    What is the application? i.e. Heart rate monitoring/variability, SpO2, blood pressure estimation, etc? What is the wavelength being used? i.e. green, red, IR, blue, UV? If possible, could you please send the register settings? 

    • Application: Heart rate monitoring, using green LED
    • For some persons, modulation index is quite low therefore ADC is saturated due to DC signal (not noise) before I can get enough AC SNR. Then I cannot increase with the same TIA gain.
    • Increasing pulse count, decreasing TIA gain, increasing LED at the same time gives me improved quality but power consumption becomes too high to apply for 24H heart rate monitoring.
    • Therefore I asked if I can use increased LED for AC SNR, by forcing to apply negative offset without decreasing TIA gain (even if it might get rid of actual DC signal).
    • But since ADI answered that TIA range is very close to ADC range, it seems that as ADI said I cannot apply negative offset to increase ADC range. So I think I should find some other methods.
    • I attached our current register setting for HRM (25Hz ODR, 8 pulse count, 100k TIA gain, 1.265Vref, integration chopping. LED adjust is applied to have DC level with ~80% saturation level). XLSX
  • +1
    •  Analog Employees 
    on Oct 26, 2020 6:00 PM in reply to swjung

    Yes, typically LED dominates the total power consumption, and the LED power scales linearly with pulse number. But LED power also scales linearly with LED driver current. So, instead of increasing LED current to increase the signal level, they can increase the pulse number to lower noise. Obviously increasing pulse count will increase AFE power as well, but the customer could find an optimal point. AFE power is typically lower, because AFE uses 1.8 V supply voltage, whereas LED supply voltage are typically higher than 3 V. So AFE power is typically much lower than LED power and it would not increase as much. 

    Lowering TIA gain could be helpful as well, because it will lower the output noise. So for example, instead of using 16 mA of LED current at 100 k gain, they will be better off if they use 32 mA of LED current at 50 k gain. By that, they won't need to increase pulse count. 

    • Therefore I asked if I can use increased LED for AC SNR, by forcing to apply negative offset without decreasing TIA gain (even if it might get rid of actual DC signal).
    • But since ADI answered that TIA range is very close to ADC range, it seems that as ADI said I cannot apply negative offset to increase ADC range. So I think I should find some other methods.

    Yes, TIA linear range is very close to ADC. Also, that ADC adjustment is just for output purposes, it can't increase the actual ADC range. We don't have an actual offset subtraction mechanism here in ADPD4100 because of architectural limitations due to short pulses. 

    One thing to try could be Digital Integration Mode, if they don't have ambient light(you said no ambient light, so they could try). Digital Integration Mode is more SNR/Watt efficient if used properly. And it will give a better fine-tuning of the LED pulse width and LED driver current.

    Lastly, unrelated but their config has some issues. I think they used some ADPD4000 settings and what they quote for TIA gain doesn't match with the config. 

    0x0009 0x0094 should be 0x0080
    0x000b 0x02f4 should be 0x02B2
    0x0104 0xe3c9 should be 0x03C1 for CH1 TIA gain 100k, default gain of 200k for CH2 TIA gain, default integrator resistors of 400k for both channels, if they need to turn on TIA ceiling detection use bit 15