EECS 690:
Carrier Phase Recovery for BPSK
Objective
The goal of this exercise is to correctly demodulate the noisy
received signal in RxCRBPSK.mat.
Signal Constellation
The
transmitted data points are taken from the signal space
constellation below. Notice the relationship between bits (0, 1)
and symbols (-A, +A).
You should be
aware of the
relationship between A and the average symbol energy.

After being corrupted by noise, the received signal is demodulated by
the system below, which detects the transmitted signal space points and
outputs the estimated values.
Design Exercise
Part I: BPSK Detector with Decision Directed Carrier Phase Recovery
Your design should begin with your final result from the BPSK Exercise.
Using blocks from the SIMULINK Block Library, the Signal Processing
Blockset, and the Communications Blockset, you must add a quadrature arm to
the detector, and also a ROTATE block, a phase error detector, a loop
filter, and a loop DDS. You want the phase locked loop (PLL) to
be second-order with a proportional-plus-integral loop filter.
These new components are highlighted in red in the diagram below.

Design your detector to be compatible with a BPSK transmitter with the
following specifications:
Number
of samples per symbol: 8
Normalized carrier frequency: 0.20 cycles/sample
Carrier
Phase:
UNKNOWN
Pulse shape:
square-root raised cosine (SRRC) with roll-off = 0.5 and Lp = 8 symbols
Average symbol
energy:
1 Joules
In addition to the above specifications, the transmitter sends data
according to the following format:

The 8-bit unique word used by the transmitter is [0 1 0 1 1 0 0
1]. The purpose of the unique word is to provide a method of
resolving the 180-degree phase ambiguity introduced by the
decision-directed phase error detector. To accomplish this, you
must search the detector output for two versions of the unique word
that correspond to the two possible constellation rotations. Once
the unique word has been found, the phase ambiguity is known and can be
corrected.
Since a certain period of time must pass before the loop locks onto the
carrier phase, the transmitter will repeat the above packet four times.
Part II: Detecting an
Unknown Data Set
Here are the steps for the final
part of the exercise:
- Connect the input of your detector to a From File
block and set the filename to RxCRBPSK.mat
- Set the simulation
parameters to:
Start
Time: 0.0
Stop Time:
(16+1+8+4*(189+8))*8
Solver
options: Type: Fixed-step, Solver: discrete
(no continuous states)
Fixed
step size: 1
Suggested values for the
loop bandwidth and damping coefficient are 0.05 (normalized to the
symbol rate) and 1.0, respectively.
- Run the Simulation.
- The detector produces
814 decisions. The PLL will lock at some point in the middle of
this sequence, which means that there will be a potentially large
number of garbage bits that should be discarded.
- To find the data bits,
look for the 8-bit unique word (or its logical complement). Once
the unique word is found, the following 189 (possibly inverted) bits
correspond to 27 7-bit ASCII characters.
- Plot the phase error
(the loop filter input), and use this plot to estimate how long (in
symbol times) it took for your PLL to lock. You can attach the
plot to your e-mail message, or turn them in at the beginning of the
next class period after the due date.
- Determine the message
using your own conversion script or an ASCII
table, such as the one found here.
- E-mail your answer AND
your detector model file (.mdl SIMULINK file) plus any additional
Matlab code to esp "at" eecs.ku.edu.
Back to the Simulink
Exercises Page