For situation that received signal is complex, how Early and late are calculated in spread spectrum tracking? How I can consider both real and imaginary in error calculation?
2 Answers
This is the common case for receiving spread spectrum signals since we do not know carrier frequency and phase offset but can determine that from the complex output of our correlators.
Each correlator (Early, Prompt and Late) would be complex; the complex Prompt correlator output is used for Carrier Recovery (measure rate of rotation or change in phase from one complex symbol to the next), and the magnitudes of the Early and Late correlators are used for Timing Recovery. If you are using spread spectrum that once carrier offset is removed only resides on the real axis (BPSK modulation), then the Early and Late Correlators can be simplified to be real only as long as the carrier offset is removed prior to timing recovery and carrier tracking is implemented in such a way to rotate the signal to the real axis. This is not necessary as complex Early and Late correlators can optionally be used in which case you would use the magnitudes to derive timing.
Here is a link to a decent online tutorial showing the use of the complex (I and Q) correlator outputs and further details timing recovery using Early-Late.
From which I clipped this diagram:
Additional methods to determine the error that I didn't see mentioned in the tutorial (after a quick review, perhaps they are detailed there as well):
$err = Re((P)^*(E-L))$
Where $(P)^*$ is the complex conjugate of the complex Prompt correlator output ($I_P-jQ_P$) sampled at the estimated symbol timing location, and E and L are the complex correlator outputs 1/2 a chip earlier ($I_E+jQ_E$) and 1/2 a chip later ($I_L+jQ_L$) than the estimated symbol timing location. The operation $Re()$ is to take the real part of the result: if there is no carrier offset, the phase of P should be the same as the phase of E-L on average such that the complex conjugate multiplication will rotate the result to the real axis, however due to noise contributions or possible carrier offset the result will have an imaginary component so the Re() operation is to remove that.
Multiplying out this form of the error discriminator based on I and Q outputs of each correlator results in:
$$Re((I_P-jQ_P)(I_E-I_L-jQ_E+jQ_L))$$
$$ = I_P I_E - I_P I_L - Q_P Q_E +Q_P Q_L$$
If the signal is rotated to the real axis first using carrier recovery then this can be $P(E-L)$ were P, E and L are the output of the I (Real) correlator only in this case.
By multiplying by P as in both approaches above we both normalize the result and strip the data modulation from effecting the error result.
- 50,942
- 2
- 57
- 135
-
In the err = P*(E-L) , E is a vector or is abs(Ereal,Eimag)? – Velma Benedict Dec 24 '19 at 16:00
-
In other words output of err is a vector or is a complex value or abs value? – Velma Benedict Dec 24 '19 at 16:09
-
The output error is a real value that can be positive or negative. But I will update the answer to show that you should take the real part of that product since the noise terms will be complex. The complex conjugate multiplication serves to rotate the difference vector to the real axis since it would on average have the same angle. – Dan Boschen Dec 24 '19 at 18:20
-
@ Dan Boschen but we know that I and E are vector. – Velma Benedict Dec 25 '19 at 12:11
-
Yes I P and E are vectors as I described. That doesn’t change the result I gave- where are you confused with what I wrote? – Dan Boschen Dec 25 '19 at 13:03
-
@ Dan Boschen L, P and E are vactors, but err is a real value? – Velma Benedict Dec 25 '19 at 13:49
-
Yes- a simple example: multiply vector 5 with angle pi/2 ($5e^{j\pi/2}$) with another vector 10 with angle -pi/2 ($10e^{-j\pi/2}$)—- the result is a real number. – Dan Boschen Dec 25 '19 at 13:52
-
(When you multiply to vectors the angles add this the angle is 0 is the vectors are complex conjugate, consistent with a real number) – Dan Boschen Dec 25 '19 at 13:53
-
@ Dan Boschen I understood that, but consioder P, E and L as follow: – Velma Benedict Dec 25 '19 at 14:29
-
L =[1+1j; -1.5+2j; 3+5j,...........] , E = [ 10-2.5j; -1.5+13j; 3+5j,...........] , P = [9-2.5-1j; 3+13j; 11+6j,...........] – Velma Benedict Dec 25 '19 at 14:32
-
P, E, and L will have the same angle (unless there is a carrier offset) along with noise that will vary each. The complex conjugate removes the angle in the product like I demonstrated. Take the real part of the multiplication as the real part is proportional to timing error. – Dan Boschen Dec 25 '19 at 14:35
-
@ Dan Boschen Consider you have two vector with length 20, Do you agree that sum of them is a vector with a same length? – Velma Benedict Dec 25 '19 at 14:38
-
No, I wouldn’t agree. – Dan Boschen Dec 25 '19 at 15:06
-
@ Dan Boschen Oh, Wow.... – Velma Benedict Dec 25 '19 at 15:18
-
1Are you still confused or do you see it now? – Dan Boschen Dec 25 '19 at 15:39
