EECS 690: Carrier Phase Recovery for QPSK




Objective
The goal of this exercise is to correctly demodulate the noisy received signals
in RxCRQPSKUW.mat and RxCRQPSKDE.mat.


Signal Constellation

The transmitted data points are taken from the signal space constellation below.  The four points are equally spaced on a circle with radius A and are simply the four possible ordered pairs [ ±A/sqrt(2), ±A/sqrt(2) ].  Each transmitted signal carries two information bits, as shown below.  You should be aware of the relationship between A and the average symbol energy. 

Signal Constellation for QPSK

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: QPSK Detector with Decision Directed Carrier Phase Recovery

Your design should begin with your final result from the QPSK Exercise. 
Using blocks from the SIMULINK Block Library, the Signal Processing Blockset, and the Communications Blockset, you must add 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.

Block Diagram of QPSK Detector with Carrier Phase Recovery

Design your detector to be compatible with a QPSK transmitter with the following specifications:
Number of samples per symbol: 8
Normalized carrier frequency:    0.30 cycles/sample
Carrier Phase:                         UNKNOWN
Pulse shape:                            square-root raised cosine (SRRC) with roll-off = 0.5 and Lp = 8 symbols
Average symbol energy:            2 Joules


In order to resolve the 90-degree phase ambiguity, we will use the two techniques we discussed in class:  the unique word method and differential encoding.  You already have some experience with the unique word method from the previous exercise.  Here, you must search the received decision sequence for each of the 4 rotated versions of the unique word [11 10 10 11 10 01 00 00].  When one of the rotated versions of the unique word is found, the phase ambiguity is known and can be corrected.  The data packet format for the unique word is shown below.  This packet is repeated 4 times to allow sufficient time for your PLL to lock.

Data Format for the Unique Word

For the case of differential encoding, the transmitter encodes the information bits with the following phase shifts:
Bits    Phase Shift
 00        0º
 01        90º
 10        -90º
 11        180º
You must design a differential decoder to obtain the information sequence from the detector decisions.  The differential decoder requires the current and previous detector decisions.  This operation be done using a Matlab script.  Although the differential decoding technique is able to resolve the carrier phase ambiguity, you will still have the problem of finding the start of the data sequence in the stream of detected symbols.  Therefore, the differential encoded data uses the data packet format shown below, where the SYNC pattern is [00 00 00 00 00 00 00 00].  This packet is repeated 4 times to allow sufficient time for your PLL to lock.

Data Format for the Differential Encoder 





Part II: Detecting an Unknown Data Set using the Unique Word Method

Here are the steps for the next part of the exercise:
  1. Connect the input of your detector to a From File block and set the filename to RxCRQPSKUW.mat
  2. Set the simulation parameters to:
    Start Time:         0.0
    Stop Time:          (16+1+8+4*(196+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.
  3. Run the Simulation.
  4. The detector produces 842 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.
  5. To find the data symbols, look for the 8-symbol unique word (or its three rotations).  Once the unique word is found, the following 196 (possibly rotated) symbols correspond to 56 7-bit ASCII characters.
  6. 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.
  7. Determine the message using your own conversion script or an ASCII table, such as the one found here.
  8. E-mail your answer AND your detector model file (.mdl SIMULINK file) plus any additional Matlab code to esp "at" eecs.ku.edu.






Part III: Detecting an Unknown Differentially Encoded Data Set

Here are the steps for the final part of the exercise:
  1. Connect the input of your detector to a From File block and set the filename to RxCRQPSKDE.mat. Note: the detector is essentially unchaged from Part III.  The only different part is the differential decoding operation.
  2. Set the simulation parameters to:
    Start Time:         0.0
    Stop Time:          (16+1+8+4*(259+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.
  3. Run the Simulation.
  4. The detector produces 1094 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.
  5. To find the differentially encoded symbols, look for the 8-symbol sync word (or its three rotations).  Once the sync word is found, the following 259 (possibly inverted) bits correspond to 74 7-bit ASCII characters.
  6. Determine the message using your own conversion script or an ASCII table, such as the one found here.
  7. E-mail your answer plus any additional Matlab code to esp "at" eecs.ku.edu.

Back to the Simulink Exercises Page