EECS 690: Binary Phase Shift Keying (BPSK)




Objective
The goal of this exercise is to correctly demodulate the noisy received signal in RxBPSK.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).
Signal space constellation for BPSK


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 Transmitter

Block Diagram of BPSK Modulator

Using blocks from the SIMULINK Block Library, the Signal Processing Blockset, and the Communications Blockset, design a BPSK modulator, patterned after the one shown above, to meet the following specifications:
Number of samples per bit:        8
Normalized carrier frequency:    0.25 cycles/sample
Pulse shape:                            NRZ




Part II: BPSK Detector

Block Diagram of BPSK Detector

Using blocks from the SIMULINK Block Library, the Signal Processing Blockset, and the Communications Blockset, design a BPSK detector, patterned after the one shown above, that is compatible with the modulator from Part I.


[ Sanity Check ]
You can test your designs from Parts I and II by connecting the output of your modulator to the input of your detector.  Use the same data source as in the Binary PAM exercise (the Signal from Workspace block with the data pattern [1 -1 -1 1]').  In your project window, go to the menu Simulation --> Configuration Parameters and set the parameters to:
Start Time:         0.0
Stop Time:          (4+1)*8
Solver options:    Type: Fixed-step, Solver: discrete (no continuous states)
Fixed step size:    1                 
Note: The 4 corresponds to the number of transmitted bits, the 1 corresponds to the delay of the matched filter, and the 8 is the number of samples per symbol (bit). 

Remember, it is very important that your Downsample block is sampling at the correct "phase".  This may require some adjustment/experimentation on your part.  You want to sample the matched filter output when the value is exactly +1.0 or -1.0.  You may need to run the simulation to a stop time of 6*8, depending on the sampling offset you use.  When you have successfully debugged your system, you are ready for the final part of the exercise.




Part III: Detecting an Unknown 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 RxBPSK.mat
  2. Set the simulation parameters to:
    Start Time:         0.0
    Stop Time:          (308+1)*8
    Solver options:    Type: Fixed-step, Solver: discrete (no continuous states)
    Fixed step size:    1                 
  3. Run the Simulation.
  4. The last 308 values of the detector output (you will have to convert +/-1s to 1s and 0s) represent 44 ASCII characters, with 7 bits per character.  Determine the message using your own conversion script or an ASCII table, such as the one found here.
  5. E-mail your answer AND your detector model file (.mdl SIMULINK file) to esp "at" eecs.ku.edu.
  6. Plot the eye diagram and signal space projections.  You can attach the plots to your e-mail message, or turn them in at the beginning of the next class period after the due date.


Back to the Simulink Exercises Page