A programmable carrier phase independent symbol timing recovery circuit for QPSK/OQPSK signals