A state of the art on {ADC} error compensation methods