80 likes | 227 Views
Carrier Phase Tracking, Timing Synchronization, Equalization. Turing the received baseband waveform into bits. The received baseband waveform is hard to figure out. Problems to solve include: Deal with the carrier frequency difference (the phase drift)
E N D
Carrier Phase Tracking, Timing Synchronization, Equalization
Turing the received baseband waveform into bits • The received baseband waveform is hard to figure out. • Problems to solve include: • Deal with the carrier frequency difference (the phase drift) • Figure out when to take samples to avoid Inter-symbol interference • Deal with multi-path • As we will see, the solutions are just some heuristic algorithms that usually work. The constraint is that they can use only a very limited time to compute. • Divide and conquer. Solve these problems one by one. • http://www.gnuradio.org/trac/browser/gnuradio/trunk/gnuradio-core/src/lib/general/gr_mpsk_receiver_cc.cc?rev=7389
Carrier Phase Tracking • First, let’s try to remove the frequency offset and turn the waveform into a waveform where the real component is none zero and the imaginary component is all zero. • The idea is to use the decision, while assuming that the decisions are correct (may not be correct!) • Use the current sample to figure out the difference. • Current phase error is the phase difference between the current sample with the decision (assuming the decision is correct).
Carrier Phase Tracking • First, get the phase error • phase_error = (*this.*d_phase_error_detector)(sample); • for BPSK, -arg(sample*conj(d_constellation[d_current_const_point])) • Basically, if the sample falls in the x line, there is no phase error Im Re
Carrier Phase Tracking • Then, adjust the phase based on the error value • d_freq += d_beta*phase_error; • d_phase += d_freq + d_alpha*phase_error; • If error is positive, the phase will be increased, if the error is negative, the phase will be decreased • That’s it.
Sample Time • You need to take samples at the right time. • Designed algorithms to figure out the right time to take the samples. • The current implementation uses an optimized Mueller and Muller algorithm. • http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=392689
The Basic Idea • The basic Mueller and Muller algorithm: u=a_{k-1} x_k – a_{k} x_{k-1}. • u is the timing error. • Consider the pulse shape. Recall that if the input is 1, the output is h(t), where h(t) is the impulse response of the low pass filter. (-h(t) if the input is -1). • In this example, if off by a delta, x_{k-1} will be deducted by the impulse response at T+delta, which is negative, while x_{k} will be added by the impulse response at -T+delta, which is positive. k-1 k