Design techniques to improve noise and linearity of data converters