Chapter 9
Carrier Acquisition and Tracking
March 5, 2008
Demodulator
coderbit/
symbolModulator
⊕ ⊕
Carrier
recovery
transmit
filter, pT(t)
slicer/
decoder
interference form
other usersnoise
sampler
b[n]
b[n]
Timing
recovery
filter, pR(t)
receive/matchedEqualizer
Channel, c(t)
LNA/AGC
9.1 Non-Data Aided Carrier Recovery Methods
9.1.1 Binary PSK with a rectangular pulse-shape
xBPSK(t) = x(t) cos(2πfc t)
where
x(t) =
∞∑
n=−∞
s[n]pT(t − nTb),
s[n] ∈ {+1,−1} are the transmit symbols (bits).
9.1.1 Binary PSK with a rectangular pulse-shape
xBPSK(t) = x(t) cos(2πfc t)
where
x(t) =
∞∑
n=−∞
s[n]pT(t − nTb),
s[n] ∈ {+1,−1} are the transmit symbols (bits).
When pT(t − nTb) = Π(
tTb
)
, x(t) = ±1, and thus
x2BPSK(t) = cos2(2πfc t) =
12
+12
cos(4πfc t).
9.1.2 Binary PSK with a band-limited pulse-shape
yBPSK(t) = y(t) cos(2πfc t + θ0)
9.1.2 Binary PSK with a band-limited pulse-shape
yBPSK(t) = y(t) cos(2πfc t + θ0)
y2BPSK(t) =
12(y2
rms + yac(t))(1 + cos(4πfc t + 2θ0))
9.1.2 Binary PSK with a band-limited pulse-shape(continued)
MATLAB Script CRExp1.mTb=0.0001; L=100; Ts=Tb/L; fc=100000; fs=1/Ts; alpha=0.5; N=8*L; sigmav=0;c=1; s=sign(randn(1000,1)); pT=sr cos p(N,L,alpha); xT=conv(expander(s,L),pT);t=[0:length(xT)-1]’*Ts; xT=cos(2*pi*fc*t).*xT;xR=conv(c,xT); xR=xR+sigmav*randn(size(xR));xR2 = xR.ˆ2; [ X, F ]=spec analysis(xR2,fs);figure, axes(’position’,[0.1 0.25 0.8 0.5]), plot(F,X,’k’)xlabel(’FREQUENCY, Hz’), ylabel(’AMPLITUDE’)
9.1.2 Binary PSK with a band-limited pulse-shape(continued)
−5 −4 −3 −2 −1 0 1 2 3 4 5
x 105
0
1
2
3
4
5
6x 10−4
FREQUENCY, Hz
AM
PLI
TUD
E
9.1.3 Quadrature Amplitude ModulationIn the case of QAM, the modulation process results in thecomplex baseband signal
y(t) = (xR(t) + jxI(t))ejθ(t)
where θ(t) = 2π∆fct + θ0.
9.1.3 Quadrature Amplitude ModulationIn the case of QAM, the modulation process results in thecomplex baseband signal
y(t) = (xR(t) + jxI(t))ejθ(t)
where θ(t) = 2π∆fct + θ0.Taking the 4th power of y(t), we get
y4(t) =(
x4R(t) + x4
I (t) − 6x2R(t)x2
I (t)
+ j2xR(t)xI(t)(x2R(t) − x2
I (t)))
ej4θ(t)
or
y4(t) = my4ej4θ(t) + v(t)ej4θ(t)
wheremy4 = avg
[
x4R(t) + x4
I (t) − 6x2R(t)x2
I (t)]
.
Numerical Study of my4
my4 =my4
E [|y(t)|4]
Table: Numerical values of the normalized mean my4 for differentQAM constellations and three choices of the roll-off factor α.
Constellation α = 0.25 α = 0.5 α = 14-QAM/QPSK −0.65 −0.79 −0.95
16-QAM −0.37 −0.43 −0.4964-QAM −0.33 −0.37 −0.43256-QAM −0.32 −0.36 −0.42
MATLAB Script CRExp2.mTb=0.0001; L=100; M1=20; Ts=Tb/L; fs=1/Ts; fc=100000;Dfc=10; N=8*L; phic=0.5; sigmav=0; alpha=0.5; c=1;Nb=12000; b=sign(randn(Nb,1));M=input(’QAM size (4, 16, 64, 256) =’);if M==4 s=b(1:2:end)+i*b(2:2:end);elseif M==16 s=2*b(1:4:end)+b(2:4:end)+i*(2*b(3:4:end)+b(4:4:end));elseif M==64 s=4*b(1:6:end)+2*b(2:6:end)+b(3:6:end)+...
j*(4*b(4:6:end)+2*b(5:6:end)+b(6:6:end));elseif M==256 s=8*b(1:8:end)+4*b(2:8:end)+2*b(3:8:end)+b(4:8:end)+...
j*(8*b(5:8:end)+4*b(6:8:end)+2*b(7:8:end)+b(8:8:end));else print(’Error! M should be 4, 16, 64 or 256’); endpT=sr cos p(N,L,alpha); xbbT=conv(expander(s,L),pT);t=[0:length(xbbT)-1]’*Ts; xT=real(exp(i*2*pi*fc*t).*xbbT);xR=conv(c,xT); xR=xR+sigmav*randn(size(xR));t=[0:length(xR)-1]’*Ts; y=2*exp(-i*(2*pi*(fc-Dfc)*t-phic)).*xR;pR=pT; y=conv(y,pR); y=y(1:M1:end); fs1=fs/M1; y4=y.ˆ4;[ X, F ]=spec analysis(y4,fs1);figure, axes(’position’,[0.1 0.25 0.8 0.5]), plot(F,X,’k’)xlabel(’FREQUENCY, Hz’), ylabel(’AMPLITUDE’)
−2.5 −2 −1.5 −1 −0.5 0 0.5 1 1.5 2 2.5
x 104
0
2
4
6
8
10
12
FREQUENCY, Hz
AM
PLI
TUD
E
9.2 Non-Data Aided Carrier Acquisition and TrackingAlgorithms
9.2.1 Coarse carrier acquisition
MATLAB Script CRExp2.m (Extension 1)Coarse carrier acquisition and compensation[xmax,imax]=max(X);Dfc est=F(imax)/4;y1=y.*exp(-j*2*pi*Dfc est*Ts*M1);
9.2.2 Fine carrier acquisition and tracking
⊗
(·)4y[n]
e−j·
Interpolator
PLL ÷4
9.3 Costas LoopCostas loop for AM signal xAM[n] = x [n] cos(2πfcnTs + θ) + ν[n]
9.3 Costas LoopCostas loop for AM signal xAM[n] = x [n] cos(2πfcnTs + θ) + ν[n]We wish to synthesize
y [n] = cos(2πfcnTs + φ)
and adjust φ to track θ.
9.3 Costas LoopCostas loop for AM signal xAM[n] = x [n] cos(2πfcnTs + θ) + ν[n]We wish to synthesize
y [n] = cos(2πfcnTs + φ)
and adjust φ to track θ.Cost function:
ξ = E
[
(
LP(xAM[n]y [n])
)2]
9.3 Costas LoopCostas loop for AM signal xAM[n] = x [n] cos(2πfcnTs + θ) + ν[n]We wish to synthesize
y [n] = cos(2πfcnTs + φ)
and adjust φ to track θ.Cost function:
ξ = E
[
(
LP(xAM[n]y [n])
)2]
Here,
xAM[n]y [n] =x [n]
2
[
cos(θ−φ)+cos(4πfcnTs+θ+φ)
]
+ν[n] cos(2πfcnTs+φ)
andLP(xAM[n]y [n]) =
x [n]
2cos(θ − φ) + ψ[n].
9.3 Costas LoopCostas loop for AM signal xAM[n] = x [n] cos(2πfcnTs + θ) + ν[n]We wish to synthesize
y [n] = cos(2πfcnTs + φ)
and adjust φ to track θ.Cost function:
ξ = E
[
(
LP(xAM[n]y [n])
)2]
Here,
xAM[n]y [n] =x [n]
2
[
cos(θ−φ)+cos(4πfcnTs+θ+φ)
]
+ν[n] cos(2πfcnTs+φ)
andLP(xAM[n]y [n]) =
x [n]
2cos(θ − φ) + ψ[n].
Hence,
ξ =σ2
x
4cos2(θ − φ) + σ2
ψ
9.3 Costas LoopCostas loop for AM signal xAM[n] = x [n] cos(2πfcnTs + θ) + ν[n]We wish to synthesize
y [n] = cos(2πfcnTs + φ)
and adjust φ to track θ.Cost function:
ξ = E
[
(
LP(xAM[n]y [n])
)2]
Here,
xAM[n]y [n] =x [n]
2
[
cos(θ−φ)+cos(4πfcnTs+θ+φ)
]
+ν[n] cos(2πfcnTs+φ)
andLP(xAM[n]y [n]) =
x [n]
2cos(θ − φ) + ψ[n].
Hence,
ξ =σ2
x
4cos2(θ − φ) + σ2
ψ
Clearly, maximizing ξ leads to the desired tracking, i.e., the PLL.
9.3 Costas Loop
Derivation of Costas loop for AM signals
ξ =
(
LP(xAM[n]y [n])
)2
φ[n + 1] = φ[n] + µ∂ξ
∂φ
∂ξ
∂φ= 2LP (xAM[n]y [n])
∂ (LP(xAM[n]y [n]))
∂φ
∂ξ
∂φ= 2LP(xAM[n]y [n])LP
(
xAM[n]∂y [n]
∂φ
)
φ[n + 1] = φ[n] + 2µLP(xAM[n] cos(2πfcnTs + φ[n]))
×LP (xAM[n] × (− sin(2πfcnTs + φ[n]))) .
9.3 Costas Loop
Costas loop for AM signals
9.3 Costas Loop
Linear model of Costas loop for AM signals
µz−1
1 − z−1
φ[n]θ[n] c[n]ε[n]⊕ L(z )
φν [n]
9.3 Costas Loop
Costas loop for QAM signals
9.3 Pilot Aided Carrier Acquisition MethodWe begin with y(t) = ej2π∆fc tx(t) + ν(t), where
x(t) =
∞X
n=−∞
s[n]h0(t − nTb)
9.3 Pilot Aided Carrier Acquisition MethodWe begin with y(t) = ej2π∆fc tx(t) + ν(t), where
x(t) =
∞X
n=−∞
s[n]h0(t − nTb)
In discrete-time, when the samples are at the spacing Tb,
y [n] = x [n]ej2π∆fcnTb + ν[n]
9.3 Pilot Aided Carrier Acquisition MethodWe begin with y(t) = ej2π∆fc tx(t) + ν(t), where
x(t) =
∞X
n=−∞
s[n]h0(t − nTb)
In discrete-time, when the samples are at the spacing Tb,
y [n] = x [n]ej2π∆fcnTb + ν[n]
Assuming that the transmit symbols are periodic and have a period of Nsymbols, after a transient interval,
x [n] = x [n + N]
9.3 Pilot Aided Carrier Acquisition MethodWe begin with y(t) = ej2π∆fc tx(t) + ν(t), where
x(t) =
∞X
n=−∞
s[n]h0(t − nTb)
In discrete-time, when the samples are at the spacing Tb,
y [n] = x [n]ej2π∆fcnTb + ν[n]
Assuming that the transmit symbols are periodic and have a period of Nsymbols, after a transient interval,
x [n] = x [n + N]
Next, we form the summation J =
N2X
n=N1
y [n + N]y∗[n] and note that
J ≈ ej2π∆fcNTb
N2X
n=N1
|x [n]|2
9.3 Pilot Aided Carrier Acquisition MethodWe begin with y(t) = ej2π∆fc tx(t) + ν(t), where
x(t) =
∞X
n=−∞
s[n]h0(t − nTb)
In discrete-time, when the samples are at the spacing Tb,
y [n] = x [n]ej2π∆fcnTb + ν[n]
Assuming that the transmit symbols are periodic and have a period of Nsymbols, after a transient interval,
x [n] = x [n + N]
Next, we form the summation J =
N2X
n=N1
y [n + N]y∗[n] and note that
J ≈ ej2π∆fcNTb
N2X
n=N1
|x [n]|2
Solving this for ∆fc, we get
∆fc ≈1
2πNTb∠(J)
9.3 Pilot Aided Carrier Acquisition Method (continued)
Lock Range:Correct operation of the above procedure requires that
−π < ∠(J) < π
9.3 Pilot Aided Carrier Acquisition Method (continued)
Lock Range:Correct operation of the above procedure requires that
−π < ∠(J) < π
This leads to the lock range
−fb
2N< ∆fc <
fb2N
9.4 Data Aided Carrier Tracking Method
e−j·
data
detected
slicer
equalizer
received
signal
phase
detector
loop
filter
demodulation/carrier and timing
recovery
PLL
⊗s[n] s[n]
ε[n] = ∠ (s[n]s∗[n]) ≈={s[n]s∗[n]}
<{s[n]s∗[n]}
9.4 Data Aided Carrier Tracking Method (continued)MATLAB Script DDCR.mTb=0.0001; L=100; Ts=Tb/L; fs=1/Ts; fc=100000;Dfc=0; N=8*L; phic=pi/8; sigmav=0.05; alpha=0.5; c=1;b=sign(randn(2000,1)); s=b(1:2:end)+i*b(2:2:end);pT=sr cosp(N,L,alpha); xbbT=conv(expander(s,L),pT);t=[0:length(xbbT)-1]’*Ts; xT=real(exp(i*2*pi*fc*t).*xbbT);xR=conv(c,xT); xR=xR+sigmav*randn(size(xR));t=[0:length(xR)-1]’*Ts; y=2*exp(-i*(2*pi*(fc-Dfc)*t-phic)).*xR;pR=pT; y=conv(y,pR);y=y(1:L:end);y=y(9:end-8); % Extract the received signal samples
% at the correct timing phasephi=zeros(size(y)); s1=zeros(size(y)); mu=0.01;for n=1:length(y)-1
s1(n)=y(n)*exp(-j*phi(n));s2=sign(real(s1(n)))+j*sign(imag(s1(n))); % Slicers12=s1(n)*s2’; e=imag(s12)/real(s12); phi(n+1)=phi(n)+mu*e;
endfigure(1), plot(phi)figure(2), plot(y,’*’), axis(’square), hold on, plot(s1(1:end-1),’*r’),plot([-2 2],[-2 2],[-2 2],[2 -2]), hold off
9.4 Data Aided Carrier Tracking Method (continued)
0 100 200 300 400 5000
0.05
0.1
0.15
0.2
0.25
0.3
0.35
0.4
n
φ[n]
9.4 Data Aided Carrier Tracking Method (continued)
−2 −1 0 1 2−2
−1.5
−1
−0.5
0
0.5
1
1.5
2
Real part
Imag
inar
y pa
rt