Improving clock-data recovery using digital signal processing