Ganglion documentation, conversion from ADC sample to uV

edited July 2023 in Ganglion
At this document page,

https://docs.openbci.com/Ganglion/GanglionDataFormat/

it says at the bottom:

Scale Factor (Volts/count) = 1.2 Volts * 8388607.0 * 1.5 * 51.0;

which seems off since this is millions of volts per count, and we want microvolts. I think you meant

data_out = ((delta scalp voltage)/1.2 voltage reference) * 8388608 * G (= 51) * 1.5

which is from table 5.3 on the reference sheet-- I can't find Table 7.

This turns out to come out to 0.00186995 microvolts/ digitaltick which makes more sense AFAIK.

Comments

  • The value is suppsoed to be in microvolts
  • edited January 2018
    Ah, found it elsewhere. In the file


    it says:

      // Digital max and mins
      private String bdf_digital_minimum_ADC_24bit = "-8388608"; // -1 * 2^23
      private String bdf_digital_maximum_ADC_24bit = "8388607"; // 2^23 - 1
      private String bdf_digital_minimum_ADC_12bit = "-2048"; // -1 * 2^11
      private String bdf_digital_maximum_ADC_12bit = "2047"; // 2^11 - 1

      // Physcial max and mins
      private String bdf_physical_minimum_ADC_24bit = "-187500"; // 4.5 / 24 / (2^23) * 1000000 *  (2^23)
      private String bdf_physical_maximum_ADC_24bit = "187500"; // 4.5 / 24 / (2^23) * 1000000 * -1 * (2^23)
      private String bdf_physical_minimum_ADC_Accel = "-4";
      private String bdf_physical_maximum_ADC_Accel = "4";

      private String bdf_physical_minimum_ADC_24bit_ganglion = "-15686";
      private String bdf_physical_maximum_ADC_24bit_ganglion = "15686";

    So microvolts per digital unit is 15686 / 8388607 = 0.001869917138805

  • Hello,

    I have come across this same problem.
    Is the equation below from the MCP3912 data sheet correct?
    image

    The typical equation for conversion from ADC value to Volt is more like:
    Vout = ADC_value * (Vref / 2^(n-1))

    I can not seem to get correct data using the formula specified in the learning section of OpenBCI "Ganglion Interpreting the data"

    Or @BillH is the correct scale factor ADC_value * (15686 / 8388607)? Can you explain where this value came from?
  • Mark,

    15686 is the given physical voltage range from 0 of the values produced by the hardware, and for a 24-bit integer 8388608 is the digital range from 0. The data the computer gets is in the digital, 24-bit range but in general we are interested in the scalp voltages which are in the physical range. The two are directly linearly related via that conversion ratio, so the graphical displays of the two will be relatively equivalent (frequencies will look the same) but for the units on the axis of the graphs.. The actual non-railed EEG signal should be much less that the extremes of such a range.

    The ADC value is calcualated from the other values in the equation you placed above.






Sign In or Register to comment.