Clock And Data Recovery Loops: A Frequency Domain Approach